![]()  | 
  
    Disk ARchive 2.8.1
    
   Full featured and portable backup and archiving tool 
   | 
 
the tuyau_global provides skip()/get_position() features on top of pipe-like object More...
#include <tuyau_global.hpp>
 Inheritance diagram for libdar::tuyau_global:
 Collaboration diagram for libdar::tuyau_global:Public Member Functions | |
| tuyau_global (const std::shared_ptr< user_interaction > &dialog, fichier_global *x_ptr) | |
| constructor  More... | |
| tuyau_global (tuyau_global &ref)=delete | |
| copy constructor  | |
| tuyau_global (tuyau_global &&ref)=delete | |
| move constructor  | |
| tuyau_global & | operator= (const tuyau_global &ref)=delete | 
| assignment operator  | |
| tuyau_global & | operator= (tuyau_global &&ref)=delete | 
| move assignment operator  | |
| ~tuyau_global () | |
| destructor  More... | |
| virtual void | change_ownership (const std::string &user, const std::string &group) override | 
| set the ownership of the file  More... | |
| virtual void | change_permission (U_I perm) override | 
| change the permission of the file  More... | |
| virtual infinint | get_size () const override | 
| return the size of the file  More... | |
| virtual void | fadvise (advise adv) const override | 
| set posix_fadvise for the whole file  More... | |
| 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  More... | |
| virtual bool | skip_relative (S_I x) override | 
| skip relatively to the current position  More... | |
| virtual bool | truncatable (const infinint &pos) const override | 
| whether the implementation is able to truncate to the given position  More... | |
| virtual infinint | get_position () const override | 
| get the current read/write position  More... | |
  Public Member Functions inherited from libdar::fichier_global | |
| fichier_global (const std::shared_ptr< user_interaction > &dialog, gf_mode mode) | |
| constructor  More... | |
| fichier_global (const fichier_global &ref)=default | |
| copy constructor  | |
| fichier_global (fichier_global &&ref) noexcept=default | |
| move constructor  | |
| fichier_global & | operator= (const fichier_global &ref)=default | 
| assignment operator  | |
| fichier_global & | operator= (fichier_global &&ref) noexcept=default | 
| move operator  | |
| virtual void | change_ownership (const std::string &user, const std::string &group)=0 | 
| set the ownership of the file  More... | |
| virtual void | change_permission (U_I perm)=0 | 
| change the permission of the file  More... | |
| virtual infinint | get_size () const =0 | 
| return the size of the file  More... | |
| virtual void | fadvise (advise adv) const =0 | 
| set posix_fadvise for the whole file  More... | |
  Public Member Functions inherited from libdar::generic_file | |
| generic_file (gf_mode m) | |
| main constructor  More... | |
| generic_file (const generic_file &ref) | |
| copy constructor  More... | |
| generic_file (generic_file &&ref) noexcept | |
| move constructor  More... | |
| generic_file & | operator= (const generic_file &ref) | 
| assignment operator  More... | |
| generic_file & | operator= (generic_file &&ref) noexcept | 
| move operator  More... | |
| ~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  More... | |
| 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  More... | |
| virtual void | write (const char *a, U_I size) override | 
| write data to the generic_file inherited from proto_generic_file  More... | |
| 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  More... | |
| virtual bool | skippable (skippability direction, const infinint &amount)=0 | 
| whether the implementation is able to skip  More... | |
| virtual bool | skip (const infinint &pos)=0 | 
| skip at the absolute position  More... | |
| virtual bool | skip_to_eof ()=0 | 
| skip to the end of file  More... | |
| virtual bool | skip_relative (S_I x)=0 | 
| skip relatively to the current position  More... | |
| virtual bool | truncatable (const infinint &pos) const =0 | 
| whether the implementation is able to truncate to the given position  More... | |
| virtual void | truncate (const infinint &pos) | 
| truncate file at the given offset  More... | |
| virtual infinint | get_position () const =0 | 
| get the current read/write position  More... | |
| virtual void | copy_to (generic_file &ref) | 
| copy all data from current position to the object in argument  More... | |
| 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  More... | |
| 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... | |
| virtual U_I | read (char *a, U_I size)=0 | 
| read data from the proto_generic_file  More... | |
| virtual void | write (const char *a, U_I size)=0 | 
| write data to the proto_generic_file  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... | |
| bool | self_is_under_cancellation () const | 
| get the current thread status  More... | |
| void | block_delayed_cancellation (bool mode) | 
  Public Member Functions inherited from libdar::mem_ui | |
| 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... | |
Protected Member Functions | |
| virtual U_I | fichier_global_inherited_write (const char *a, U_I size) override | 
| replaces generic_file::inherited_write() method, to allow the return of partial writings  More... | |
| virtual bool | fichier_global_inherited_read (char *a, U_I size, U_I &read, std::string &message) override | 
| replaces generic_file::inherited_read() method, to allow the return of partial reading  More... | |
| 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 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... | |
| virtual U_I | fichier_global_inherited_write (const char *a, U_I size)=0 | 
| replaces generic_file::inherited_write() method, to allow the return of partial writings  More... | |
| virtual bool | fichier_global_inherited_read (char *a, U_I size, U_I &read, std::string &message)=0 | 
| replaces generic_file::inherited_read() method, to allow the return of partial reading  More... | |
  Protected Member Functions inherited from libdar::generic_file | |
| void | set_mode (gf_mode x) | 
| virtual void | inherited_read_ahead (const infinint &amount)=0 | 
| 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)=0 | 
| implementation of read() operation  More... | |
| virtual void | inherited_write (const char *a, U_I size)=0 | 
| implementation of the write() operation  More... | |
| virtual void | inherited_truncate (const infinint &pos)=0 | 
| truncate file at the give offset  More... | |
| virtual void | inherited_sync_write ()=0 | 
| write down any pending data  More... | |
| virtual void | inherited_flush_read ()=0 | 
| reset internal engine, flush caches in order to read the data at current position  More... | |
| virtual void | inherited_terminate ()=0 | 
| destructor-like call, except that it is allowed to throw exceptions  More... | |
| 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  More... | |
| void | change_ui (const std::shared_ptr< user_interaction > &new_dialog) | 
| change the user_interaction object  More... | |
Private Member Functions | |
| void | detruit () | 
| U_I | read_and_drop (U_I bytes) | 
Private Attributes | |
| fichier_global * | ptr | 
| points to the underlying object  More... | |
| infinint | current_pos | 
| record the current offset  More... | |
| char | buffer [buffer_size] | 
| to skip emulation done by reading data  More... | |
Static Private Attributes | |
| static const U_I | buffer_size = 102400 | 
Additional Inherited Members | |
  Public Types inherited from libdar::fichier_global | |
| enum | advise {  advise_normal , advise_sequential , advise_random , advise_noreuse , advise_willneed , advise_dontneed }  | 
  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  More... | |
the tuyau_global provides skip()/get_position() features on top of pipe-like object
Definition at line 50 of file tuyau_global.hpp.
| libdar::tuyau_global::tuyau_global | ( | const std::shared_ptr< user_interaction > & | dialog, | 
| fichier_global * | x_ptr | ||
| ) | 
constructor
| [in] | dialog | for user interaction requested by fichier_global | 
| [in] | x_ptr | the hidden/underlying generic_file to provide seekable feature for | 
      
  | 
  inline | 
destructor
Definition at line 75 of file tuyau_global.hpp.
      
  | 
  inlineoverridevirtual | 
set the ownership of the file
Implements libdar::fichier_global.
Definition at line 79 of file tuyau_global.hpp.
References libdar::fichier_global::change_ownership(), and ptr.
      
  | 
  inlineoverridevirtual | 
change the permission of the file
Implements libdar::fichier_global.
Definition at line 80 of file tuyau_global.hpp.
References libdar::fichier_global::change_permission(), and ptr.
      
  | 
  inlineoverridevirtual | 
set posix_fadvise for the whole file
Implements libdar::fichier_global.
Definition at line 82 of file tuyau_global.hpp.
References libdar::fichier_global::fadvise(), and ptr.
      
  | 
  overrideprotectedvirtual | 
replaces generic_file::inherited_read() method, to allow the return of partial reading
a partial reading is signaled by the inherited class by returning false
| [in] | a | points to the area where to store read data | 
| [in] | size | is the available place to store data | 
| [out] | read | is the total amount of data read so far | 
| [out] | message | is the request to send to the user upon partial reading | 
Implements libdar::fichier_global.
      
  | 
  overrideprotectedvirtual | 
replaces generic_file::inherited_write() method, to allow the return of partial writings
a partial writing is allowed when no space is available for writing this let global_ficher interact with the user asking whether it can make place or if (s)he wants to abort
| [in] | a | points to the start of the area of data to write | 
| [in] | size | is the size in byte of the data to write | 
Implements libdar::fichier_global.
      
  | 
  inlineoverridevirtual | 
get the current read/write position
Implements libdar::generic_file.
Definition at line 92 of file tuyau_global.hpp.
References current_pos.
      
  | 
  inlineoverridevirtual | 
return the size of the file
Implements libdar::fichier_global.
Definition at line 81 of file tuyau_global.hpp.
References libdar::fichier_global::get_size(), and ptr.
      
  | 
  inlineoverrideprotectedvirtual | 
reset internal engine, flush caches in order to read the data at current position
Implements libdar::generic_file.
Definition at line 106 of file tuyau_global.hpp.
References libdar::generic_file::flush_read(), and ptr.
      
  | 
  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 103 of file tuyau_global.hpp.
References ptr, and libdar::generic_file::read_ahead().
      
  | 
  inlineoverrideprotectedvirtual | 
write down any pending data
Implements libdar::generic_file.
Definition at line 105 of file tuyau_global.hpp.
References ptr, and libdar::generic_file::sync_write().
      
  | 
  inlineoverrideprotectedvirtual | 
destructor-like call, except that it is allowed to throw exceptions
Implements libdar::generic_file.
Definition at line 107 of file tuyau_global.hpp.
References ptr, and libdar::generic_file::terminate().
      
  | 
  inlineoverrideprotectedvirtual | 
truncate file at the give offset
Implements libdar::generic_file.
Definition at line 104 of file tuyau_global.hpp.
References ptr, and libdar::generic_file::truncate().
      
  | 
  overridevirtual | 
skip at the absolute position
| [in] | pos | the offset in byte where next read/write operation must start | 
Implements libdar::generic_file.
      
  | 
  overridevirtual | 
skip relatively to the current position
Implements libdar::generic_file.
      
  | 
  overridevirtual | 
skip to the end of file
Implements libdar::generic_file.
      
  | 
  inlineoverridevirtual | 
whether the implementation is able to skip
Implements libdar::generic_file.
Definition at line 87 of file tuyau_global.hpp.
References ptr, and libdar::generic_file::skippable().
      
  | 
  inlineoverridevirtual | 
whether the implementation is able to truncate to the given position
Implements libdar::generic_file.
Definition at line 91 of file tuyau_global.hpp.
References ptr, and libdar::generic_file::truncatable().
      
  | 
  private | 
to skip emulation done by reading data
Definition at line 115 of file tuyau_global.hpp.
      
  | 
  staticprivate | 
Definition at line 111 of file tuyau_global.hpp.
      
  | 
  private | 
record the current offset
Definition at line 114 of file tuyau_global.hpp.
Referenced by get_position().
      
  | 
  private | 
points to the underlying object
Definition at line 113 of file tuyau_global.hpp.
Referenced by change_ownership(), change_permission(), fadvise(), get_size(), inherited_flush_read(), inherited_read_ahead(), inherited_sync_write(), inherited_terminate(), inherited_truncate(), skippable(), and truncatable().