NCBI C++ ToolKit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
CTSE_Split_Info Class Reference

Search Toolkit Book for CTSE_Split_Info

#include <objmgr/impl/tse_split_info.hpp>

+ Inheritance diagram for CTSE_Split_Info:
+ Collaboration diagram for CTSE_Split_Info:

Public Types

typedef CBlobIdKey TBlobId
 
typedef int TBlobVersion
 
typedef int TSplitVersion
 
typedef CTSE_Chunk_Info::TChunkId TChunkId
 
typedef vector< TChunkIdTChunkIds
 
typedef map< CTSE_Info *, CRef< ITSE_Assigner > > TTSE_Set
 
typedef vector< pair< CSeq_id_Handle, TChunkId > > TSeqIdToChunks
 
typedef map< TChunkId, CRef< CTSE_Chunk_Info > > TChunks
 
typedef CTSE_Chunk_Info::TBioseqId TBioseqId
 
typedef CTSE_Chunk_Info::TBioseq_setId TBioseq_setId
 
typedef CTSE_Chunk_Info::TPlace TPlace
 
typedef CTSE_Chunk_Info::TDescInfo TDescInfo
 
typedef CTSE_Chunk_Info::TSequence TSequence
 
typedef CTSE_Chunk_Info::TAssembly TAssembly
 
typedef CTSE_Chunk_Info::TLocationSet TLocationSet
 
typedef vector< CSeq_id_HandleTSeqIds
 
typedef CTSE_Chunk_Info::TAssemblyInfo TAssemblyInfo
 
- 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

 CTSE_Split_Info (void)
 
 CTSE_Split_Info (TBlobId, TBlobVersion)
 
 ~CTSE_Split_Info (void)
 
TBlobId GetBlobId (void) const
 
TBlobVersion GetBlobVersion (void) const
 
TSplitVersion GetSplitVersion (void) const
 
void SetSplitVersion (TSplitVersion version)
 
CInitMutexPoolGetMutexPool (void)
 
CDataLoaderGetDataLoader (void) const
 
void x_DSAttach (CDataSource &ds)
 
void x_DSDetach (CDataSource &ds)
 
void x_TSEAttach (CTSE_Info &tse_info, CRef< ITSE_Assigner > &assigner)
 
void x_TSEDetach (CTSE_Info &tse_info)
 
CRef< ITSE_AssignerGetAssigner (const CTSE_Info &tse)
 
void AddChunk (CTSE_Chunk_Info &chunk_info)
 
CTSE_Chunk_InfoGetChunk (TChunkId chunk_id)
 
const CTSE_Chunk_InfoGetChunk (TChunkId chunk_id) const
 
CTSE_Chunk_InfoGetSkeletonChunk (void)
 
void LoadChunk (TChunkId id) const
 
void LoadChunks (const TChunkIds &ids) const
 
bool x_HasDelayedMainChunk (void) const
 
bool x_NeedsDelayedMainChunk (void) const
 
void x_LoadDelayedMainChunk (void) const
 
void x_AddDescInfo (const TDescInfo &info, TChunkId chunk_id)
 
void x_AddAnnotPlace (const TPlace &place, TChunkId chunk_id)
 
void x_AddBioseqPlace (TBioseq_setId place_id, TChunkId chunk_id)
 
void x_AddSeq_data (const TLocationSet &location, CTSE_Chunk_Info &chunk)
 
void x_AddAssemblyInfo (const TAssemblyInfo &info, TChunkId chunk_id)
 
void x_UpdateCore (void)
 
void x_SetBioseqChunkId (TChunkId chunk_id)
 
void x_SetContainedId (const TBioseqId &id, TChunkId chunk_id, bool bioseq)
 
void x_SetContainedSeqIds (const vector< TBioseqId > &seq_ids, const set< TBioseqId > &annot_ids, TChunkId chunk_id)
 
bool x_CanAddBioseq (const TBioseqId &id) const
 
void x_UpdateAnnotIndex (void)
 
void x_UpdateAnnotIndex (CTSE_Chunk_Info &chunk)
 
void x_UpdateFeatIdIndex (CSeqFeatData::E_Choice type, EFeatIdType id_type)
 
void x_UpdateFeatIdIndex (CSeqFeatData::ESubtype subtype, EFeatIdType id_type)
 
void GetBioseqsIds (TSeqIds &ids) const
 
bool ContainsBioseqs () const
 
bool ContainsBioseq (const CSeq_id_Handle &id) const
 
void x_GetRecords (const CSeq_id_Handle &id, bool bioseq) const
 
void x_LoadChunk (TChunkId chunk_id) const
 
void x_LoadChunks (const TChunkIds &chunk_ids) const
 
void x_AddChunksForGetRecords (vector< CConstRef< CTSE_Chunk_Info >> &chunks, const CSeq_id_Handle &id) const
 
void x_LoadDescr (const TPlace &place, const CSeq_descr &descr)
 
void x_LoadAnnot (const TPlace &place, const CSeq_annot &annot, int chunk_id)
 
void x_LoadBioseqs (const TPlace &place, const list< CRef< CBioseq > > &bioseqs, int chunk_id)
 
void x_LoadSequence (const TPlace &place, TSeqPos pos, const TSequence &sequence)
 
void x_LoadAssembly (const TBioseqId &seq_id, const TAssembly &assembly)
 
void x_LoadSeq_entry (CSeq_entry &entry, CTSE_SetObjectInfo *set_info=0)
 
void x_AddUsedMemory (size_t size)
 
void x_SetBioseqUpdater (CRef< CBioseqUpdater > updater)
 
- 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
 

Static Public Member Functions

static void x_LoadChunks (CDataLoader *loader, const vector< CConstRef< CTSE_Chunk_Info >> &chunks)
 
- 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)
 

Protected Member Functions

TSeqIdToChunks::const_iterator x_FindChunk (const CSeq_id_Handle &id) const
 
- Protected Member Functions inherited from CObject
virtual void DeleteThis (void)
 Virtual method "deleting" this object. More...
 

Private Member Functions

 CTSE_Split_Info (const CTSE_Split_Info &)
 
CTSE_Split_Infooperator= (const CTSE_Split_Info &)
 

Private Attributes

CDataSourcem_DataLoader
 
TBlobId m_BlobId
 
TBlobVersion m_BlobVersion
 
TSplitVersion m_SplitVersion
 
TTSE_Set m_TSE_Set
 
CMutex m_AttachMutex
 
CMutex m_ChunksMutex
 
TChunks m_Chunks
 
TChunkId m_BioseqChunkId
 
CInitMutexPool m_MutexPool
 
CMutex m_SeqIdToChunksMutex
 
bool m_SeqIdToChunksSorted
 
atomic< boolm_ContainsBioseqs
 
TSeqIdToChunks m_SeqIdToChunks
 

Additional Inherited Members

- 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

Definition at line 63 of file tse_split_info.hpp.

Member Typedef Documentation

◆ TAssembly

Definition at line 79 of file tse_split_info.hpp.

◆ TAssemblyInfo

Definition at line 82 of file tse_split_info.hpp.

◆ TBioseq_setId

Definition at line 75 of file tse_split_info.hpp.

◆ TBioseqId

Definition at line 74 of file tse_split_info.hpp.

◆ TBlobId

Definition at line 66 of file tse_split_info.hpp.

◆ TBlobVersion

Definition at line 67 of file tse_split_info.hpp.

◆ TChunkId

Definition at line 69 of file tse_split_info.hpp.

◆ TChunkIds

Definition at line 70 of file tse_split_info.hpp.

◆ TChunks

Definition at line 73 of file tse_split_info.hpp.

◆ TDescInfo

Definition at line 77 of file tse_split_info.hpp.

◆ TLocationSet

Definition at line 80 of file tse_split_info.hpp.

◆ TPlace

Definition at line 76 of file tse_split_info.hpp.

◆ TSeqIds

Definition at line 81 of file tse_split_info.hpp.

◆ TSeqIdToChunks

Definition at line 72 of file tse_split_info.hpp.

◆ TSequence

Definition at line 78 of file tse_split_info.hpp.

◆ TSplitVersion

Definition at line 68 of file tse_split_info.hpp.

◆ TTSE_Set

Definition at line 71 of file tse_split_info.hpp.

Constructor & Destructor Documentation

◆ CTSE_Split_Info() [1/3]

CTSE_Split_Info::CTSE_Split_Info ( void  )

Definition at line 62 of file tse_split_info.cpp.

◆ CTSE_Split_Info() [2/3]

CTSE_Split_Info::CTSE_Split_Info ( TBlobId  blob_id,
TBlobVersion  blob_ver 
)

Definition at line 72 of file tse_split_info.cpp.

◆ ~CTSE_Split_Info()

CTSE_Split_Info::~CTSE_Split_Info ( void  )

Definition at line 84 of file tse_split_info.cpp.

References m_Chunks, m_ChunksMutex, and NON_CONST_ITERATE.

◆ CTSE_Split_Info() [3/3]

CTSE_Split_Info::CTSE_Split_Info ( const CTSE_Split_Info )
private

Member Function Documentation

◆ AddChunk()

void CTSE_Split_Info::AddChunk ( CTSE_Chunk_Info chunk_info)

◆ ContainsBioseq()

bool CTSE_Split_Info::ContainsBioseq ( const CSeq_id_Handle id) const

◆ ContainsBioseqs()

bool CTSE_Split_Info::ContainsBioseqs ( ) const
inline

◆ GetAssigner()

CRef< ITSE_Assigner > CTSE_Split_Info::GetAssigner ( const CTSE_Info tse)

◆ GetBioseqsIds()

void CTSE_Split_Info::GetBioseqsIds ( TSeqIds ids) const

Definition at line 501 of file tse_split_info.cpp.

References ITERATE, m_Chunks, and m_ChunksMutex.

Referenced by CTSE_Info::GetBioseqsIds().

◆ GetBlobId()

CTSE_Split_Info::TBlobId CTSE_Split_Info::GetBlobId ( void  ) const

Definition at line 159 of file tse_split_info.cpp.

References _ASSERT, and m_BlobId.

Referenced by CTSE_Chunk_Info::GetBlobId().

◆ GetBlobVersion()

CTSE_Split_Info::TBlobVersion CTSE_Split_Info::GetBlobVersion ( void  ) const

Definition at line 166 of file tse_split_info.cpp.

References m_BlobVersion.

Referenced by CTSE_Chunk_Info::GetBlobVersion().

◆ GetChunk() [1/2]

CTSE_Chunk_Info & CTSE_Split_Info::GetChunk ( TChunkId  chunk_id)

◆ GetChunk() [2/2]

const CTSE_Chunk_Info & CTSE_Split_Info::GetChunk ( TChunkId  chunk_id) const

◆ GetDataLoader()

CDataLoader & CTSE_Split_Info::GetDataLoader ( void  ) const

◆ GetMutexPool()

CInitMutexPool & CTSE_Split_Info::GetMutexPool ( void  )

◆ GetSkeletonChunk()

CTSE_Chunk_Info & CTSE_Split_Info::GetSkeletonChunk ( void  )

◆ GetSplitVersion()

CTSE_Split_Info::TSplitVersion CTSE_Split_Info::GetSplitVersion ( void  ) const

◆ LoadChunk()

void CTSE_Split_Info::LoadChunk ( TChunkId  id) const
inline

Definition at line 206 of file tse_split_info.hpp.

References x_LoadChunk().

Referenced by x_LoadChunks().

◆ LoadChunks()

void CTSE_Split_Info::LoadChunks ( const TChunkIds ids) const
inline

Definition at line 213 of file tse_split_info.hpp.

References x_LoadChunks().

◆ operator=()

CTSE_Split_Info& CTSE_Split_Info::operator= ( const CTSE_Split_Info )
private

◆ SetSplitVersion()

void CTSE_Split_Info::SetSplitVersion ( TSplitVersion  version)

◆ x_AddAnnotPlace()

void CTSE_Split_Info::x_AddAnnotPlace ( const TPlace place,
TChunkId  chunk_id 
)

◆ x_AddAssemblyInfo()

void CTSE_Split_Info::x_AddAssemblyInfo ( const TAssemblyInfo info,
TChunkId  chunk_id 
)

◆ x_AddBioseqPlace()

void CTSE_Split_Info::x_AddBioseqPlace ( TBioseq_setId  place_id,
TChunkId  chunk_id 
)

◆ x_AddChunksForGetRecords()

void CTSE_Split_Info::x_AddChunksForGetRecords ( vector< CConstRef< CTSE_Chunk_Info >> &  chunks,
const CSeq_id_Handle id 
) const

◆ x_AddDescInfo()

void CTSE_Split_Info::x_AddDescInfo ( const TDescInfo info,
TChunkId  chunk_id 
)

◆ x_AddSeq_data()

void CTSE_Split_Info::x_AddSeq_data ( const TLocationSet location,
CTSE_Chunk_Info chunk 
)

◆ x_AddUsedMemory()

void CTSE_Split_Info::x_AddUsedMemory ( size_t  size)

◆ x_CanAddBioseq()

bool CTSE_Split_Info::x_CanAddBioseq ( const TBioseqId id) const

Definition at line 406 of file tse_split_info.cpp.

References ITERATE, and m_TSE_Set.

◆ x_DSAttach()

void CTSE_Split_Info::x_DSAttach ( CDataSource ds)

◆ x_DSDetach()

void CTSE_Split_Info::x_DSDetach ( CDataSource ds)

◆ x_FindChunk()

CTSE_Split_Info::TSeqIdToChunks::const_iterator CTSE_Split_Info::x_FindChunk ( const CSeq_id_Handle id) const
protected

◆ x_GetRecords()

void CTSE_Split_Info::x_GetRecords ( const CSeq_id_Handle id,
bool  bioseq 
) const

◆ x_HasDelayedMainChunk()

bool CTSE_Split_Info::x_HasDelayedMainChunk ( void  ) const

◆ x_LoadAnnot()

void CTSE_Split_Info::x_LoadAnnot ( const TPlace place,
const CSeq_annot annot,
int  chunk_id 
)

◆ x_LoadAssembly()

void CTSE_Split_Info::x_LoadAssembly ( const TBioseqId seq_id,
const TAssembly assembly 
)

◆ x_LoadBioseqs()

void CTSE_Split_Info::x_LoadBioseqs ( const TPlace place,
const list< CRef< CBioseq > > &  bioseqs,
int  chunk_id 
)

◆ x_LoadChunk()

void CTSE_Split_Info::x_LoadChunk ( TChunkId  chunk_id) const

◆ x_LoadChunks() [1/2]

void CTSE_Split_Info::x_LoadChunks ( CDataLoader loader,
const vector< CConstRef< CTSE_Chunk_Info >> &  chunks 
)
static

◆ x_LoadChunks() [2/2]

void CTSE_Split_Info::x_LoadChunks ( const TChunkIds chunk_ids) const

◆ x_LoadDelayedMainChunk()

void CTSE_Split_Info::x_LoadDelayedMainChunk ( void  ) const

◆ x_LoadDescr()

void CTSE_Split_Info::x_LoadDescr ( const TPlace place,
const CSeq_descr descr 
)

◆ x_LoadSeq_entry()

void CTSE_Split_Info::x_LoadSeq_entry ( CSeq_entry entry,
CTSE_SetObjectInfo set_info = 0 
)

◆ x_LoadSequence()

void CTSE_Split_Info::x_LoadSequence ( const TPlace place,
TSeqPos  pos,
const TSequence sequence 
)

◆ x_NeedsDelayedMainChunk()

bool CTSE_Split_Info::x_NeedsDelayedMainChunk ( void  ) const

◆ x_SetBioseqChunkId()

void CTSE_Split_Info::x_SetBioseqChunkId ( TChunkId  chunk_id)

◆ x_SetBioseqUpdater()

void CTSE_Split_Info::x_SetBioseqUpdater ( CRef< CBioseqUpdater updater)

Definition at line 747 of file tse_split_info.cpp.

References m_TSE_Set, NON_CONST_ITERATE, and CTSE_Info::SetBioseqUpdater().

◆ x_SetContainedId()

void CTSE_Split_Info::x_SetContainedId ( const TBioseqId id,
TChunkId  chunk_id,
bool  bioseq 
)

◆ x_SetContainedSeqIds()

void CTSE_Split_Info::x_SetContainedSeqIds ( const vector< TBioseqId > &  seq_ids,
const set< TBioseqId > &  annot_ids,
TChunkId  chunk_id 
)

◆ x_TSEAttach()

void CTSE_Split_Info::x_TSEAttach ( CTSE_Info tse_info,
CRef< ITSE_Assigner > &  assigner 
)

◆ x_TSEDetach()

void CTSE_Split_Info::x_TSEDetach ( CTSE_Info tse_info)

Definition at line 104 of file tse_split_info.cpp.

References map_checker< Container >::erase(), and m_TSE_Set.

Referenced by CTSE_Info::~CTSE_Info().

◆ x_UpdateAnnotIndex() [1/2]

void CTSE_Split_Info::x_UpdateAnnotIndex ( CTSE_Chunk_Info chunk)

Definition at line 435 of file tse_split_info.cpp.

References ITERATE, m_TSE_Set, and CTSE_Chunk_Info::x_UpdateAnnotIndex().

◆ x_UpdateAnnotIndex() [2/2]

void CTSE_Split_Info::x_UpdateAnnotIndex ( void  )

◆ x_UpdateCore()

void CTSE_Split_Info::x_UpdateCore ( void  )

Definition at line 646 of file tse_split_info.cpp.

References GetChunk(), CTSE_Chunk_Info::Load(), and m_BioseqChunkId.

Referenced by CTSE_Info::x_DoUpdate().

◆ x_UpdateFeatIdIndex() [1/2]

void CTSE_Split_Info::x_UpdateFeatIdIndex ( CSeqFeatData::E_Choice  type,
EFeatIdType  id_type 
)

Definition at line 418 of file tse_split_info.cpp.

Referenced by CTSE_Info::UpdateFeatIdIndex().

◆ x_UpdateFeatIdIndex() [2/2]

void CTSE_Split_Info::x_UpdateFeatIdIndex ( CSeqFeatData::ESubtype  subtype,
EFeatIdType  id_type 
)

Definition at line 424 of file tse_split_info.cpp.

Member Data Documentation

◆ m_AttachMutex

CMutex CTSE_Split_Info::m_AttachMutex
mutableprivate

Definition at line 185 of file tse_split_info.hpp.

Referenced by AddChunk().

◆ m_BioseqChunkId

TChunkId CTSE_Split_Info::m_BioseqChunkId
private

Definition at line 190 of file tse_split_info.hpp.

Referenced by x_AddBioseqPlace(), and x_UpdateCore().

◆ m_BlobId

TBlobId CTSE_Split_Info::m_BlobId
private

Definition at line 177 of file tse_split_info.hpp.

Referenced by GetBlobId().

◆ m_BlobVersion

TBlobVersion CTSE_Split_Info::m_BlobVersion
private

Definition at line 178 of file tse_split_info.hpp.

Referenced by GetBlobVersion().

◆ m_Chunks

TChunks CTSE_Split_Info::m_Chunks
private

◆ m_ChunksMutex

CMutex CTSE_Split_Info::m_ChunksMutex
mutableprivate

◆ m_ContainsBioseqs

atomic<bool> CTSE_Split_Info::m_ContainsBioseqs
private

Definition at line 196 of file tse_split_info.hpp.

Referenced by ContainsBioseqs(), x_SetContainedId(), and x_SetContainedSeqIds().

◆ m_DataLoader

CDataSource* CTSE_Split_Info::m_DataLoader
private

◆ m_MutexPool

CInitMutexPool CTSE_Split_Info::m_MutexPool
private

Definition at line 193 of file tse_split_info.hpp.

Referenced by GetMutexPool().

◆ m_SeqIdToChunks

TSeqIdToChunks CTSE_Split_Info::m_SeqIdToChunks
mutableprivate

◆ m_SeqIdToChunksMutex

CMutex CTSE_Split_Info::m_SeqIdToChunksMutex
mutableprivate

◆ m_SeqIdToChunksSorted

bool CTSE_Split_Info::m_SeqIdToChunksSorted
mutableprivate

Definition at line 195 of file tse_split_info.hpp.

Referenced by x_FindChunk(), x_SetContainedId(), and x_SetContainedSeqIds().

◆ m_SplitVersion

TSplitVersion CTSE_Split_Info::m_SplitVersion
private

Definition at line 179 of file tse_split_info.hpp.

Referenced by GetSplitVersion(), and SetSplitVersion().

◆ m_TSE_Set

TTSE_Set CTSE_Split_Info::m_TSE_Set
private

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