NCBI C++ ToolKit
|
Search Toolkit Book for CCacheWithLock
#include <sra/data_loaders/csra/impl/csraloader_impl.hpp>
Classes | |
class | CLock |
class | CSlot |
Public Types | |
typedef Key | key_type |
typedef Value | mapped_type |
typedef Key | key_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< Uint8 > | TCounter |
Counter type is CAtomiCounter. More... | |
typedef Uint8 | TCount |
Alias for value type of counter. More... | |
Public Member Functions | |
CCacheWithLock (size_t size_limit=0) | |
CLock | get_lock (const key_type &key) |
size_t | get_size_limit (void) const |
void | set_size_limit (size_t size_limit) |
CCacheWithLock (size_t size_limit=0) | |
CLock | get_lock (const key_type &key) |
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... | |
CObject & | operator= (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 Less | TLess |
typedef map< key_type, CRef< CSlot >, TLess > | TMap |
typedef TMap::iterator | TMapIterator |
typedef TMap::const_iterator | TMapConstIterator |
typedef list< TMapIterator > | TRemoveList |
typedef TRemoveList::iterator | TRemoveListIterator |
typedef Less | TLess |
typedef map< key_type, CRef< CSlot >, TLess > | TMap |
typedef TMap::iterator | TMapIterator |
typedef TMap::const_iterator | TMapConstIterator |
typedef list< TMapIterator > | TRemoveList |
typedef TRemoveList::iterator | TRemoveListIterator |
Protected Member Functions | |
void | Unlock (CSlot *slot) |
void | x_GC () |
void | Unlock (CSlot *slot) |
void | x_GC (size_t size) |
Protected Member Functions inherited from CObject | |
virtual void | DeleteThis (void) |
Virtual method "deleting" this object. More... | |
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... | |
Definition at line 54 of file csraloader_impl.hpp.
typedef Key CCacheWithLock< Key, Value, Less >::key_type |
Definition at line 57 of file csraloader_impl.hpp.
typedef Key CCacheWithLock< Key, Value, Less >::key_type |
Definition at line 44 of file cache_with_lock.hpp.
typedef Value CCacheWithLock< Key, Value, Less >::mapped_type |
Definition at line 58 of file csraloader_impl.hpp.
typedef Value CCacheWithLock< Key, Value, Less >::mapped_type |
Definition at line 45 of file cache_with_lock.hpp.
|
protected |
Definition at line 62 of file csraloader_impl.hpp.
|
protected |
Definition at line 49 of file cache_with_lock.hpp.
|
protected |
Definition at line 63 of file csraloader_impl.hpp.
|
protected |
Definition at line 50 of file cache_with_lock.hpp.
|
protected |
Definition at line 65 of file csraloader_impl.hpp.
|
protected |
Definition at line 52 of file cache_with_lock.hpp.
|
protected |
Definition at line 64 of file csraloader_impl.hpp.
|
protected |
Definition at line 51 of file cache_with_lock.hpp.
|
protected |
Definition at line 66 of file csraloader_impl.hpp.
|
protected |
Definition at line 53 of file cache_with_lock.hpp.
|
protected |
Definition at line 67 of file csraloader_impl.hpp.
|
protected |
Definition at line 54 of file cache_with_lock.hpp.
|
inline |
Definition at line 166 of file csraloader_impl.hpp.
|
inline |
Definition at line 155 of file cache_with_lock.hpp.
|
inline |
Definition at line 190 of file cache_with_lock.hpp.
References CCacheWithLock< Key, Value, Less >::m_Mutex, and CCacheWithLock< Key, Value, Less >::x_GC().
|
inline |
Definition at line 172 of file csraloader_impl.hpp.
References _ASSERT, map_checker< Container >::end(), map_checker< Container >::insert(), ncbi::grid::netcache::search::fields::key, map_checker< Container >::lower_bound(), CCacheWithLock< Key, Value, Less >::m_Map, CCacheWithLock< Key, Value, Less >::m_Mutex, CCacheWithLock< Key, Value, Less >::m_RemoveList, CCacheWithLock< Key, Value, Less >::m_RemoveSize, and Ref().
|
inline |
Definition at line 161 of file cache_with_lock.hpp.
References _ASSERT, map_checker< Container >::end(), map_checker< Container >::insert(), ncbi::grid::netcache::search::fields::key, map_checker< Container >::lower_bound(), CCacheWithLock< Key, Value, Less >::m_Map, CCacheWithLock< Key, Value, Less >::m_Mutex, CCacheWithLock< Key, Value, Less >::m_RemoveList, CCacheWithLock< Key, Value, Less >::m_RemoveSize, and Ref().
|
inline |
Definition at line 191 of file csraloader_impl.hpp.
References CCacheWithLock< Key, Value, Less >::m_SizeLimit.
|
inline |
Definition at line 180 of file cache_with_lock.hpp.
References CCacheWithLock< Key, Value, Less >::m_SizeLimit.
|
inline |
Definition at line 194 of file csraloader_impl.hpp.
References CCacheWithLock< Key, Value, Less >::m_Mutex, CCacheWithLock< Key, Value, Less >::m_SizeLimit, and CCacheWithLock< Key, Value, Less >::x_GC().
|
inline |
Definition at line 183 of file cache_with_lock.hpp.
References CCacheWithLock< Key, Value, Less >::m_Mutex, CCacheWithLock< Key, Value, Less >::m_SizeLimit, and CCacheWithLock< Key, Value, Less >::x_GC().
|
inlineprotected |
Definition at line 203 of file csraloader_impl.hpp.
References _ASSERT, CAtomicCounter::Add(), CCacheWithLock< Key, Value, Less >::CSlot::m_LockCounter, CCacheWithLock< Key, Value, Less >::CSlot::m_MapIter, CCacheWithLock< Key, Value, Less >::m_Mutex, CCacheWithLock< Key, Value, Less >::m_RemoveList, CCacheWithLock< Key, Value, Less >::CSlot::m_RemoveListIter, CCacheWithLock< Key, Value, Less >::m_RemoveSize, and CCacheWithLock< Key, Value, Less >::x_GC().
Referenced by CCacheWithLock< Key, Value, Less >::CLock::operator=(), and CCacheWithLock< Key, Value, Less >::CLock::Reset().
|
inlineprotected |
Definition at line 196 of file cache_with_lock.hpp.
References _ASSERT, CAtomicCounter::Add(), CCacheWithLock< Key, Value, Less >::CSlot::m_LockCounter, CCacheWithLock< Key, Value, Less >::CSlot::m_MapIter, CCacheWithLock< Key, Value, Less >::m_Mutex, CCacheWithLock< Key, Value, Less >::m_RemoveList, CCacheWithLock< Key, Value, Less >::CSlot::m_RemoveListIter, CCacheWithLock< Key, Value, Less >::m_RemoveSize, CCacheWithLock< Key, Value, Less >::m_SizeLimit, and CCacheWithLock< Key, Value, Less >::x_GC().
|
inlineprotected |
Definition at line 216 of file csraloader_impl.hpp.
References map_checker< Container >::erase(), CCacheWithLock< Key, Value, Less >::m_Map, CCacheWithLock< Key, Value, Less >::m_RemoveList, CCacheWithLock< Key, Value, Less >::m_RemoveSize, and CCacheWithLock< Key, Value, Less >::m_SizeLimit.
Referenced by CCacheWithLock< Key, Value, Less >::clear(), CCacheWithLock< Key, Value, Less >::set_size_limit(), and CCacheWithLock< Key, Value, Less >::Unlock().
|
inlineprotected |
|
protected |
Definition at line 81 of file csraloader_impl.hpp.
Referenced by CCacheWithLock< Key, Value, Less >::get_lock(), and CCacheWithLock< Key, Value, Less >::x_GC().
|
protected |
Definition at line 85 of file csraloader_impl.hpp.
Referenced by CCacheWithLock< Key, Value, Less >::clear(), CCacheWithLock< Key, Value, Less >::get_lock(), CCacheWithLock< Key, Value, Less >::set_size_limit(), and CCacheWithLock< Key, Value, Less >::Unlock().
|
protected |
Definition at line 84 of file csraloader_impl.hpp.
Referenced by CCacheWithLock< Key, Value, Less >::get_lock(), CCacheWithLock< Key, Value, Less >::Unlock(), and CCacheWithLock< Key, Value, Less >::x_GC().
|
protected |
Definition at line 83 of file csraloader_impl.hpp.
Referenced by CCacheWithLock< Key, Value, Less >::get_lock(), CCacheWithLock< Key, Value, Less >::Unlock(), and CCacheWithLock< Key, Value, Less >::x_GC().
|
protected |
Definition at line 82 of file csraloader_impl.hpp.
Referenced by CCacheWithLock< Key, Value, Less >::get_size_limit(), CCacheWithLock< Key, Value, Less >::set_size_limit(), CCacheWithLock< Key, Value, Less >::Unlock(), and CCacheWithLock< Key, Value, Less >::x_GC().