59 ds = ds_iter->second.Lock();
70 if (
type ==
typeid(ds_type).name()) {
88 if (
nullptr != nonasn_ds) {
virtual CIRef< ISGDataSource > GetDS(const string &type, SConstScopedObject &object)
Get a seqgraphic data source instance of the specified type.
virtual void AddNonAsnData(const INonAsnTrackData &data)
virtual void ClearCache()
clear the cache if any.
TBlobsMap m_NonAsnDataBlobs
virtual bool HasNonAsnData(const string &annot_name) const
TDSRegistry m_DataSources
The cached data source instances.
virtual const TDataBlob & GetNonAsnDataBlob(const string &annot_name) const
CFastMutex m_Mutex
make sure data source context is thread-safe
virtual void RemoveNonAsnData(const INonAsnTrackData &data)
virtual ~CSGDataSourceContext()
std::mutex m_NonAsnDataBlobsMutex
TDataSourceTypeVec m_DataSourceTypes
All the registered data source types.
static void EraseCachePerAnnotation(const string &annot_name)
virtual ISGDataSource * CreateDS(SConstScopedObject &object) const =0
create an instance of the layout track type using default settings.
virtual bool IsSharable() const =0
check if the data source can be shared.
container_type::iterator iterator
const_iterator end() const
const_iterator find(const key_type &key) const
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
virtual const TAnnots & GetAnnots() const =0
virtual void SetNonAsnDataRegistry(const INonAsnDataRegistry *registry)=0
INonAsnTrackData::TDataBlob TDataBlob
virtual const TDataBlob & GetBlob() const =0
void GetExtensionAsInterface(const string &ext_point_id, vector< CIRef< I > > &interfaces)
GetExtensionAsInterface() is a helper function that extracts all extensions implementing the specifie...
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
bool IsNull(void) const THROWS_NONE
Check if pointer is null – same effect as Empty().
TObjectType * GetPointerOrNull(void) THROWS_NONE
Get pointer value.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define EXT_POINT__SEQGRAPHIC_DATA_SOURCE_TYPE
ISGDataSourceManager uses the following extension point to obtain registered seqgraphic data source f...