NCBI C++ ToolKit
Public Member Functions | Private Member Functions | Private Attributes | List of all members
CRemoteBlastDbAdapter Class Reference

Search Toolkit Book for CRemoteBlastDbAdapter

This class allows retrieval of sequence data from BLAST databases at NCBI. More...

#include "remote_blastdb_adapter.hpp"
(Private to src/objtools/data_loaders/blastdb.)

+ Inheritance diagram for CRemoteBlastDbAdapter:
+ Collaboration diagram for CRemoteBlastDbAdapter:

Public Member Functions

 CRemoteBlastDbAdapter (const string &db_name, CSeqDB::ESeqType db_type, bool use_fixed_size_slices)
 Constructor. More...
 
virtual CSeqDB::ESeqType GetSequenceType ()
 @inheritDoc More...
 
virtual int GetSeqLength (int oid)
 @inheritDoc More...
 
virtual TSeqIdList GetSeqIDs (int oid)
 @inheritDoc More...
 
virtual CRef< CBioseqGetBioseqNoData (int oid, TGi target_gi=ZERO_GI, const CSeq_id *target_id=NULL)
 @inheritDoc More...
 
virtual CRef< CSeq_dataGetSequence (int oid, int begin=0, int end=0)
 @inheritDoc More...
 
void GetSequenceBatch (const vector< int > &oids, const vector< TSeqRange > &ranges, vector< CRef< CSeq_data > > &sequence_data)
 Batch-version of GetSequence. More...
 
virtual bool SeqidToOid (const CSeq_id &id, int &oid)
 @inheritDoc More...
 
bool SeqidToOidBatch (const vector< CRef< CSeq_id > > &ids, vector< int > &oids)
 Batch-version of SeqidToOid. More...
 
- Public Member Functions inherited from IBlastDbAdapter
virtual ~IBlastDbAdapter ()
 Virtual destructor. More...
 
virtual TTaxId GetTaxId (const CSeq_id_Handle &)
 Retrieve the taxonomy ID for the requested sequence identifier. More...
 
- 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
 

Private Member Functions

void x_FetchData (int oid, int begin, int end)
 This method actually retrieves the sequence data. More...
 
void x_FetchDataByBatch (const vector< int > &oids, const vector< TSeqRange > &ranges)
 

Private Attributes

string m_DbName
 BLAST database name. More...
 
CSeqDB::ESeqType m_DbType
 Sequence type of the BLAST database. More...
 
map< int, CCachedSeqDataForRemotem_Cache
 Internal cache, maps OIDs to CCachedSeqDataForRemote. More...
 
int m_NextLocalId
 Our local "OID generator". More...
 
bool m_UseFixedSizeSlices
 Determines whether sequences should be fetched in fixed size slices or in incrementally larger sizes. More...
 

Additional Inherited Members

- Public Types inherited from IBlastDbAdapter
typedef list< CRef< CSeq_id > > TSeqIdList
 Convenience typedef for a list of CSeq_id-s. More...
 
- 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...
 
- 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...
 
- Protected Member Functions inherited from CObject
virtual void DeleteThis (void)
 Virtual method "deleting" this object. More...
 

Detailed Description

This class allows retrieval of sequence data from BLAST databases at NCBI.

Definition at line 178 of file remote_blastdb_adapter.hpp.

Constructor & Destructor Documentation

◆ CRemoteBlastDbAdapter()

CRemoteBlastDbAdapter::CRemoteBlastDbAdapter ( const string db_name,
CSeqDB::ESeqType  db_type,
bool  use_fixed_size_slices 
)

Member Function Documentation

◆ GetBioseqNoData()

CRef< CBioseq > CRemoteBlastDbAdapter::GetBioseqNoData ( int  oid,
TGi  target_gi = ZERO_GI,
const CSeq_id target_id = NULL 
)
virtual

@inheritDoc

Implements IBlastDbAdapter.

Definition at line 78 of file remote_blastdb_adapter.cpp.

References _ASSERT, CSerialObject::Assign(), GetBioseq(), IsValid(), and m_Cache.

◆ GetSeqIDs()

IBlastDbAdapter::TSeqIdList CRemoteBlastDbAdapter::GetSeqIDs ( int  oid)
virtual

@inheritDoc

Implements IBlastDbAdapter.

Definition at line 71 of file remote_blastdb_adapter.cpp.

References _ASSERT, IsValid(), and m_Cache.

◆ GetSeqLength()

int CRemoteBlastDbAdapter::GetSeqLength ( int  oid)
virtual

@inheritDoc

Implements IBlastDbAdapter.

Definition at line 64 of file remote_blastdb_adapter.cpp.

References _ASSERT, IsValid(), and m_Cache.

◆ GetSequence()

CRef< CSeq_data > CRemoteBlastDbAdapter::GetSequence ( int  oid,
int  begin = 0,
int  end = 0 
)
virtual

◆ GetSequenceBatch()

void CRemoteBlastDbAdapter::GetSequenceBatch ( const vector< int > &  oids,
const vector< TSeqRange > &  ranges,
vector< CRef< CSeq_data > > &  sequence_data 
)

Batch-version of GetSequence.

Parameters
oidsOIDs of the sequences to fetch, must be of same size as ranges [in]
rangessequence ranges for the OIDs above, must be of same size as oids. If any of the ranges is TSeqRange::GetEmpty, the whole sequence will be fetched (assuming no splitting of the sequence occurred), otherwise the ranges are expected to be spanning a give sequence chunk
See also
x_CalculateNumberOfSlices [in]
Parameters
sequence_dataoutput parameter for the sequence data to fetch [out]

Definition at line 207 of file remote_blastdb_adapter.cpp.

References _ASSERT, COpenRange< TSeqPos >::GetEmpty(), CCachedSeqDataForRemote::GetLength(), CCachedSeqDataForRemote::GetSeqDataChunk(), CCachedSeqDataForRemote::HasSequenceData(), i, CCachedSeqDataForRemote::IsValid(), m_Cache, NULL, and x_FetchDataByBatch().

Referenced by CRemoteBlastDbDataLoader::GetChunks().

◆ GetSequenceType()

virtual CSeqDB::ESeqType CRemoteBlastDbAdapter::GetSequenceType ( void  )
inlinevirtual

@inheritDoc

Implements IBlastDbAdapter.

Definition at line 186 of file remote_blastdb_adapter.hpp.

References m_DbType.

Referenced by SeqidToOid(), SeqidToOidBatch(), x_FetchData(), and x_FetchDataByBatch().

◆ SeqidToOid()

bool CRemoteBlastDbAdapter::SeqidToOid ( const CSeq_id id,
int oid 
)
virtual

◆ SeqidToOidBatch()

bool CRemoteBlastDbAdapter::SeqidToOidBatch ( const vector< CRef< CSeq_id > > &  ids,
vector< int > &  oids 
)

◆ x_FetchData()

void CRemoteBlastDbAdapter::x_FetchData ( int  oid,
int  begin,
int  end 
)
private

This method actually retrieves the sequence data.

Parameters
oidOID for the sequence of interest [in]
beginstarting offset of the sequence of interest [in]
endending offset of the sequence of interst [in]

Definition at line 118 of file remote_blastdb_adapter.cpp.

References _ASSERT, CSeqDB::eProtein, CCachedSeqDataForRemote::GetIdList(), CCachedSeqDataForRemote::GetLength(), CCachedSeqDataForRemote::GetSeqDataChunk(), CBlastServices::GetSequenceParts(), GetSequenceType(), CCachedSeqDataForRemote::HasSequenceData(), CCachedSeqDataForRemote::IsValid(), m_Cache, m_DbName, RemoteBlastDbLoader_ErrorHandler(), and true.

Referenced by GetSequence().

◆ x_FetchDataByBatch()

void CRemoteBlastDbAdapter::x_FetchDataByBatch ( const vector< int > &  oids,
const vector< TSeqRange > &  ranges 
)
private

Member Data Documentation

◆ m_Cache

map<int, CCachedSeqDataForRemote> CRemoteBlastDbAdapter::m_Cache
private

◆ m_DbName

string CRemoteBlastDbAdapter::m_DbName
private

BLAST database name.

Definition at line 218 of file remote_blastdb_adapter.hpp.

Referenced by SeqidToOid(), SeqidToOidBatch(), x_FetchData(), and x_FetchDataByBatch().

◆ m_DbType

CSeqDB::ESeqType CRemoteBlastDbAdapter::m_DbType
private

Sequence type of the BLAST database.

Definition at line 220 of file remote_blastdb_adapter.hpp.

Referenced by GetSequenceType().

◆ m_NextLocalId

int CRemoteBlastDbAdapter::m_NextLocalId
private

Our local "OID generator".

Definition at line 224 of file remote_blastdb_adapter.hpp.

Referenced by SeqidToOid(), and SeqidToOidBatch().

◆ m_UseFixedSizeSlices

bool CRemoteBlastDbAdapter::m_UseFixedSizeSlices
private

Determines whether sequences should be fetched in fixed size slices or in incrementally larger sizes.

Definition at line 227 of file remote_blastdb_adapter.hpp.

Referenced by SeqidToOid(), and SeqidToOidBatch().


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