NCBI C++ ToolKit
|
Search Toolkit Book for CSeqDBSeqFile
#include <objtools/blast/seqdb_reader/impl/seqdbfile.hpp>
Public Types | |
typedef CSeqDBAtlas::TIndx | TIndx |
Type which spans possible file offsets. More... | |
![]() | |
typedef CSeqDBAtlas::TIndx | TIndx |
Type which spans possible file offsets. More... | |
![]() | |
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 | |
CSeqDBSeqFile (CSeqDBAtlas &atlas, const string &dbname, char prot_nucl) | |
Constructor. More... | |
virtual | ~CSeqDBSeqFile () |
Destructor. More... | |
void | ReadBytes (char *buf, TIndx start, TIndx end) const |
Read part of the file into a buffer. More... | |
const char * | GetFileDataPtr (TIndx start) const |
Get a pointer into the file contents. More... | |
![]() | |
CSeqDBExtFile (CSeqDBAtlas &atlas, const string &dbfilename, char prot_nucl) | |
Constructor. More... | |
virtual | ~CSeqDBExtFile () |
Destructor. More... | |
void | UnLease () |
Release memory held in the atlas layer by this object. More... | |
![]() | |
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 |
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... | |
![]() | |
void | x_ReadBytes (char *buf, TIndx start, TIndx end) const |
Read part of the file into a buffer. More... | |
template<class T > | |
TIndx | x_ReadSwapped (CSeqDBFileMemMap &lease, TIndx offset, T *value) |
Read a numerical object from the file. More... | |
char | x_GetSeqType () const |
Get the volume's sequence data type. More... | |
void | x_SetFileType (char prot_nucl) |
Sets the sequence data type. More... | |
![]() | |
virtual void | DeleteThis (void) |
Virtual method "deleting" this object. More... | |
![]() | |
CSeqDBAtlas & | m_Atlas |
The memory layer management object. More... | |
string | m_FileName |
The name of this file. More... | |
char | m_ProtNucl |
Either 'p' for protein or 'n' for nucleotide. More... | |
CSeqDBFileMemMap | m_Lease |
A memory lease used by this file. More... | |
CSeqDBRawFile | m_File |
The raw file object. More... | |
Sequence data file.
This is the .psq or .nsq file; it provides the raw sequence data, and for nucleotide sequences, ambiguity data. For nucleotide sequences, the last byte will contain a two bit marker with a number from 0-3, which indicates how much of the rest of that byte is filled with base information (0-3 bases, which is 0-6 bits). For ambiguous regions, the sequence data is normally randomized in this file, to reduce the number of accidental false positives during the search. The ambiguity data encodes the location of, and actual data for, those regions.
Definition at line 748 of file seqdbfile.hpp.
Type which spans possible file offsets.
Definition at line 751 of file seqdbfile.hpp.
|
inline |
Constructor.
This builds an object which provides access to the sequence data file for a volume. This file is simply a concatenation of all the sequence data for the database sequences. In a protein file, these are just the database sequences seperated by NUL bytes. In a nucleotide volume, the packed data for each sequence is followed by ambiguity data for that sequence (if any such data exists).
atlas | The memory management layer object. |
dbname | The name of the database volume. |
prot_nucl | The sequence data type. |
locked | The lock holder object for this thread. |
Definition at line 771 of file seqdbfile.hpp.
|
inlinevirtual |
Destructor.
Definition at line 779 of file seqdbfile.hpp.
Get a pointer into the file contents.
Copy the sequence data from offsets start to end into the array at buf, which is assumed to already have been allocated. This method assumes the atlas lock is held. If the user will take ownership of the memory region hold, the keep argument should be specified as true.
start | The starting offset for the first byte to read. |
end | The offset for the first byte after the area to read. |
keep | True if an extra hold should be acquired on the data. |
hold | Specify true to get a request-duration hold. |
locked | The lock holder object for this thread. |
Definition at line 822 of file seqdbfile.hpp.
References CSeqDBFileMemMap::GetFileDataPtr(), and CSeqDBExtFile::m_Lease.
Referenced by CSeqDBVol::GetRawSeqAndAmbig(), CSeqDBVol::x_GetAmbChar(), and CSeqDBVol::x_GetSequence().
Read part of the file into a buffer.
Copy the sequence data from offsets start to end into the array at buf, which is assumed to already have been allocated. This method assumes the atlas lock is held.
buf | The destination for the data to be read. |
start | The starting offset for the first byte to read. |
end | The offset for the first byte after the area to read. |
Definition at line 795 of file seqdbfile.hpp.
References buf, and CSeqDBExtFile::x_ReadBytes().
Referenced by CSeqDBVol::GetSeqLengthExact().