![]() |
Disk ARchive 2.7.14
Full featured and portable backup and archiving tool
|
pipe implementation under the generic_file interface. More...
#include <tuyau.hpp>
Inherits libdar::generic_file, libdar::thread_cancellation, libdar::mem_ui, libdar::generic_file, libdar::thread_cancellation, and libdar::mem_ui.
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) | |
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 | |
virtual bool | skip (const infinint &pos) override |
skip at the absolute position | |
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 () |
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) | |
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 | |
virtual bool | skip (const infinint &pos) override |
skip at the absolute position | |
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 () |
![]() | |
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, | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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, | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
![]() | |
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 | |
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 | |
![]() | |
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. | |
void | block_delayed_cancellation (bool mode) |
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. | |
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 | |
virtual U_I | inherited_read (char *a, U_I size) override |
implementation of read() operation | |
virtual void | inherited_write (const char *a, U_I size) override |
implementation of the write() operation | |
virtual void | inherited_truncate (const infinint &pos) override |
truncate file at the give offset | |
virtual void | inherited_sync_write () override |
write down any pending data | |
virtual void | inherited_flush_read () override |
reset internal engine, flush caches in order to read the data at current position | |
virtual void | inherited_terminate () override |
destructor-like call, except that it is allowed to throw exceptions | |
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 | |
virtual U_I | inherited_read (char *a, U_I size) override |
implementation of read() operation | |
virtual void | inherited_write (const char *a, U_I size) override |
implementation of the write() operation | |
virtual void | inherited_truncate (const infinint &pos) override |
truncate file at the give offset | |
virtual void | inherited_sync_write () override |
write down any pending data | |
virtual void | inherited_flush_read () override |
reset internal engine, flush caches in order to read the data at current position | |
virtual void | inherited_terminate () override |
destructor-like call, except that it is allowed to throw exceptions | |
![]() | |
void | set_mode (gf_mode x) |
bool | is_terminated () const |
void | set_mode (gf_mode x) |
bool | is_terminated () const |
![]() | |
user_interaction & | get_ui () const |
get access to the user_interaction object | |
std::shared_ptr< user_interaction > | get_pointer () const |
get access to the shared_ptr pointing to the user_interaction | |
user_interaction & | get_ui () const |
get access to the user_interaction object | |
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 | |
mem_ui (const mem_ui &ref)=default | |
the copy constructor | |
mem_ui (mem_ui &&ref) noexcept=default | |
the move constructor | |
mem_ui & | operator= (const mem_ui &ref)=default |
assignement operator | |
mem_ui & | operator= (mem_ui &&ref) noexcept=default |
move operator | |
virtual | ~mem_ui () noexcept(false) |
destructor | |
mem_ui (const std::shared_ptr< user_interaction > &dialog) | |
constructor | |
mem_ui (const mem_ui &ref)=default | |
the copy constructor | |
mem_ui (mem_ui &&ref) noexcept=default | |
the move constructor | |
mem_ui & | operator= (const mem_ui &ref)=default |
assignement operator | |
mem_ui & | operator= (mem_ui &&ref) noexcept=default |
move operator | |
virtual | ~mem_ui () noexcept(false) |
destructor | |
Private Types | |
enum | { pipe_fd , pipe_path , pipe_both } |
enum | { pipe_fd , pipe_path , pipe_both } |
Private Member Functions | |
void | ouverture () |
bool | read_and_drop (infinint byte) |
skip forward by reading data | |
bool | read_to_eof () |
skip to eof by reading data | |
void | ouverture () |
bool | read_and_drop (infinint byte) |
skip forward by reading data | |
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 | |
enum libdar::tuyau:: { ... } | pipe_mode |
defines how the object's status (which possible values defined by the anonymous enum above) | |
Additional Inherited Members | |
![]() | |
enum | skippability { skip_backward , skip_forward , skip_backward , skip_forward } |
enum | skippability { skip_backward , skip_forward , skip_backward , skip_forward } |
![]() | |
static U_I | count () |
method for debugging/control purposes | |
static U_I | count () |
method for debugging/control purposes | |
pipe implementation under the generic_file interface.
Definition at line 48 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
Enumerator | |
---|---|
pipe_fd | holds a single file descriptor for the pipe |
pipe_path | holds a filename to be openned (named pipe) |
pipe_both | holds a pair of file descriptors |
Definition at line 104 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
Enumerator | |
---|---|
pipe_fd | holds a single file descriptor for the pipe |
pipe_path | holds a filename to be openned (named pipe) |
pipe_both | holds a pair of file descriptors |
Definition at line 104 of file src/libdar/tuyau.hpp.
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 |
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)
void libdar::tuyau::close_read_fd | ( | ) |
closes the read fd of the anonymous pipe (this is to be used by a writer)
get the current read/write position
Implements libdar::generic_file.
Definition at line 90 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
References position.
get the current read/write position
Implements libdar::generic_file.
Definition at line 90 of file src/libdar/tuyau.hpp.
References position.
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).
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).
reset internal engine, flush caches in order to read the data at current position
Implements libdar::generic_file.
Definition at line 100 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
reset internal engine, flush caches in order to read the data at current position
Implements libdar::generic_file.
Definition at line 100 of file src/libdar/tuyau.hpp.
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.
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.
Definition at line 95 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
|
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.
Definition at line 95 of file src/libdar/tuyau.hpp.
write down any pending data
Implements libdar::generic_file.
Definition at line 99 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
write down any pending data
Implements libdar::generic_file.
Definition at line 99 of file src/libdar/tuyau.hpp.
destructor-like call, except that it is allowed to throw exceptions
Implements libdar::generic_file.
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 dar64-2.7.14-win64/include/dar/tuyau.hpp.
References position.
|
inlineoverrideprotectedvirtual |
truncate file at the give offset
Implements libdar::generic_file.
Definition at line 98 of file src/libdar/tuyau.hpp.
References position.
implementation of the write() operation
[in] | a | what data to write |
[in] | size | amount of data to write |
Implements libdar::generic_file.
implementation of the write() operation
[in] | a | what data to write |
[in] | size | amount of data to write |
Implements libdar::generic_file.
skip forward by reading data
[in] | byte | is the amount of byte to skip forward |
skip forward by reading data
[in] | byte | is the amount of byte to skip forward |
skip at the absolute position
[in] | pos | the offset in byte where next read/write operation must start |
Implements libdar::generic_file.
skip at the absolute position
[in] | pos | the offset in byte where next read/write operation must start |
Implements libdar::generic_file.
skip to the end of file
Implements libdar::generic_file.
skip to the end of file
Implements libdar::generic_file.
|
overridevirtual |
whether the implementation is able to skip
Implements libdar::generic_file.
|
overridevirtual |
whether the implementation is able to skip
Implements libdar::generic_file.
whether the implementation is able to truncate to the given position
Implements libdar::generic_file.
Definition at line 89 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
References position.
whether the implementation is able to truncate to the given position
Implements libdar::generic_file.
Definition at line 89 of file src/libdar/tuyau.hpp.
References position.
|
private |
in pipe_path mode only, this holds the named pipe to be open
Definition at line 113 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
|
private |
file descriptors of the pipe
Definition at line 111 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
|
private |
if true, the next char to read is placed in "next_to_read"
Definition at line 114 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
|
private |
when has_one_to_read is true, contains the next to read byte
Definition at line 115 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
|
private |
in pipe_both mode, this holds the reading side of the anonymous pipe
Definition at line 112 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
|
private |
recorded position in the stream
Definition at line 110 of file dar64-2.7.14-win64/include/dar/tuyau.hpp.
Referenced by get_position(), inherited_truncate(), and truncatable().