Disk ARchive
2.7.15
Full featured and portable backup and archiving tool
|
pipe implementation under the generic_file interface. More...
#include <tuyau.hpp>
Public Member Functions | |
tuyau (const std::shared_ptr< user_interaction > &dialog, int fd) | |
tuyau (const std::shared_ptr< user_interaction > &dialog, int fd, gf_mode mode) | |
tuyau (const std::shared_ptr< user_interaction > &dialog, const std::string &filename, gf_mode mode) | |
tuyau (const std::shared_ptr< user_interaction > &dialog) | |
creates a anonymous pipe and bind itself to the writing end. The reading end can be obtained by get_read_side() method | |
tuyau (const tuyau &ref)=default | |
tuyau (tuyau &&ref) noexcept=default | |
tuyau & | operator= (const tuyau &ref)=default |
tuyau & | operator= (tuyau &&ref) noexcept=default |
int | get_read_fd () const |
void | close_read_fd () |
closes the read fd of the anonymous pipe (this is to be used by a writer) More... | |
void | do_not_close_read_fd () |
ask to not close the read descriptor upon object destruction (the fd survives the object) | |
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 (signed int x) override |
virtual bool | truncatable (const infinint &pos) const override |
whether the implementation is able to truncate to the given position | |
virtual infinint | get_position () const override |
get the current read/write position | |
bool | has_next_to_read () |
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 bool | skip_relative (S_I x)=0 |
skip relatively to the current position | |
virtual void | truncate (const infinint &pos) |
truncate file at the given offset More... | |
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... | |
Public Member Functions inherited from libdar::thread_cancellation | |
thread_cancellation () | |
the constructor | |
thread_cancellation (const thread_cancellation &ref)=default | |
copy constructor | |
thread_cancellation (thread_cancellation &&ref) noexcept=default | |
move constructor | |
thread_cancellation & | operator= (const thread_cancellation &ref)=default |
assignment operator | |
thread_cancellation & | operator= (thread_cancellation &&ref) noexcept=default |
move operator | |
virtual | ~thread_cancellation () noexcept(false) |
the destructor | |
void | check_self_cancellation () const |
Checkpoint test : whether the current libdar call must abort or not. More... | |
void | block_delayed_cancellation (bool mode) |
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_truncate (const infinint &pos) override |
truncate file at the give offset More... | |
virtual void | inherited_sync_write () override |
write down any pending data 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 |
Protected Member Functions inherited from libdar::mem_ui | |
user_interaction & | get_ui () const |
get access to the user_interaction object More... | |
std::shared_ptr< user_interaction > | get_pointer () const |
get access to the shared_ptr pointing to the user_interaction | |
mem_ui (const std::shared_ptr< user_interaction > &dialog) | |
constructor More... | |
mem_ui (const mem_ui &ref)=default | |
the copy constructor More... | |
mem_ui (mem_ui &&ref) noexcept=default | |
the move constructor | |
mem_ui & | operator= (const mem_ui &ref)=default |
assignement operator More... | |
mem_ui & | operator= (mem_ui &&ref) noexcept=default |
move operator | |
virtual | ~mem_ui () noexcept(false) |
destructor More... | |
Private Types | |
enum | { pipe_fd , pipe_path , pipe_both } |
Private Member Functions | |
void | ouverture () |
bool | read_and_drop (infinint byte) |
skip forward by reading data More... | |
bool | read_to_eof () |
skip to eof by reading data | |
Private Attributes | |
enum libdar::tuyau:: { ... } | pipe_mode |
defines how the object's status (which possible values defined by the anonymous enum above) | |
infinint | position |
recorded position in the stream | |
int | filedesc |
file descriptors of the pipe | |
int | other_end_fd |
in pipe_both mode, this holds the reading side of the anonymous pipe | |
std::string | chemin |
in pipe_path mode only, this holds the named pipe to be open | |
bool | has_one_to_read |
if true, the next char to read is placed in "next_to_read" | |
char | next_to_read |
when has_one_to_read is true, contains the next to read byte | |
Additional Inherited Members | |
Public Types inherited from libdar::generic_file | |
enum | skippability { skip_backward , skip_forward } |
Static Public Member Functions inherited from libdar::thread_cancellation | |
static U_I | count () |
method for debugging/control purposes | |
pipe implementation under the generic_file interface.
|
private |
libdar::tuyau::tuyau | ( | const std::shared_ptr< user_interaction > & | dialog, |
int | fd | ||
) |
dialog | for user interaction |
fd | fd is the filedescriptor of a pipe extremity already openned |
libdar::tuyau::tuyau | ( | const std::shared_ptr< user_interaction > & | dialog, |
int | fd, | ||
gf_mode | mode | ||
) |
dialog | for user interaction |
fd | fd is the filedescriptor of a pipe extremity already openned |
mode | forces the mode if possible |
libdar::tuyau::tuyau | ( | const std::shared_ptr< user_interaction > & | dialog, |
const std::string & | filename, | ||
gf_mode | mode | ||
) |
dialog | for user interaction |
filename | named pipe to open |
mode | forces the mode if possible |
void libdar::tuyau::close_read_fd | ( | ) |
closes the read fd of the anonymous pipe (this is to be used by a writer)
int libdar::tuyau::get_read_fd | ( | ) | const |
provides the reading end of the anonymous pipe when the current object has created it (no filedesc, no path given to constructor).
|
inlineoverrideprotectedvirtual |
reset internal engine, flush caches in order to read the data at current position
Implements libdar::generic_file.
|
overrideprotectedvirtual |
implementation of read() operation
[in,out] | a | where to put the data to read |
[in] | size | says how much data to read |
Implements libdar::generic_file.
|
inlineoverrideprotectedvirtual |
tells the object that several calls to read() will follow to probably obtain at least the given amount of data
[in] | amount | is the maximum expected amount of data that is known to be read |
Implements libdar::generic_file.
|
inlineoverrideprotectedvirtual |
write down any pending data
Implements libdar::generic_file.
|
overrideprotectedvirtual |
destructor-like call, except that it is allowed to throw exceptions
Implements libdar::generic_file.
|
inlineoverrideprotectedvirtual |
truncate file at the give offset
Implements libdar::generic_file.
Definition at line 98 of file tuyau.hpp.
References position.
|
overrideprotectedvirtual |
implementation of the write() operation
[in] | a | what data to write |
[in] | size | amount of data to write |
Implements libdar::generic_file.
|
private |
skip forward by reading data
[in] | byte | is the amount of byte to skip forward |
|
overridevirtual |
skip at the absolute position
[in] | pos | the offset in byte where next read/write operation must start |
Implements libdar::generic_file.
|
overridevirtual |
whether the implementation is able to skip
Implements libdar::generic_file.