|
| cache (generic_file &hidden, bool shift_mode, U_I initial_size=10240, U_I max_size=10485760, U_I unused_read_ratio=10, U_I observation_read_number=100, U_I max_size_hit_read_ratio=50, U_I unused_write_ratio=10, U_I observation_write_number=100, U_I max_size_hit_write_ratio=50) |
|
| cache (const cache &ref) |
|
const cache & | operator= (const cache &ref) |
|
bool | skip (const infinint &pos) |
| skip at the absolute position More...
|
|
bool | skip_to_eof () |
| skip to the end of file
|
|
bool | skip_relative (S_I x) |
| skip relatively to the current position
|
|
infinint | get_position () |
| get the current read/write position
|
|
| generic_file (gf_mode m) |
| main constructor
|
|
| generic_file (const generic_file &ref) |
| copy constructor
|
|
void | terminate () const |
| virtual destructor, this let inherited destructor to be called even from a generic_file pointer to an inherited class More...
|
|
const generic_file & | operator= (const generic_file &ref) |
| assignment operator
|
|
gf_mode | get_mode () const |
| retreive the openning mode for this object
|
|
U_I | read (char *a, U_I size) |
| read data from the generic_file More...
|
|
void | write (const char *a, U_I size) |
| write data to the generic_file More...
|
|
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 | 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 &crc_size, crc *&value) |
| compares the contents with the object in argument More...
|
|
bool | diff (generic_file &f, 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
|
|
the cache class implements a very basic 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 can contain. This makes a lot of small read or write, 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 read or write into much bigger ones. This in only when there is no compression that that this class is useful (and used).
Definition at line 50 of file cache.hpp.