49 #ifndef OBJECTS_SEQTABLE_SEQTABLE_SPARSE_INDEX_HPP
50 #define OBJECTS_SEQTABLE_SEQTABLE_SPARSE_INDEX_HPP
96 static const size_t kSkipped = size_t(0)-1;
100 size_t GetSize(
void)
const;
104 size_t GetIndexAt(
size_t row)
const;
107 bool HasValueAt(
size_t row)
const;
121 return m_Row == iter.
m_Row;
125 return !(*
this == iter);
143 m_Row = m_Obj->x_GetNextRowWithValue(m_Row, m_ValueIndex);
153 size_t value_index = 0)
156 m_ValueIndex(value_index)
215 size_t x_GetFirstRowWithValue(
void)
const;
216 size_t x_GetNextRowWithValue(
size_t row,
size_t value_index)
const;
219 size_t x_GetBitSetCache(
size_t byte_count)
const;
224 m_CacheBlockIndex(size_t(0)-1)
250 size_t x_GetDeltaSum(
size_t index)
const;
251 size_t x_FindDeltaSum(
size_t sum)
const;
DECLARE_OPERATOR_BOOL(m_Row !=kInvalidRow)
const_iterator & operator++(void)
size_t GetRow(void) const
bool operator*(void) const
const_iterator(const CSeqTable_sparse_index *obj, size_t row, size_t value_index=0)
size_t GetValueIndex(void) const
CConstRef< CSeqTable_sparse_index > m_Obj
bool operator!=(const const_iterator &iter) const
bool operator==(const const_iterator &iter) const
CSeqTable_sparse_index_Base –.
CSeqTable_sparse_index_Base Tparent
CSeqTable_sparse_index(const CSeqTable_sparse_index &value)
void ChangeToIndexes_delta(void)
TIndexes_delta & SetIndexes_delta(void)
void ChangeToBit_set_bvector(void)
CSeqTable_sparse_index(void)
TIndexes & SetIndexes(void)
const_iterator end(void) const
void Reset(void)
Reset the whole object.
const_iterator begin(void) const
size_t x_GetFirstRowWithValue(void) const
void ChangeTo(E_Choice type)
void ChangeToIndexes(void)
CSeqTable_sparse_index & operator=(const CSeqTable_sparse_index &value)
TBit_set_bvector & SetBit_set_bvector(void)
TBit_set & SetBit_set(void)
friend class const_iterator
void ChangeToBit_set(void)
#define NCBISER_HAVE_POST_READ(Class)
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
TBit_set_bvector & SetBit_set_bvector(void)
Select the variant.
vector< unsigned > TIndexes
TBit_set & SetBit_set(void)
Select the variant.
TIndexes_delta & SetIndexes_delta(void)
Select the variant.
TIndexes & SetIndexes(void)
Select the variant.
vector< unsigned > TIndexes_delta
virtual void Reset(void)
Reset the whole object.
Compressed bitset (entry point to bm.h)
AutoArray< size_t > m_Blocks
static const size_t kBlockSize
AutoArray< size_t > m_CacheBlockInfo