18 #ifndef __INDEX_BASE_H__
19 #define __INDEX_BASE_H__
27 #include "StatGenStatus.h"
36 static const uint64_t MAX_CHUNK_VALUE = 0xFFFFFFFFFFFFFFFFULL;
38 bool operator< (
const Chunk& otherChunk)
const
40 return(this->chunk_beg < otherChunk.chunk_beg);
53 bool insert(
const Chunk& chunkToInsert);
56 bool mergeOverlapping();
59 std::map<uint64_t, Chunk> chunkList;
83 bool getMinOffsetFromLinearIndex(int32_t refID, uint32_t position,
84 uint64_t& minOffset)
const;
87 const static uint32_t MAX_NUM_BINS = 37450;
91 const static uint32_t MAX_POSITION = 536870911;
95 const static uint32_t LINEAR_INDEX_SHIFT = 14;
100 Bin(){chunks = NULL; reset();}
115 static const uint32_t NOT_USED_BIN = 0xFFFFFFFF;
123 static const int32_t UNKNOWN_MAP_INFO = -1;
136 minChunkOffset = UNSET_MIN_CHUNK_OFFSET;
138 n_mapped = UNKNOWN_MAP_INFO;
139 n_unmapped = UNKNOWN_MAP_INFO;
143 std::vector<Bin> bins;
145 uint64_t minChunkOffset;
146 uint64_t maxChunkOffset;
150 static const uint64_t UNSET_MIN_CHUNK_OFFSET = 0xFFFFFFFFFFFFFFFFULL;
155 static void getBinsForRegion(uint32_t start, uint32_t end,
bool binMap[MAX_NUM_BINS+1]);
161 std::vector<Reference> myRefs;