![]() |
Disk ARchive 2.8.0
Full featured and portable backup and archiving tool
|
the plain file class More...
#include <cat_file.hpp>
Public Types | |
enum | get_data_mode { keep_compressed , keep_hole , normal , plain } |
how to get data from archive More... | |
Public Member Functions | |
cat_file (const infinint &xuid, const infinint &xgid, U_16 xperm, const datetime &last_access, const datetime &last_modif, const datetime &last_change, const std::string &src, const path &che, const infinint &taille, const infinint &fs_device, bool x_furtive_read_mode) | |
cat_file (const std::shared_ptr< user_interaction > &dialog, const smart_pointer< pile_descriptor > &pdesc, const archive_version &reading_ver, saved_status saved, compression default_algo, bool small) | |
cat_file (const cat_file &ref) | |
cat_file (cat_file &&ref)=delete | |
cat_file & | operator= (const cat_file &ref)=delete |
cat_file & | operator= (cat_file &&ref)=delete |
virtual bool | has_changed_since (const cat_inode &ref, const infinint &hourshift, comparison_fields what_to_check) const override |
infinint | get_size () const |
void | change_size (const infinint &s) const |
infinint | get_storage_size () const |
void | set_storage_size (const infinint &s) |
bool | can_get_data () const |
check whether the object will be able to provide a object using get_data() method More... | |
virtual generic_file * | get_data (get_data_mode mode, std::shared_ptr< memory_file > delta_sig_mem, U_I signature_block_size, std::shared_ptr< memory_file > delta_ref, const crc **checksum=nullptr) const |
returns a newly allocated object in read_only mode More... | |
void | clean_data () const |
bool | set_data_from_binary_patch (cat_file *in_place_addr) |
used while merging, chages the behavior of our get_data() to provide the patched version of the provided file data More... | |
bool | applying_binary_patch () const |
return the save value as what set_data_from_binary_patch has provided More... | |
void | set_offset (const infinint &r) |
const infinint & | get_offset () const |
virtual unsigned char | signature () const override |
inherited class signature More... | |
virtual std::string | get_description () const override |
inherited class designation More... | |
void | set_crc (const crc &c) |
bool | get_crc (const crc *&c) const |
the argument is set to an allocated crc object owned by the "cat_file" object, its stay valid while this "cat_file" object exists and MUST NOT be deleted by the caller in any case | |
bool | has_crc () const |
bool | get_crc_size (infinint &val) const |
returns true if crc is know and puts its width in argument | |
void | drop_crc () |
void | set_sparse_file_detection_read (bool val) |
void | set_sparse_file_detection_write (bool val) |
bool | get_sparse_file_detection_read () const |
bool | get_sparse_file_detection_write () const |
virtual cat_entree * | clone () const override |
a way to copy the exact type of an object even if pointed to by a parent class pointer More... | |
compression | get_compression_algo_read () const |
compression | get_compression_algo_write () const |
void | change_compression_algo_write (compression x) |
bool | is_dirty () const |
void | set_dirty (bool value) |
bool | has_delta_signature_structure () const |
return whether the object has an associated delta signature structure More... | |
bool | has_delta_signature_available () const |
return whether the object has an associated delta signature structure including a delta signature data (not just CRC) More... | |
bool | has_patch_base_crc () const |
returns whether the object has a base patch CRC (s_delta status objects) | |
bool | get_patch_base_crc (const crc *&c) const |
returns the CRC of the file to base the patch on, for s_delta objects | |
void | set_patch_base_crc (const crc &c) |
set the reference CRC of the file to base the patch on, for s_detla objects | |
bool | has_patch_result_crc () const |
returns whether the object has a CRC corresponding to data (for s_saved, s_delta, and when delta signature is present) | |
bool | get_patch_result_crc (const crc *&c) const |
returns the CRC the file will have once restored or patched (for s_saved, s_delta, and when delta signature is present) | |
void | set_patch_result_crc (const crc &c) |
set the CRC the file will have once restored or patched (for s_saved, s_delta, and when delta signature is present) | |
void | will_have_delta_signature_structure () |
prepare the object to receive a delta signature structure | |
void | will_have_delta_signature_available () |
prepare the object to receive a delta signature structure including delta signature More... | |
void | dump_delta_signature (std::shared_ptr< memory_file > &sig, U_I sign_block_size, generic_file &where, bool small) const |
write down to archive the given delta signature More... | |
void | dump_delta_signature (generic_file &where, bool small) const |
variant of dump_delta_signature when just CRC have to be dumped | |
void | read_delta_signature_metadata () const |
load metadata (and delta signature when in sequential mode) into memory More... | |
void | read_delta_signature (std::shared_ptr< memory_file > &delta_sig, U_I &block_len) const |
fetch the delta signature from the archive More... | |
void | drop_delta_signature_data () const |
drop the delta signature from memory (will not more be posible to be read, using read_delta_signature) | |
bool | has_same_delta_signature (const cat_file &ref) const |
return true if ref and "this" have both equal delta signatures | |
void | clear_delta_signature_only () |
remove information about delta signature also associated CRCs if status is not s_delta | |
void | clear_delta_signature_structure () |
remove any information about delta signature | |
virtual bool | operator== (const cat_entree &ref) const override |
not used More... | |
bool | same_data_as (const cat_file &other, bool check_data, const infinint &hourshift, bool me_or_other_read_in_seq_mode) |
compare just data not inode information EA nor FSA | |
const archive_version & | get_archive_version () const |
expose the archive format the object of the backup this object comes from More... | |
![]() | |
cat_inode (const infinint &xuid, const infinint &xgid, U_16 xperm, const datetime &last_access, const datetime &last_modif, const datetime &last_change, const std::string &xname, const infinint &device) | |
flag used to only consider certain fields when comparing/restoring inodes | |
cat_inode (const std::shared_ptr< user_interaction > &dialog, const smart_pointer< pile_descriptor > &pdesc, const archive_version &reading_ver, saved_status saved, bool small) | |
cat_inode (const cat_inode &ref) | |
cat_inode (cat_inode &&ref) noexcept | |
cat_inode & | operator= (const cat_inode &ref) |
cat_inode & | operator= (cat_inode &&ref) |
const infinint & | get_uid () const |
const infinint & | get_gid () const |
U_16 | get_perm () const |
datetime | get_last_access () const |
datetime | get_last_modif () const |
void | set_last_access (const datetime &x_time) |
void | set_last_modif (const datetime &x_time) |
infinint | get_device () const |
bool | same_as (const cat_inode &ref) const |
bool | is_more_recent_than (const cat_inode &ref, const infinint &hourshift) const |
virtual bool | has_changed_since (const cat_inode &ref, const infinint &hourshift, comparison_fields what_to_check) const |
void | compare (const cat_inode &other, const mask &ea_mask, comparison_fields what_to_check, const infinint &hourshift, bool symlink_date, const fsa_scope &scope, bool isolated_mode, bool seq_read_mode) const |
void | ea_set_saved_status (ea_saved_status status) |
ea_saved_status | ea_get_saved_status () const |
void | ea_attach (ea_attributs *ref) |
const ea_attributs * | get_ea () const |
the returned value is the address of an existing file of the cat_inode object and shall not be deleted by the caller | |
void | ea_detach () const |
infinint | ea_get_size () const |
void | ea_set_offset (const infinint &pos) |
bool | ea_get_offset (infinint &pos) const |
void | ea_set_crc (const crc &val) |
void | ea_get_crc (const crc *&ptr) const |
the argument is set to point to an allocated crc object owned by this "cat_inode" object, this reference stays valid while the "cat_inode" object exists and MUST NOT be deleted by the caller in any case | |
bool | ea_get_crc_size (infinint &val) const |
returns true if crc is know and puts its width in argument | |
datetime | get_last_change () const |
void | set_last_change (const datetime &x_time) |
bool | has_last_change () const |
void | fsa_set_saved_status (fsa_saved_status status) |
fsa_saved_status | fsa_get_saved_status () const |
fsa_scope | fsa_get_families () const |
gives the set of FSA family recorded for that inode More... | |
void | fsa_attach (filesystem_specific_attribute_list *ref) |
void | fsa_partial_attach (const fsa_scope &val) |
const filesystem_specific_attribute_list * | get_fsa () const |
void | fsa_detach () const |
infinint | fsa_get_size () const |
void | fsa_set_offset (const infinint &pos) |
bool | fsa_get_offset (infinint &pos) const |
void | fsa_set_crc (const crc &val) |
void | fsa_get_crc (const crc *&ptr) const |
bool | fsa_get_crc_size (infinint &val) const |
![]() | |
cat_nomme (const std::string &name, saved_status arg) | |
cat_nomme (const smart_pointer< pile_descriptor > &pdesc, bool small, saved_status val) | |
cat_nomme (const cat_nomme &ref)=default | |
cat_nomme (cat_nomme &&ref) noexcept=default | |
cat_nomme & | operator= (const cat_nomme &ref)=default |
cat_nomme & | operator= (cat_nomme &&ref)=default |
virtual bool | operator== (const cat_entree &ref) const override |
returns true if the two object are the same More... | |
virtual bool | operator< (const cat_nomme &ref) const |
const std::string & | get_name () const |
void | change_name (const std::string &x) |
bool | same_as (const cat_nomme &ref) const |
![]() | |
cat_entree (saved_status val) | |
setup an object when read from filesystem More... | |
cat_entree (const smart_pointer< pile_descriptor > &pdesc, bool small, saved_status val) | |
setup an object when read from an archive More... | |
cat_entree (const cat_entree &ref)=default | |
cat_entree (cat_entree &&ref) noexcept=default | |
cat_entree & | operator= (const cat_entree &ref)=default |
cat_entree & | operator= (cat_entree &&ref)=default |
virtual | ~cat_entree () noexcept(false) |
destructor More... | |
virtual bool | operator== (const cat_entree &ref) const =0 |
returns true if the two object are the same More... | |
bool | operator!= (const cat_entree &ref) const |
bool | same_as (const cat_entree &ref) const |
return true of the two objects would generate the same entry on filsystem More... | |
void | dump (const pile_descriptor &pdesc, bool small) const |
write down the object information to a stack More... | |
void | specific_dump (const pile_descriptor &pdesc, bool small) const |
this call gives an access to inherited_dump More... | |
virtual void | post_constructor (const pile_descriptor &pdesc) |
let inherited classes build object's data after CRC has been read from file in small read mode More... | |
virtual unsigned char | signature () const =0 |
inherited class signature More... | |
virtual std::string | get_description () const =0 |
inherited class designation More... | |
virtual cat_entree * | clone () const =0 |
a way to copy the exact type of an object even if pointed to by a parent class pointer More... | |
virtual void | change_location (const smart_pointer< pile_descriptor > &pdesc) |
saved_status | get_saved_status () const |
obtain the saved status of the object More... | |
void | set_saved_status (saved_status x) |
modify the saved_status of the object More... | |
void | set_list_entry (const slice_layout *sly, bool fetch_ea, list_entry &ent) const |
setup a list_entry object relative to the current cat_entree object More... | |
Static Public Attributes | |
static constexpr U_8 | FILE_DATA_WITH_HOLE = 0x01 |
file's data contains hole datastructure More... | |
static constexpr U_8 | FILE_DATA_IS_DIRTY = 0x02 |
data modified while being saved More... | |
static constexpr U_8 | FILE_DATA_HAS_DELTA_SIG = 0x04 |
delta signature is present More... | |
Protected Types | |
enum | { from_path , from_cat , from_patch } |
Protected Member Functions | |
virtual void | sub_compare (const cat_inode &other, bool isolated_mode, bool seq_read_mode) const override |
virtual void | inherited_dump (const pile_descriptor &pdesc, bool small) const override |
true if object has been created by sequential reading of an archive More... | |
virtual void | post_constructor (const pile_descriptor &pdesc) override |
let inherited classes build object's data after CRC has been read from file in small read mode More... | |
![]() | |
virtual void | sub_compare (const cat_inode &other, bool isolated_mode, bool seq_read_mode) const |
bool | get_small_read () const |
virtual void | inherited_dump (const pile_descriptor &pdesc, bool small) const override |
true if object has been created by sequential reading of an archive More... | |
virtual void | inherited_dump (const pile_descriptor &pdesc, bool small) const override |
inherited class may overload this method but shall first call the parent's inherited_dump() in the overloaded method More... | |
![]() | |
virtual void | inherited_dump (const pile_descriptor &pdesc, bool small) const |
inherited class may overload this method but shall first call the parent's inherited_dump() in the overloaded method More... | |
pile * | get_pile () const |
stack used to read object from (nullptr is returned for object created from filesystem) More... | |
proto_compressor * | get_compressor_layer () const |
compressor generic_file relative methods More... | |
escape * | get_escape_layer () const |
escape generic_file relative methods More... | |
generic_file * | get_read_cat_layer (bool small) const |
return the adhoc layer in the stack to read from the catalogue objects (except the EA, FSA or Data part) | |
Protected Attributes | |
enum libdar::cat_file:: { ... } | status |
Private Member Functions | |
void | sub_compare_internal (const cat_inode &other, bool can_read_my_data, bool can_read_other_data, const infinint &hourshift, bool seq_read_mode) const |
void | clean_patch_base_crc () |
void | detruit () |
cat_file * | clone_as_file () const |
Private Attributes | |
std::string | chemin |
path to the data (when read from filesystem) More... | |
infinint * | offset |
start location of the data in 'loc' More... | |
infinint * | size |
size of the data (uncompressed) More... | |
infinint * | storage_size |
how much data used in archive (after compression) More... | |
crc * | check |
crc computed on the data More... | |
bool | dirty |
true when a file has been modified at the time it was saved More... | |
compression | algo_read |
which compression algorithm to use to read the file's data More... | |
compression | algo_write |
which compression algorithm to use to write down (merging) the file's data More... | |
bool | furtive_read_mode |
used only when status equals "from_path" More... | |
char | file_data_status_read |
defines the datastructure to use when reading the data More... | |
char | file_data_status_write |
defines the datastructure to apply when writing down the data More... | |
crc * | patch_base_check |
when data contains a delta patch, moved from delta_sig since format 10.2 More... | |
cat_delta_signature * | delta_sig |
delta signature and associated CRC More... | |
bool | delta_sig_read |
whether delta sig has been read/initialized from filesystem More... | |
archive_version | read_ver |
archive format used/to use More... | |
std::unique_ptr< cat_file > | in_place |
when data is build from patch (merging context only) this is the object to apply the patch on (while we store the patch data) More... | |
Additional Inherited Members | |
![]() | |
static cat_entree * | read (const std::shared_ptr< user_interaction > &dialog, const smart_pointer< pile_descriptor > &f, const archive_version &reading_ver, entree_stats &stats, std::map< infinint, cat_etoile * > &corres, compression default_algo, bool lax, bool only_detruit, bool small) |
read and create an object of inherited class of class cat_entree More... | |
the plain file class
Definition at line 48 of file cat_file.hpp.
|
protected |
Definition at line 267 of file cat_file.hpp.
how to get data from archive
Definition at line 53 of file cat_file.hpp.
|
inline |
Definition at line 86 of file cat_file.hpp.
|
inline |
return the save value as what set_data_from_binary_patch has provided
Definition at line 132 of file cat_file.hpp.
References in_place.
|
inline |
check whether the object will be able to provide a object using get_data() method
Definition at line 97 of file cat_file.hpp.
References libdar::delta, libdar::cat_entree::get_saved_status(), and libdar::saved.
|
inline |
Definition at line 161 of file cat_file.hpp.
|
inline |
Definition at line 92 of file cat_file.hpp.
|
inlineoverridevirtual |
a way to copy the exact type of an object even if pointed to by a parent class pointer
Implements libdar::cat_entree.
Definition at line 154 of file cat_file.hpp.
|
inline |
Definition at line 143 of file cat_file.hpp.
void libdar::cat_file::dump_delta_signature | ( | std::shared_ptr< memory_file > & | sig, |
U_I | sign_block_size, | ||
generic_file & | where, | ||
bool | small | ||
) | const |
write down to archive the given delta signature
[in] | sig | is the signature to dump |
[in] | sign_block_size | block size to used to build the delta signature |
[in] | where | is the location where to write down the signature |
[in] | small | if set to true drop down additional information to allow sequential reading mode |
|
inline |
expose the archive format the object of the backup this object comes from
Definition at line 258 of file cat_file.hpp.
References read_ver.
|
inline |
Definition at line 156 of file cat_file.hpp.
|
inline |
Definition at line 158 of file cat_file.hpp.
|
virtual |
returns a newly allocated object in read_only mode
[in] | mode | whether to return compressed, with hole or plain file |
[in,out] | delta_sig_mem | if not nullptr, write to that file the delta signature of the file |
[in] | signature_block_size | is the block size to use to build the signature (passed to librsync as is) |
[in] | delta_ref | if not nullptr, use the provided signature to generate a delta binary patch |
[in] | checksum | if not null will set checsum to the address of a newly allocated crc object that the caller has the duty to release when no more needed but *not before the returned generic_file object has been destroyed first. The computed crc is against the real data found on disk not the one of the delta diff that could be generated from get_data() |
Reimplemented in libdar::cat_door.
|
inlineoverridevirtual |
inherited class designation
Implements libdar::cat_entree.
Reimplemented in libdar::cat_door.
Definition at line 137 of file cat_file.hpp.
|
inline |
Definition at line 91 of file cat_file.hpp.
|
inline |
Definition at line 151 of file cat_file.hpp.
|
inline |
Definition at line 152 of file cat_file.hpp.
|
inline |
Definition at line 93 of file cat_file.hpp.
|
overridevirtual |
Reimplemented from libdar::cat_inode.
|
inline |
Definition at line 141 of file cat_file.hpp.
|
inline |
return whether the object has an associated delta signature structure including a delta signature data (not just CRC)
Definition at line 177 of file cat_file.hpp.
References libdar::cat_delta_signature::can_obtain_sig(), and delta_sig.
|
inline |
return whether the object has an associated delta signature structure
Definition at line 170 of file cat_file.hpp.
References delta_sig.
|
overrideprotectedvirtual |
true if object has been created by sequential reading of an archive
Reimplemented from libdar::cat_inode.
|
inline |
Definition at line 165 of file cat_file.hpp.
|
inlineoverridevirtual |
not used
Reimplemented from libdar::cat_nomme.
Reimplemented in libdar::cat_door.
Definition at line 249 of file cat_file.hpp.
|
overrideprotectedvirtual |
let inherited classes build object's data after CRC has been read from file in small read mode
[in] | pdesc | stack to read the data from |
Reimplemented from libdar::cat_entree.
void libdar::cat_file::read_delta_signature | ( | std::shared_ptr< memory_file > & | delta_sig, |
U_I & | block_len | ||
) | const |
fetch the delta signature from the archive
[out] | delta_sig | is either nullptr or points to a shared memory_file containing the delta signature. |
[out] | block_len | is the block size that has been used to build the signature |
void libdar::cat_file::read_delta_signature_metadata | ( | ) | const |
load metadata (and delta signature when in sequential mode) into memory
bool libdar::cat_file::set_data_from_binary_patch | ( | cat_file * | in_place_addr | ) |
used while merging, chages the behavior of our get_data() to provide the patched version of the provided file data
|
inline |
Definition at line 166 of file cat_file.hpp.
|
inline |
Definition at line 146 of file cat_file.hpp.
|
inline |
Definition at line 148 of file cat_file.hpp.
|
inline |
Definition at line 94 of file cat_file.hpp.
|
inlineoverridevirtual |
inherited class signature
Implements libdar::cat_entree.
Reimplemented in libdar::cat_door.
Definition at line 136 of file cat_file.hpp.
|
overrideprotectedvirtual |
Reimplemented from libdar::cat_inode.
void libdar::cat_file::will_have_delta_signature_available | ( | ) |
prepare the object to receive a delta signature structure including delta signature
this calls will lead an to error if the delta_signature is written to archive or used while only CRC info has been set (= metadata of delta signature) but no delta signature data has read from the archive or has been provided (by mean of a memory_file when calling dump_delta_signature() method)
|
private |
which compression algorithm to use to read the file's data
Definition at line 276 of file cat_file.hpp.
|
private |
which compression algorithm to use to write down (merging) the file's data
Definition at line 277 of file cat_file.hpp.
|
private |
crc computed on the data
Definition at line 274 of file cat_file.hpp.
|
private |
path to the data (when read from filesystem)
Definition at line 270 of file cat_file.hpp.
|
private |
delta signature and associated CRC
Definition at line 282 of file cat_file.hpp.
Referenced by has_delta_signature_available(), and has_delta_signature_structure().
|
mutableprivate |
whether delta sig has been read/initialized from filesystem
Definition at line 283 of file cat_file.hpp.
|
private |
true when a file has been modified at the time it was saved
Definition at line 275 of file cat_file.hpp.
|
staticconstexpr |
delta signature is present
Definition at line 63 of file cat_file.hpp.
|
staticconstexpr |
data modified while being saved
Definition at line 62 of file cat_file.hpp.
|
private |
defines the datastructure to use when reading the data
Definition at line 279 of file cat_file.hpp.
|
private |
defines the datastructure to apply when writing down the data
Definition at line 280 of file cat_file.hpp.
|
staticconstexpr |
file's data contains hole datastructure
Definition at line 61 of file cat_file.hpp.
|
private |
used only when status equals "from_path"
Definition at line 278 of file cat_file.hpp.
|
private |
when data is build from patch (merging context only) this is the object to apply the patch on (while we store the patch data)
Definition at line 285 of file cat_file.hpp.
Referenced by applying_binary_patch().
|
private |
start location of the data in 'loc'
Definition at line 271 of file cat_file.hpp.
|
private |
when data contains a delta patch, moved from delta_sig since format 10.2
Definition at line 281 of file cat_file.hpp.
|
private |
archive format used/to use
Definition at line 284 of file cat_file.hpp.
Referenced by get_archive_version().
|
private |
size of the data (uncompressed)
Definition at line 272 of file cat_file.hpp.
|
private |
how much data used in archive (after compression)
Definition at line 273 of file cat_file.hpp.