69 if(
ifread(indexFile, magic, 4) != 4)
76 if (magic[0] !=
'T' || magic[1] !=
'B' || magic[2] !=
'I' || magic[3] != 1)
84 if(
ifread(indexFile, &n_ref, 4) != 4)
94 if(
ifread(indexFile, &myFormat,
sizeof(myFormat)) !=
sizeof(myFormat))
103 if(
ifread(indexFile, &l_nm,
sizeof(l_nm)) !=
sizeof(l_nm))
110 myChromNamesBuffer =
new char[l_nm];
111 if(
ifread(indexFile, myChromNamesBuffer, l_nm) != l_nm)
115 myChromNamesVector.resize(n_ref);
118 bool prevNull =
true;
120 for(uint32_t i = 0; i < l_nm; i++)
122 if(chromIndex >= n_ref)
130 myChromNamesVector[chromIndex++] = myChromNamesBuffer + i;
133 if(myChromNamesBuffer[i] ==
'\0')
139 for(
int refIndex = 0; refIndex < n_ref; refIndex++)
142 Reference* ref = &(myRefs[refIndex]);
145 if(
ifread(indexFile, &(ref->n_bin), 4) != 4)
153 ref->bins.resize(ref->n_bin + 1);
156 for(
int binIndex = 0; binIndex < ref->n_bin; binIndex++)
161 if(
ifread(indexFile, &(binNumber), 4) != 4)
170 Bin* binPtr = &(ref->bins[binIndex]);
171 binPtr->bin = binNumber;
174 if(
ifread(indexFile, &(binPtr->n_chunk), 4) != 4)
183 uint32_t sizeOfChunkList = binPtr->n_chunk *
sizeof(
Chunk);
184 binPtr->chunks = (
Chunk*)malloc(sizeOfChunkList);
185 if(
ifread(indexFile, binPtr->chunks, sizeOfChunkList) != sizeOfChunkList)
194 if(
ifread(indexFile, &(ref->n_intv), 4) != 4)
203 uint32_t linearIndexSize = ref->n_intv *
sizeof(uint64_t);
204 ref->ioffsets = (uint64_t*)malloc(linearIndexSize);
205 if(
ifread(indexFile, ref->ioffsets, linearIndexSize) != linearIndexSize)
method failed due to an I/O issue.
method completed successfully.
failed to parse a record/header - invalid format.
void resetIndex()
Reset the member data for a new index file.