Search Toolkit Book for CSeqDBExtFile
Database component file. More...
#include <objtools/blast/seqdb_reader/impl/seqdbfile.hpp>
Database component file.
This represents any database component file with an extension like "pxx" or "nxx". This finds the correct type (protein or nucleotide) if that is unknown, and computes the filename based on a filename template like "path/to/file/basename.-in".
This also provides a 'protected' interface to the specific db files, and defines a few useful methods.
Definition at line 258 of file seqdbfile.hpp.
◆ TIndxType which spans possible file offsets.
Definition at line 261 of file seqdbfile.hpp.
◆ CSeqDBExtFile()Constructor.
This builds an object which has a few properties required by most or all database volume component files. This object keeps a lease on the file from the first access until instructed not to, moving and expanding that lease to cover incoming requests. By keeping a lease, lookups, file opens, and other expensive operations are usually avoided on subsequent calls. This object also provides some methods to read data in a byte swapped or direct way.
Definition at line 106 of file seqdbfile.cpp.
References CSeqDBFileMemMap::Init(), m_File, m_FileName, m_Lease, msg(), NCBI_THROW, CSeqDBRawFile::Open(), string, and x_SetFileType().
◆ ~CSeqDBExtFile() virtual CSeqDBExtFile::~CSeqDBExtFile ( ) inlinevirtual ◆ UnLease() void CSeqDBExtFile::UnLease ( ) inline ◆ x_GetSeqType() char CSeqDBExtFile::x_GetSeqType ( ) const inlineprotected ◆ x_ReadBytes() void CSeqDBExtFile::x_ReadBytes ( char * buf, TIndx start, TIndx end ) const inlineprotectedRead part of the file into a buffer.
Copy the file 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.
Definition at line 312 of file seqdbfile.hpp.
References buf, m_File, m_Lease, and CSeqDBRawFile::ReadBytes().
Referenced by CSeqDBSeqFile::ReadBytes(), and CSeqDBHdrFile::ReadBytes().
◆ x_ReadSwapped()Read a numerical object from the file.
Given a pointer to an object in memory, this reads a numerical value for it from the file. The data in the file is assumed to be in network byte order, and the user version in the local default byte order (host order). The offset of the data is provided, and the size of the object is taken as sizeof(T).
Definition at line 338 of file seqdbfile.hpp.
References m_File, offset, CSeqDBRawFile::ReadSwapped(), and rapidjson::value.
Referenced by CSeqDBIdxFile::CSeqDBIdxFile().
◆ x_SetFileType() void CSeqDBExtFile::x_SetFileType ( char prot_nucl ) inlineprotectedSets the sequence data type.
The sequence data will be set as protein or nucleotide. An exception is thrown if an invalid type is provided. The first character of the file extension will be modified to reflect the sequence data type.
Definition at line 387 of file seqdbfile.hpp.
References _ASSERT, m_FileName, m_ProtNucl, and NCBI_THROW.
Referenced by CSeqDBExtFile().
◆ m_AtlasThe memory layer management object.
Definition at line 372 of file seqdbfile.hpp.
◆ m_File ◆ m_FileName string CSeqDBExtFile::m_FileName protected ◆ m_Lease ◆ m_ProtNucl char CSeqDBExtFile::m_ProtNucl protectedThe documentation for this class was generated from the following files:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4