Bitcoin
|
#include <streams.h>
Public Member Functions | |
CBufferedFile (FILE *fileIn, uint64_t nBufSize, uint64_t nRewindIn, int nTypeIn, int nVersionIn) | |
~CBufferedFile () | |
CBufferedFile (const CBufferedFile &)=delete | |
CBufferedFile & | operator= (const CBufferedFile &)=delete |
int | GetVersion () const |
int | GetType () const |
void | fclose () |
bool | eof () const |
check whether we're at the end of the source file More... | |
void | read (char *pch, size_t nSize) |
read a number of bytes More... | |
uint64_t | GetPos () const |
return the current reading position More... | |
bool | SetPos (uint64_t nPos) |
rewind to a given reading position More... | |
bool | Seek (uint64_t nPos) |
bool | SetLimit (uint64_t nPos=std::numeric_limits< uint64_t >::max()) |
template<typename T > | |
CBufferedFile & | operator>> (T &&obj) |
void | FindByte (char ch) |
search for a given byte in the stream, and remain positioned on it More... | |
Protected Member Functions | |
bool | Fill () |
read data from the source to fill the buffer More... | |
Private Attributes | |
const int | nType |
const int | nVersion |
FILE * | src |
source file More... | |
uint64_t | nSrcPos |
how many bytes have been read from source More... | |
uint64_t | nReadPos |
how many bytes have been read from this More... | |
uint64_t | nReadLimit |
up to which position we're allowed to read More... | |
uint64_t | nRewind |
how many bytes we guarantee to rewind More... | |
std::vector< char > | vchBuf |
the buffer More... | |
Non-refcounted RAII wrapper around a FILE* that implements a ring buffer to deserialize from. It guarantees the ability to rewind a given number of bytes.
Will automatically close the file when it goes out of scope if not null. If you need to close the file early, use file.fclose() instead of fclose(file).
|
inline |
|
inline |
|
delete |
|
inline |
check whether we're at the end of the source file
|
inline |
|
inlineprotected |
read data from the source to fill the buffer
|
inline |
search for a given byte in the stream, and remain positioned on it
|
inline |
return the current reading position
|
inline |
|
inline |
|
delete |
|
inline |
|
inline |
read a number of bytes
|
inline |
prevent reading beyond a certain position no argument removes the limit
|
inline |
rewind to a given reading position
|
private |
up to which position we're allowed to read
|
private |
how many bytes have been read from this
|
private |
how many bytes we guarantee to rewind
|
private |
how many bytes have been read from source
|
private |
|
private |
|
private |
source file
|
private |
the buffer