47 #ifndef GENERIC_FILE_HPP
48 #define GENERIC_FILE_HPP
51 #include "../my_config.h"
85 extern gf_mode generic_file_get_mode(S_I fd);
86 extern const char * generic_file_get_name(
gf_mode mode);
131 U_I
read(
char *a, U_I size);
136 void write(
const char *a, U_I size);
141 void write(
const std::string & arg);
199 bool crc_status()
const {
return active_read == &generic_file::read_crc; };
212 void set_mode(
gf_mode x) { rw = x; };
257 void (
generic_file::* active_write)(
const char *a, U_I size);
259 void enable_crc(
bool mode);
261 U_I read_crc(
char *a, U_I size);
262 void write_crc(
const char *a, U_I size);
267 #define CONTEXT_INIT "init"
268 #define CONTEXT_OP "operation"
269 #define CONTEXT_LAST_SLICE "last_slice"
293 contextual() { status =
""; };
294 virtual ~contextual() {};
296 virtual void set_info_status(
const std::string & s) { status = s; };
297 virtual std::string get_info_status()
const {
return status; };
298 virtual bool is_an_old_start_end_archive()
const = 0;
300 virtual const label & get_data_name()
const = 0;
virtual void inherited_write(const char *a, U_I size)=0
implementation of the write() operation
class mem_ui definition. This class is to be used as parent class to handle user_interaction object m...
are defined here basic integer types that tend to be portable
class crc definition, used to handle Cyclic Redundancy Checks
bool diff(generic_file &f, const infinint &crc_size, crc *&value)
compares the contents with the object in argument
generic_file(const generic_file &ref)
copy constructor
define the datastructure "label" used to identify slice membership to an archive
virtual bool skip(const infinint &pos)=0
skip at the absolute position
U_I read(char *a, U_I size)
read data from the generic_file
gf_mode
generic_file openning modes
S_I read_back(char &a)
skip back one char, read on char and skip back one char
virtual bool skip_relative(S_I x)=0
skip relatively to the current position
bool is_terminated() const
crc * get_crc()
get CRC of the transfered date since last reset
virtual void inherited_sync_write()=0
write down any pending data
void terminate() const
virtual destructor, this let inherited destructor to be called even from a generic_file pointer to an...
defines the interaction between libdar and the user.Three classes are defined
here is the definition of the path classthe path class handle path and provide several operation on t...
to be able to cancel libdar operation while running in a given thread.the class thread_cancellation i...
generic_file(gf_mode m)
main constructor
const generic_file & operator=(const generic_file &ref)
assignment operator
virtual void inherited_terminate()=0
destructor-like call, except that it is allowed to throw exceptions
gf_mode get_mode() const
retreive the openning mode for this object
switch module to limitint (32 ou 64 bits integers) or infinint
virtual U_I inherited_read(char *a, U_I size)=0
implementation of read() operation
bool crc_status() const
to known whether CRC calculation is activated or not
this is the interface class from which all other data transfer classes inherit
void write(const char *a, U_I size)
write data to the generic_file
virtual void copy_to(generic_file &ref)
copy all data from current position to the object in argument
void sync_write()
write any pending data
void reset_crc(const infinint &width)
reset CRC on read or writen data
the arbitrary large positive integer class
virtual bool skip_to_eof()=0
skip to the end of file
virtual infinint get_position()=0
get the current read/write position
S_I read_forward(char &a)
read one char