Disk ARchive
2.4.2
|
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 | |
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 | |
void | write (const char *a, U_I size) |
write data to the generic_file | |
void | write (const std::string &arg) |
write a string to the generic_file | |
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 | |
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, crc &value) |
copy all data from the current position to the object in argument and computes a CRC value of the transmitted data | |
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, crc &value) |
compares the contents with the object in argument | |
void | reset_crc (const infinint &width) |
reset CRC on read or writen data | |
bool | crc_status () const |
to known whether CRC calculation is activated or not | |
void | get_crc (crc &val) |
get CRC of the transfered date since last reset | |
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 | |
virtual void | inherited_write (const char *a, U_I size)=0 |
implementation of the write() operation | |
virtual void | inherited_sync_write ()=0 |
write down any pending data | |
virtual void | inherited_terminate ()=0 |
destructor-like call, except that it is allowed to throw exceptions | |
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 104 of file generic_file.hpp.
bool libdar::generic_file::diff | ( | generic_file & | f, |
crc & | value | ||
) |
compares the contents with the object in argument
[in] | f | is the file to compare the current object with |
[in,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. |
|
inline |
get CRC of the transfered date since last reset
Definition at line 201 of file generic_file.hpp.
|
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::zapette, libdar::cache, libdar::null_file, 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 245 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::tronc, libdar::cache, 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