Disk ARchive
2.4.8
|
this is the interface class from which all other data transfer classes inherit More...
#include <generic_file.hpp>
Inherited by hide_file, libdar::cache, libdar::compressor, libdar::escape, libdar::fichier, libdar::memory_file, libdar::null_file, libdar::pile, libdar::sar, libdar::scrambler, libdar::string_file, libdar::trivial_sar, libdar::tronc, libdar::tronconneuse, libdar::tuyau, and libdar::zapette.
Public Member Functions | |
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 bool | skip (const infinint &pos)=0 |
skip at the absolute position More... | |
virtual bool | skip_to_eof ()=0 |
skip to the end of file | |
virtual bool | skip_relative (S_I x)=0 |
skip relatively to the current position | |
virtual infinint | get_position ()=0 |
get the current read/write position | |
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... | |
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 | |
Protected Member Functions | |
void | set_mode (gf_mode x) |
virtual U_I | inherited_read (char *a, U_I size)=0 |
implementation of read() operation More... | |
virtual void | inherited_write (const char *a, U_I size)=0 |
implementation of the write() operation More... | |
virtual void | inherited_sync_write ()=0 |
write down any pending data More... | |
virtual void | inherited_terminate ()=0 |
destructor-like call, except that it is allowed to throw exceptions More... | |
bool | is_terminated () const |
this is the interface class from which all other data transfer classes inherit
it provides mainly read and write operations, skip operations and few other functions.
Definition at line 101 of file generic_file.hpp.
|
virtual |
copy all data from the current position to the object in argument and computes a CRC value of the transmitted data
[in] | ref | defines where to copy the data to |
[in] | crc_size | tell the width of the crc to compute on the copied data |
[out] | value | points to a newly allocated crc object containing the crc value |
bool libdar::generic_file::diff | ( | generic_file & | f, |
const infinint & | crc_size, | ||
crc *& | value | ||
) |
compares the contents with the object in argument
[in] | f | is the file to compare the current object with |
[in] | crc_size | is the width of the CRC to use for calculation |
[out] | value | is the computed checksum, its value can be used for additional testing if this method returns false (no difference between files). The given checksum has to be set to the expected width by the caller. |
crc* libdar::generic_file::get_crc | ( | ) |
get CRC of the transfered date since last reset
|
protectedpure virtual |
implementation of read() operation
[in,out] | a | where to put the data to read |
[in] | size | says how much data to read |
Implemented in libdar::trivial_sar, libdar::sar, libdar::compressor, libdar::tuyau, libdar::tronc, libdar::zapette, libdar::cache, libdar::null_file, libdar::scrambler, and libdar::string_file.
|
protectedpure virtual |
write down any pending data
Implemented in libdar::trivial_sar, libdar::sar, libdar::compressor, libdar::tuyau, libdar::tronc, libdar::zapette, libdar::cache, libdar::null_file, libdar::scrambler, and libdar::string_file.
|
protectedpure virtual |
destructor-like call, except that it is allowed to throw exceptions
Implemented in libdar::trivial_sar, libdar::sar, libdar::compressor, libdar::tuyau, libdar::tronc, libdar::null_file, libdar::zapette, libdar::cache, libdar::scrambler, and libdar::string_file.
|
protectedpure virtual |
implementation of the write() operation
[in] | a | what data to write |
[in] | size | amount of data to write |
Implemented in libdar::trivial_sar, libdar::sar, libdar::compressor, libdar::tuyau, libdar::tronc, libdar::zapette, libdar::cache, libdar::null_file, libdar::scrambler, and libdar::string_file.
|
inlineprotected |
is some specific call (skip() & Co.) need to be forbidden when the object has been terminated, one can use this call to check the terminated status
Definition at line 250 of file generic_file.hpp.
Referenced by libdar::zapette::get_position(), libdar::tronconneuse::get_position(), libdar::trivial_sar::skip(), libdar::zapette::skip_to_eof(), libdar::trivial_sar::skip_to_eof(), and libdar::tronconneuse::write_end_of_file().
U_I libdar::generic_file::read | ( | char * | a, |
U_I | size | ||
) |
read data from the generic_file
[in,out] | a | is where to put the data to read |
[in] | size | is how much data to read |
Referenced by read_forward().
void libdar::generic_file::reset_crc | ( | const infinint & | width | ) |
reset CRC on read or writen data
[in] | width | is the width to use for the CRC |
|
pure virtual |
skip at the absolute position
[in] | pos | the offset in byte where next read/write operation must start |
Implemented in libdar::trivial_sar, libdar::sar, libdar::compressor, libdar::tronconneuse, libdar::tuyau, libdar::cache, libdar::tronc, libdar::zapette, libdar::null_file, libdar::scrambler, and libdar::string_file.
Referenced by libdar::compressor::skip(), and libdar::trivial_sar::skip().
void libdar::generic_file::terminate | ( | ) | const |
virtual destructor, this let inherited destructor to be called even from a generic_file pointer to an inherited class
destructor-like call, except that it is allowed to throw exceptions
Referenced by libdar::tronc::inherited_terminate().
void libdar::generic_file::write | ( | const char * | a, |
U_I | size | ||
) |
write data to the generic_file
Referenced by libdar::trivial_sar::inherited_write().
void libdar::generic_file::write | ( | const std::string & | arg | ) |
write a string to the generic_file