![]() |
Disk ARchive 2.7.18
Full featured and portable backup and archiving tool
|
abstraction of filesystem files for entrepot More...
#include <fichier_global.hpp>
Inherits libdar::generic_file, libdar::thread_cancellation, and libdar::mem_ui.
Inherited by libdar::cache_global, libdar::fichier_local, libdar::generic_to_global_file, libdar::hash_fichier, and libdar::tuyau_global.
Public Types | |
| 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 } |
Public Member Functions | |
| fichier_global (const std::shared_ptr< user_interaction > &dialog, gf_mode mode) | |
| constructor | |
| 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 | |
| virtual void | change_permission (U_I perm)=0 |
| change the permission of the file | |
| virtual infinint | get_size () const =0 |
| return the size of the file | |
| virtual void | fadvise (advise adv) const =0 |
| set posix_fadvise for the whole file | |
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, | |
| 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 | skippable (skippability direction, const infinint &amount)=0 |
| whether the implementation is able to skip | |
| virtual bool | skip (const infinint &pos)=0 |
| skip at the absolute position | |
| virtual bool | skip_to_eof ()=0 |
| skip to the end of file | |
| virtual bool | skip_relative (S_I x)=0 |
| skip relatively to the current position | |
| virtual bool | truncatable (const infinint &pos) const =0 |
| whether the implementation is able to truncate to the given position | |
| virtual void | truncate (const infinint &pos) |
| truncate file at the given offset | |
| virtual infinint | get_position () const =0 |
| get the current read/write position | |
| 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 | |
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 | |
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. | |
| void | block_delayed_cancellation (bool mode) |
Public Member Functions inherited from libdar::mem_ui | |
| 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 | |
Protected Member Functions | |
| 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 | |
| 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 | |
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 | |
| virtual void | inherited_truncate (const infinint &pos)=0 |
| truncate file at the give offset | |
| virtual void | inherited_sync_write ()=0 |
| write down any pending data | |
| virtual void | inherited_flush_read ()=0 |
| reset internal engine, flush caches in order to read the data at current position | |
| virtual void | inherited_terminate ()=0 |
| destructor-like call, except that it is allowed to throw exceptions | |
| bool | is_terminated () const |
Protected Member Functions inherited from libdar::mem_ui | |
| 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 | |
Private Member Functions | |
| virtual void | inherited_write (const char *a, U_I size) override |
| implementation of the write() operation | |
| virtual U_I | inherited_read (char *a, U_I size) override |
| implementation of read() operation | |
Private Attributes | |
| bool | disk_full |
| whether user refused to continue due to disk being full | |
Additional Inherited Members | |
Static Public Member Functions inherited from libdar::thread_cancellation | |
| static U_I | count () |
| method for debugging/control purposes | |
abstraction of filesystem files for entrepot
Definition at line 58 of file fichier_global.hpp.
Definition at line 61 of file fichier_global.hpp.
|
inline |
|
pure virtual |
set the ownership of the file
Implemented in libdar::cache_global, libdar::fichier_local, libdar::generic_to_global_file, libdar::hash_fichier, and libdar::tuyau_global.
Referenced by libdar::cache_global::change_ownership(), libdar::hash_fichier::change_ownership(), and libdar::tuyau_global::change_ownership().
|
pure virtual |
change the permission of the file
Implemented in libdar::cache_global, libdar::fichier_local, libdar::generic_to_global_file, libdar::hash_fichier, and libdar::tuyau_global.
Referenced by libdar::cache_global::change_permission(), libdar::hash_fichier::change_permission(), and libdar::tuyau_global::change_permission().
|
pure virtual |
set posix_fadvise for the whole file
Implemented in libdar::cache_global, libdar::fichier_local, libdar::generic_to_global_file, libdar::hash_fichier, and libdar::tuyau_global.
Referenced by libdar::cache_global::fadvise(), libdar::hash_fichier::fadvise(), and libdar::tuyau_global::fadvise().
|
protectedpure virtual |
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 |
Implemented in libdar::cache_global, libdar::fichier_local, libdar::generic_to_global_file, libdar::hash_fichier, and libdar::tuyau_global.
|
protectedpure virtual |
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 |
Implemented in libdar::cache_global, libdar::fichier_local, libdar::generic_to_global_file, libdar::hash_fichier, and libdar::tuyau_global.
|
pure virtual |
return the size of the file
Implemented in libdar::cache_global, libdar::fichier_local, libdar::generic_to_global_file, libdar::hash_fichier, and libdar::tuyau_global.
Referenced by libdar::cache_global::get_size(), libdar::hash_fichier::get_size(), and libdar::tuyau_global::get_size().
|
overrideprivatevirtual |
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.
|
overrideprivatevirtual |
implementation of the write() operation
| [in] | a | what data to write |
| [in] | size | amount of data to write |
Implements libdar::generic_file.
|
private |
whether user refused to continue due to disk being full
Definition at line 135 of file fichier_global.hpp.