NCBI C++ ToolKit
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
CBinaryRangeCacheWithLock< Position, Value > Class Template Reference

Search Toolkit Book for CBinaryRangeCacheWithLock

#include <sra/readers/bam/cache_with_lock.hpp>

+ Inheritance diagram for CBinaryRangeCacheWithLock< Position, Value >:
+ Collaboration diagram for CBinaryRangeCacheWithLock< Position, Value >:

Classes

class  CLock
 
class  CSlot
 
struct  PLess
 

Public Types

typedef Position position_type
 
typedef COpenRange< position_typerange_type
 
typedef Value mapped_type
 
- Public Types inherited from CObject
enum  EAllocFillMode { eAllocFillNone = 1 , eAllocFillZero , eAllocFillPattern }
 Control filling of newly allocated memory. More...
 
typedef CObjectCounterLocker TLockerType
 Default locker type for CRef. More...
 
typedef atomic< Uint8TCounter
 Counter type is CAtomiCounter. More...
 
typedef Uint8 TCount
 Alias for value type of counter. More...
 

Public Member Functions

 CBinaryRangeCacheWithLock (size_t size_limit=0)
 
CLock get_lock (const position_type &pos, position_type size_pow2)
 
size_t get_size_limit (void) const
 
void set_size_limit (size_t size_limit)
 
void clear ()
 
- Public Member Functions inherited from CObject
 CObject (void)
 Constructor. More...
 
 CObject (const CObject &src)
 Copy constructor. More...
 
virtual ~CObject (void)
 Destructor. More...
 
CObjectoperator= (const CObject &src) THROWS_NONE
 Assignment operator. More...
 
bool CanBeDeleted (void) const THROWS_NONE
 Check if object can be deleted. More...
 
bool IsAllocatedInPool (void) const THROWS_NONE
 Check if object is allocated in memory pool (not system heap) More...
 
bool Referenced (void) const THROWS_NONE
 Check if object is referenced. More...
 
bool ReferencedOnlyOnce (void) const THROWS_NONE
 Check if object is referenced only once. More...
 
void AddReference (void) const
 Add reference to object. More...
 
void RemoveReference (void) const
 Remove reference to object. More...
 
void ReleaseReference (void) const
 Remove reference without deleting object. More...
 
virtual void DoNotDeleteThisObject (void)
 Mark this object as not allocated in heap – do not delete this object. More...
 
virtual void DoDeleteThisObject (void)
 Mark this object as allocated in heap – object can be deleted. More...
 
void * operator new (size_t size)
 Define new operator for memory allocation. More...
 
void * operator new[] (size_t size)
 Define new[] operator for 'array' memory allocation. More...
 
void operator delete (void *ptr)
 Define delete operator for memory deallocation. More...
 
void operator delete[] (void *ptr)
 Define delete[] operator for memory deallocation. More...
 
void * operator new (size_t size, void *place)
 Define new operator. More...
 
void operator delete (void *ptr, void *place)
 Define delete operator. More...
 
void * operator new (size_t size, CObjectMemoryPool *place)
 Define new operator using memory pool. More...
 
void operator delete (void *ptr, CObjectMemoryPool *place)
 Define delete operator. More...
 
virtual void DebugDump (CDebugDumpContext ddc, unsigned int depth) const
 Define method for dumping debug information. More...
 
- Public Member Functions inherited from CDebugDumpable
 CDebugDumpable (void)
 
virtual ~CDebugDumpable (void)
 
void DebugDumpText (ostream &out, const string &bundle, unsigned int depth) const
 
void DebugDumpFormat (CDebugDumpFormatter &ddf, const string &bundle, unsigned int depth) const
 
void DumpToConsole (void) const
 

Protected Types

typedef map< range_type, CRef< CSlot >, PLessTMap
 
typedef TMap::iterator TMapIterator
 
typedef TMap::const_iterator TMapConstIterator
 
typedef list< TMapIteratorTRemoveList
 
typedef TRemoveList::iterator TRemoveListIterator
 

Protected Member Functions

void Unlock (CSlot *slot)
 
bool s_Overlaps (position_type pos, position_type size_pow2, TMapIterator iter_before, TMapIterator iter_after) const
 
void x_GC (size_t size)
 
- Protected Member Functions inherited from CObject
virtual void DeleteThis (void)
 Virtual method "deleting" this object. More...
 

Static Protected Member Functions

static range_type s_MakeRange (position_type pos, position_type size_pow2)
 

Protected Attributes

TMap m_Map
 
size_t m_SizeLimit
 
size_t m_RemoveSize
 
TRemoveList m_RemoveList
 
CMutex m_Mutex
 

Additional Inherited Members

- Static Public Member Functions inherited from CObject
static NCBI_XNCBI_EXPORT void ThrowNullPointerException (void)
 Define method to throw null pointer exception. More...
 
static NCBI_XNCBI_EXPORT void ThrowNullPointerException (const type_info &type)
 
static EAllocFillMode GetAllocFillMode (void)
 
static void SetAllocFillMode (EAllocFillMode mode)
 
static void SetAllocFillMode (const string &value)
 Set mode from configuration parameter value. More...
 
- Static Public Member Functions inherited from CDebugDumpable
static void EnableDebugDump (bool on)
 
- Static Public Attributes inherited from CObject
static const TCount eCounterBitsCanBeDeleted = 1 << 0
 Define possible object states. More...
 
static const TCount eCounterBitsInPlainHeap = 1 << 1
 Heap signature was found. More...
 
static const TCount eCounterBitsPlaceMask
 Mask for 'in heap' state flags. More...
 
static const int eCounterStep = 1 << 2
 Skip over the "in heap" bits. More...
 
static const TCount eCounterValid = TCount(1) << (sizeof(TCount) * 8 - 2)
 Minimal value for valid objects (reference counter is zero) Must be a single bit value. More...
 
static const TCount eCounterStateMask
 Valid object, and object in heap. More...
 

Detailed Description

template<class Position, class Value>
class CBinaryRangeCacheWithLock< Position, Value >

Definition at line 224 of file cache_with_lock.hpp.

Member Typedef Documentation

◆ mapped_type

template<class Position , class Value >
typedef Value CBinaryRangeCacheWithLock< Position, Value >::mapped_type

Definition at line 229 of file cache_with_lock.hpp.

◆ position_type

template<class Position , class Value >
typedef Position CBinaryRangeCacheWithLock< Position, Value >::position_type

Definition at line 227 of file cache_with_lock.hpp.

◆ range_type

template<class Position , class Value >
typedef COpenRange<position_type> CBinaryRangeCacheWithLock< Position, Value >::range_type

Definition at line 228 of file cache_with_lock.hpp.

◆ TMap

template<class Position , class Value >
typedef map<range_type, CRef<CSlot>, PLess> CBinaryRangeCacheWithLock< Position, Value >::TMap
protected

Definition at line 238 of file cache_with_lock.hpp.

◆ TMapConstIterator

template<class Position , class Value >
typedef TMap::const_iterator CBinaryRangeCacheWithLock< Position, Value >::TMapConstIterator
protected

Definition at line 240 of file cache_with_lock.hpp.

◆ TMapIterator

template<class Position , class Value >
typedef TMap::iterator CBinaryRangeCacheWithLock< Position, Value >::TMapIterator
protected

Definition at line 239 of file cache_with_lock.hpp.

◆ TRemoveList

template<class Position , class Value >
typedef list<TMapIterator> CBinaryRangeCacheWithLock< Position, Value >::TRemoveList
protected

Definition at line 241 of file cache_with_lock.hpp.

◆ TRemoveListIterator

template<class Position , class Value >
typedef TRemoveList::iterator CBinaryRangeCacheWithLock< Position, Value >::TRemoveListIterator
protected

Definition at line 242 of file cache_with_lock.hpp.

Constructor & Destructor Documentation

◆ CBinaryRangeCacheWithLock()

template<class Position , class Value >
CBinaryRangeCacheWithLock< Position, Value >::CBinaryRangeCacheWithLock ( size_t  size_limit = 0)
inline

Definition at line 347 of file cache_with_lock.hpp.

Member Function Documentation

◆ clear()

template<class Position , class Value >
void CBinaryRangeCacheWithLock< Position, Value >::clear ( void  )
inline

◆ get_lock()

template<class Position , class Value >
CLock CBinaryRangeCacheWithLock< Position, Value >::get_lock ( const position_type pos,
position_type  size_pow2 
)
inline

◆ get_size_limit()

template<class Position , class Value >
size_t CBinaryRangeCacheWithLock< Position, Value >::get_size_limit ( void  ) const
inline

◆ s_MakeRange()

template<class Position , class Value >
static range_type CBinaryRangeCacheWithLock< Position, Value >::s_MakeRange ( position_type  pos,
position_type  size_pow2 
)
inlinestaticprotected

◆ s_Overlaps()

template<class Position , class Value >
bool CBinaryRangeCacheWithLock< Position, Value >::s_Overlaps ( position_type  pos,
position_type  size_pow2,
TMapIterator  iter_before,
TMapIterator  iter_after 
) const
inlineprotected

◆ set_size_limit()

template<class Position , class Value >
void CBinaryRangeCacheWithLock< Position, Value >::set_size_limit ( size_t  size_limit)
inline

◆ Unlock()

template<class Position , class Value >
void CBinaryRangeCacheWithLock< Position, Value >::Unlock ( CSlot slot)
inlineprotected

◆ x_GC()

template<class Position , class Value >
void CBinaryRangeCacheWithLock< Position, Value >::x_GC ( size_t  size)
inlineprotected

Member Data Documentation

◆ m_Map

template<class Position , class Value >
TMap CBinaryRangeCacheWithLock< Position, Value >::m_Map
protected

◆ m_Mutex

template<class Position , class Value >
CMutex CBinaryRangeCacheWithLock< Position, Value >::m_Mutex
protected

◆ m_RemoveList

template<class Position , class Value >
TRemoveList CBinaryRangeCacheWithLock< Position, Value >::m_RemoveList
protected

◆ m_RemoveSize

template<class Position , class Value >
size_t CBinaryRangeCacheWithLock< Position, Value >::m_RemoveSize
protected

◆ m_SizeLimit

template<class Position , class Value >
size_t CBinaryRangeCacheWithLock< Position, Value >::m_SizeLimit
protected

The documentation for this class was generated from the following file:
Modified on Fri Sep 20 14:58:14 2024 by modify_doxy.py rev. 669887