1 #ifndef SRA__READER__BAM__BGZF__HPP
2 #define SRA__READER__BAM__BGZF__HPP
60 return m_FilePos.load(memory_order_acquire);
97 #define USE_RANGE_CACHE 1
98 #ifdef USE_RANGE_CACHE
108 pair<Uint8, double> GetReadStatistics()
const;
109 void SetPreviousReadStatistics(
const pair<Uint8, double>&
stats);
111 size_t GetNextPageSizePow2()
const;
114 void x_AddReadStatistics(
Uint8 bytes,
double seconds);
144 virtual const char* GetErrCodeString(
void)
const override;
329 return m_File->GetReadStatistics();
333 m_File->SetPreviousReadStatistics(
stats);
336 pair<Uint8, double> GetUncompressStatistics()
const;
341 void x_AddUncompressStatistics(
Uint8 bytes,
double seconds);
379 return m_Block? m_Block->GetDataSize(): 0;
383 return m_Block? m_Block->GetFileBlockPos(): 0;
387 return m_Block? m_Block->GetNextFileBlockPos(): 0;
391 return m_ReadPos < GetBlockDataSize();
396 return CBGZFPos(GetBlockFilePos(), m_ReadPos);
400 return CBGZFPos(GetNextBlockFilePos(), 0);
404 if ( HaveBytesInBlock() ) {
408 return GetNextBlockPos();
419 size_t GetNextAvailableBytes();
423 if ( HaveBytesInBlock() ) {
424 return GetPos() < m_EndPos;
426 return HaveNextDataBlock();
430 bool HaveNextDataBlock();
ostream & operator<<(ostream &out, const CBGZFPos &p)
pair< CBGZFPos, CBGZFPos > CBGZFRange
TFileBlockPos GetFileBlockPos() const
TFileBlockSize GetFileBlockSize() const
static const TDataSize kMaxDataSize
atomic< TFileBlockPos > m_FileBlockPos
static const TFileBlockSize kMaxFileBlockSize
TFileBlockSize m_FileBlockSize
TFileBlockPos GetNextFileBlockPos() const
TDataSize GetDataSize() const
@ eFormatError
includes decompression errors
NCBI_EXCEPTION_DEFAULT(CBGZFException, CException)
void SetPreviousReadStatistics(const pair< Uint8, double > &stats)
TBlockCache::CLock TBlock
pair< Uint8, double > GetReadStatistics() const
CBGZFPos::TFileBlockPos TFileBlockPos
Uint8 m_TotalUncompressBytes
CCacheWithLock< TFileBlockPos, CBGZFBlock > TBlockCache
CRef< CPagedFile > m_File
double m_TotalUncompressSeconds
CRef< TBlockCache > m_BlockCache
bool operator<=(const CBGZFPos &b) const
DECLARE_OPERATOR_BOOL(m_VirtualPos !=0)
static const Uint4 kMaxBlockSize
TByteOffset GetByteOffset() const
bool operator!=(const CBGZFPos &b) const
bool operator>(const CBGZFPos &b) const
bool operator>=(const CBGZFPos &b) const
CBGZFPos(TVirtualPos pos)
TVirtualPos GetVirtualPos() const
CBGZFPos(TFileBlockPos block_pos, TByteOffset byte_offset)
TFileBlockPos GetFileBlockPos() const
static CBGZFPos GetInvalid()
bool operator<(const CBGZFPos &b) const
bool operator==(const CBGZFPos &b) const
CBGZFPos GetNextBlockPos() const
CBGZFPos GetSeekPos() const
CBGZFBlock::TFileBlockPos GetNextBlockFilePos() const
CBGZFBlock::TDataSize GetBlockDataSize() const
bool x_ReadBlock(CBGZFPos::TFileBlockPos file_pos)
CBGZFPos GetEndPos() const
bool HaveNextAvailableBytes()
const char * x_Read(CBGZFPos::TFileBlockPos file_pos, size_t size, char *buffer)
bool HaveBytesInBlock() const
CBGZFPos::TByteOffset m_ReadPos
CBGZFFile::TBlock m_Block
CSimpleBufferT< char > m_OutReadBuffer
CBGZFBlock::TFileBlockPos GetBlockFilePos() const
CSimpleBufferT< char > m_InReadBuffer
Class for support low level input/output for files.
size_t GetPageSize() const
atomic< TFilePos > m_FilePos
const char * GetPagePtr() const
TFilePos GetFilePos() const
CMemoryFileMap * m_MemFile
CSimpleBufferT< char > m_Buffer
bool Contains(TFilePos file_pos) const
double m_PreviousReadSeconds
CBinaryRangeCacheWithLock< TFilePos, CPagedFilePage > TPageCache
AutoPtr< CMemoryFileMap > m_MemFile
CPagedFilePage::TFilePos TFilePos
Uint8 m_PreviousReadBytes
double m_TotalReadSeconds
CRef< TPageCache > m_PageCache
Include a standard set of the NCBI C++ Toolkit most basic headers.
std::ofstream out("events_result.xml")
main entry point for tests
EErrCode
Error types that an application can generate.
void Read(CObjectIStream &in, TObjectPtr object, const CTypeRef &type)
uint8_t Uint1
1-byte (8-bit) unsigned integer
uint32_t Uint4
4-byte (32-bit) unsigned integer
uint16_t Uint2
2-byte (16-bit) unsigned integer
uint64_t Uint8
8-byte (64-bit) unsigned integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
#define NCBI_BAMREAD_EXPORT
const struct ncbi::grid::netcache::search::fields::SIZE size
Defines classes: CDirEntry, CFile, CDir, CSymLink, CMemoryFile, CFileUtil, CFileLock,...
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
static Uint8 MakeUint8(const char *buf)
static Uint4 MakeUint4(const char *buf)
static Uint2 MakeUint2(const char *buf)
static float MakeFloat(const char *buf)