| Disk ARchive 2.6.12 Full featured and portable backup and archiving tool

Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
libdar::generic_thread Class Reference
Private

let a generic_file be managed by another thread More...

`#include <generic_thread.hpp>`

Inherits libdar::generic_file.

## Public Member Functions
| generic_thread (generic_file *ptr, U_I data_block_size=tampon_block_size, U_I data_num_block=tampon_num_block, U_I ctrl_block_size=tampon_block_size_ctrl, U_I ctrl_num_block=tampon_num_block_ctrl)
| constructor More...
| generic_thread (const generic_thread &ref)=delete
| generic_thread (generic_thread &&ref) noexcept=delete
generic_thread & | operator= (const generic_thread &ref)=delete
generic_thread & | operator= (generic_thread &&ref) noexcept=delete
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 infinint | get_position () const override
| get the current read/write position
Public Member Functions inherited from libdar::generic_file
| 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 | 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
Public Member Functions inherited from libdar::proto_generic_file
| 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...

## Static Public Attributes
static constexpr unsigned int | tampon_block_size = 102401
static constexpr unsigned int | tampon_num_block = 1000
static constexpr unsigned int | tampon_block_size_ctrl = 1024
static constexpr unsigned int | tampon_num_block_ctrl = 10

## Protected Member Functions
virtual void | inherited_read_ahead (const infinint &amount) override
| tells the object that several calls to read() will follow to probably obtain at least the given amount of data More...
virtual U_I | inherited_read (char *a, U_I size) override
| implementation of read() operation More...
virtual void | inherited_write (const char *a, U_I size) override
| implementation of the write() operation More...
virtual void | inherited_sync_write () override
| generic_file inherited method to sync all pending writes More...
virtual void | inherited_flush_read () override
| reset internal engine, flush caches in order to read the data at current position More...
virtual void | inherited_terminate () override
| destructor-like call, except that it is allowed to throw exceptions More...
Protected Member Functions inherited from libdar::generic_file
void | set_mode (gf_mode x)
bool | is_terminated () const

## Private Member Functions
void | send_order ()
void | read_answer ()
void | check_answer (msg_type expected)
void | wake_up_slave_if_asked ()
| check whether an order to wakeup the slave has been received, and send wake up the slave
void | release_block_answer ()
void | release_data_ptr ()
void | purge_data_pipe ()
| drops all data in the toslave_data pipe
void | my_run ()
void | my_join ()

## Private Attributes
libthreadar::fast_tampon< char > | toslave_data
libthreadar::fast_tampon< char > | tomaster_data
libthreadar::fast_tampon< char > | toslave_ctrl
libthreadar::fast_tampon< char > | tomaster_ctrl
slave_thread * | remote
bool | reached_eof
| whether we reached end of file
char | data_header
| contains 1 byte header for data
char | data_header_eof
| contains 1 byte header for data + eof
bool | running
| whether a remote is expected to run, tid is then set
pthread_t | tid
| thread id of remote
messaging_encode | order
messaging_decode | answer
unsigned int | num
char * | ptr
label | dataname

## Additional Inherited Members
Public Types inherited from libdar::generic_file
enum | skippability { skip_backward, skip_forward }

## Detailed Description

let a generic_file be managed by another thread

Definition at line 44 of file generic_thread.hpp.

The documentation for this class was generated from the following file:

- generic_thread.hpp