NCBI C++ ToolKit
|
Search Toolkit Book for CSGDataSourceContext
#include <gui/widgets/seq_graphic/seqgraphic_ds_manager.hpp>
Public Types | |
typedef map< string, CWeakIRef< ISGDataSource > > | TDSRegistry |
typedef CIRef< ISGDataSourceType > | TDataSourceTypeRef |
typedef vector< TDataSourceTypeRef > | TDataSourceTypeVec |
![]() | |
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... | |
![]() | |
using | TDataBlob = INonAsnTrackData::TDataBlob |
Public Member Functions | |
CSGDataSourceContext () | |
virtual | ~CSGDataSourceContext () |
ISGDataSouceContext interface implementation. | |
virtual CIRef< ISGDataSource > | GetDS (const string &type, SConstScopedObject &object) |
Get a seqgraphic data source instance of the specified type. More... | |
virtual void | ClearCache () |
clear the cache if any. More... | |
INonAsnDataRegistry interface implementation. | |
virtual void | AddNonAsnData (const INonAsnTrackData &data) |
virtual void | RemoveNonAsnData (const INonAsnTrackData &data) |
virtual bool | HasNonAsnData (const string &annot_name) const |
virtual const TDataBlob & | GetNonAsnDataBlob (const string &annot_name) const |
![]() | |
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... | |
![]() | |
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 |
![]() | |
virtual | ~ISGDataSourceContext () |
![]() | |
virtual | ~INonAsnDataRegistry () |
Private Types | |
using | TBlobsMap = map< string, const TDataBlob * > |
Private Member Functions | |
CSGDataSourceContext (const CSGDataSourceContext &) | |
prohibited copy constructor and assignment operator. More... | |
CSGDataSourceContext & | operator= (const CSGDataSourceContext &) |
Private Attributes | |
TDataSourceTypeVec | m_DataSourceTypes |
All the registered data source types. More... | |
TDSRegistry | m_DataSources |
The cached data source instances. More... | |
CFastMutex | m_Mutex |
make sure data source context is thread-safe More... | |
TBlobsMap | m_NonAsnDataBlobs |
std::mutex | m_NonAsnDataBlobsMutex |
Additional Inherited Members | |
![]() | |
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 void | EnableDebugDump (bool on) |
![]() | |
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... | |
![]() | |
virtual void | DeleteThis (void) |
Virtual method "deleting" this object. More... | |
Definition at line 74 of file seqgraphic_ds_manager.hpp.
|
private |
Definition at line 116 of file seqgraphic_ds_manager.hpp.
Definition at line 81 of file seqgraphic_ds_manager.hpp.
typedef vector<TDataSourceTypeRef> CSGDataSourceContext::TDataSourceTypeVec |
Definition at line 82 of file seqgraphic_ds_manager.hpp.
typedef map< string, CWeakIRef<ISGDataSource> > CSGDataSourceContext::TDSRegistry |
Definition at line 80 of file seqgraphic_ds_manager.hpp.
CSGDataSourceContext::CSGDataSourceContext | ( | ) |
Definition at line 40 of file seqgraphic_ds_manager.cpp.
References EXT_POINT__SEQGRAPHIC_DATA_SOURCE_TYPE, GetExtensionAsInterface(), and m_DataSourceTypes.
|
virtual |
Definition at line 96 of file seqgraphic_ds_manager.cpp.
|
private |
prohibited copy constructor and assignment operator.
|
virtual |
Implements INonAsnDataRegistry.
Definition at line 114 of file seqgraphic_ds_manager.cpp.
References INonAsnTrackData::GetAnnots(), INonAsnTrackData::GetBlob(), m_NonAsnDataBlobs, and m_NonAsnDataBlobsMutex.
|
virtual |
clear the cache if any.
Implements ISGDataSourceContext.
Definition at line 101 of file seqgraphic_ds_manager.cpp.
References map_checker< Container >::clear(), m_DataSources, m_Mutex, m_NonAsnDataBlobs, and m_NonAsnDataBlobsMutex.
|
virtual |
Get a seqgraphic data source instance of the specified type.
If a datasource is not sharable, it will just create one based on the input object. If a datasource is sharable, it will return a cached instance if there is a cached one. Otherwise, a new instance will get created, cached and returned. TODO, preferably, the context should be able to distinguish different objects in addition to the types.
Implements ISGDataSourceContext.
Definition at line 48 of file seqgraphic_ds_manager.cpp.
References ISGDataSourceType::CreateDS(), map_checker< Container >::end(), map_checker< Container >::erase(), map_checker< Container >::find(), CRef< C, Locker >::GetPointer(), CRef< C, Locker >::GetPointerOrNull(), i, CRef< C, Locker >::IsNull(), ISGDataSourceType::IsSharable(), m_DataSources, m_DataSourceTypes, m_Mutex, NCBI_THROW, CRef< C, Locker >::Reset(), INonAsnDataSource::SetNonAsnDataRegistry(), and type.
|
virtual |
Implements INonAsnDataRegistry.
Definition at line 136 of file seqgraphic_ds_manager.cpp.
References m_NonAsnDataBlobs, and m_NonAsnDataBlobsMutex.
Implements INonAsnDataRegistry.
Definition at line 130 of file seqgraphic_ds_manager.cpp.
References m_NonAsnDataBlobs, and m_NonAsnDataBlobsMutex.
|
private |
|
virtual |
Implements INonAsnDataRegistry.
Definition at line 120 of file seqgraphic_ds_manager.cpp.
References map_checker< Container >::end(), map_checker< Container >::erase(), CVcfHistogram::EraseCachePerAnnotation(), map_checker< Container >::find(), INonAsnTrackData::GetAnnots(), m_NonAsnDataBlobs, and m_NonAsnDataBlobsMutex.
|
private |
The cached data source instances.
Definition at line 113 of file seqgraphic_ds_manager.hpp.
Referenced by ClearCache(), and GetDS().
|
private |
All the registered data source types.
Definition at line 112 of file seqgraphic_ds_manager.hpp.
Referenced by CSGDataSourceContext(), and GetDS().
|
private |
make sure data source context is thread-safe
Definition at line 114 of file seqgraphic_ds_manager.hpp.
Referenced by ClearCache(), and GetDS().
|
private |
Definition at line 118 of file seqgraphic_ds_manager.hpp.
Referenced by AddNonAsnData(), ClearCache(), GetNonAsnDataBlob(), HasNonAsnData(), and RemoveNonAsnData().
|
mutableprivate |
Definition at line 119 of file seqgraphic_ds_manager.hpp.
Referenced by AddNonAsnData(), ClearCache(), GetNonAsnDataBlob(), HasNonAsnData(), and RemoveNonAsnData().