|
| cache (generic_file &hidden, bool shift_mode, U_I size=102400) |
|
| cache (const cache &ref)=delete |
|
| cache (cache &&ref)=delete |
|
cache & | operator= (const cache &ref)=delete |
|
cache & | operator= (cache &&ref)=delete |
|
void | change_to_read_write () |
|
virtual bool | skippable (skippability direction, const infinint &amount) override |
| whether the implementation is able to skip More...
|
|
virtual bool | skip (const infinint &pos) override |
| skip at the absolute position More...
|
|
virtual bool | skip_to_eof () override |
| skip to the end of file
|
|
virtual bool | skip_relative (S_I x) override |
| skip relatively to the current position
|
|
virtual bool | truncatable (const infinint &pos) const override |
| whether the implementation is able to truncate to the given position
|
|
virtual infinint | get_position () const override |
| get the current read/write position
|
|
| generic_file (gf_mode m) |
| main constructor
|
|
| generic_file (const generic_file &ref) |
| copy constructor
|
|
| generic_file (generic_file &&ref) noexcept |
| move constructor
|
|
generic_file & | operator= (const generic_file &ref) |
| assignment operator
|
|
generic_file & | operator= (generic_file &&ref) noexcept |
| move operator
|
|
| ~generic_file () noexcept(false) |
| virtual destructor, More...
|
|
void | terminate () |
| destructor-like call, except that it is allowed to throw exceptions
|
|
bool | operator== (generic_file &ref) |
|
bool | operator!= (generic_file &ref) |
|
gf_mode | get_mode () const |
| retreive the openning mode for this object
|
|
void | read_ahead (const infinint &amount) |
|
void | ignore_read_ahead (bool mode) |
|
virtual U_I | read (char *a, U_I size) override |
| read data from the generic_file inherited from proto_generic_file
|
|
virtual void | write (const char *a, U_I size) override |
| write data to the generic_file inherited from proto_generic_file
|
|
void | write (const std::string &arg) |
| write a string to the generic_file More...
|
|
S_I | read_back (char &a) |
| skip back one char, read on char and skip back one char
|
|
S_I | read_forward (char &a) |
| read one char
|
|
virtual void | truncate (const infinint &pos) |
| truncate file at the given offset More...
|
|
virtual void | copy_to (generic_file &ref) |
| copy all data from current position to the object in argument
|
|
virtual void | copy_to (generic_file &ref, const infinint &crc_size, crc *&value) |
| copy all data from the current position to the object in argument and computes a CRC value of the transmitted data More...
|
|
U_32 | copy_to (generic_file &ref, U_32 size) |
| small copy (up to 4GB) with CRC calculation
|
|
infinint | copy_to (generic_file &ref, infinint size) |
| copy the given amount to the object in argument
|
|
bool | diff (generic_file &f, const infinint &me_read_ahead, const infinint &you_read_ahead, const infinint &crc_size, crc *&value) |
| compares the contents with the object in argument More...
|
|
bool | diff (generic_file &f, const infinint &me_read_ahead, const infinint &you_read_ahead, const infinint &crc_size, crc *&value, infinint &err_offset) |
|
void | reset_crc (const infinint &width) |
| reset CRC on read or writen data More...
|
|
bool | crc_status () const |
| to known whether CRC calculation is activated or not
|
|
crc * | get_crc () |
| get CRC of the transfered date since last reset More...
|
|
void | sync_write () |
| write any pending data
|
|
void | flush_read () |
| be ready to read at current position, reseting all pending data for reading, cached and in compression engine for example
|
|
| proto_generic_file (const proto_generic_file &ref)=default |
| copy constructor
|
|
| proto_generic_file (proto_generic_file &&ref) noexcept=default |
| move constructor
|
|
proto_generic_file & | operator= (const proto_generic_file &ref)=default |
| assignment operator
|
|
proto_generic_file & | operator= (proto_generic_file &&ref) noexcept=default |
| move operator
|
|
virtual | ~proto_generic_file () noexcept(false) |
| virtual destructor More...
|
|
the cache class implements a fixed length read/write caching mechanism
it is intended to reduce context switches when no compression is used and when reading or writing catalogue through a pipe. The catalogue read and write is done by calling dump/constructor methods of the many objects that a catalogue contains. This makes a lot of small reads or writes, which make very poor performances when used over the network through a pipe to ssh. When compression is used, the problem disapears as the compression engine gather these many small reads or writes into much bigger ones. This in only when there is no compression or encryption that this class is useful (and used). Another target of class cache is to provide limited skippability when data is read of written to pipe (which do not have any skippability)
Definition at line 52 of file cache.hpp.