Disk ARchive  2.7.15
Full featured and portable backup and archiving tool
Public Member Functions | List of all members
libdar::cat_door Class Reference

the class for Door IPC (mainly for Solaris) More...

#include <cat_door.hpp>

+ Inheritance diagram for libdar::cat_door:
+ Collaboration diagram for libdar::cat_door:

Public Member Functions

 cat_door (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 &fs_device)
 
 cat_door (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_door (const cat_door &ref)=default
 
 cat_door (cat_door &&ref)=delete
 
cat_dooroperator= (const cat_door &ref)=delete
 
cat_dooroperator= (cat_door &&ref)=delete
 
virtual bool operator== (const cat_entree &ref) const override
 not used
 
virtual unsigned char signature () const override
 inherited class signature
 
virtual std::string get_description () const override
 inherited class designation
 
virtual generic_fileget_data (get_data_mode mode, std::shared_ptr< memory_file > delta_sig, U_I signature_block_size, std::shared_ptr< memory_file > delta_ref, const crc **checksum) const override
 returns a newly allocated object in read_only mode More...
 
- Public Member Functions inherited from libdar::cat_file
 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_fileoperator= (const cat_file &ref)=delete
 
cat_fileoperator= (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
 
void clean_data ()
 
void set_offset (const infinint &r)
 
const infinintget_offset () const
 
void set_crc (const crc &c)
 
bool get_crc (const crc *&c) const
 the argument is set the an allocated crc object the 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_entreeclone () const override
 a way to copy the exact type of an object even if pointed to by a parent class pointer
 
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
 
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
 
bool same_data_as (const cat_file &other, bool check_data, const infinint &hourshift)
 compare just data not inode information EA nor FSA
 
const archive_versionget_archive_version () const
 expose the archive format the object of the backup this object comes from
 
- Public Member Functions inherited from libdar::cat_inode
 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_inodeoperator= (const cat_inode &ref)
 
cat_inodeoperator= (cat_inode &&ref)
 
const infinintget_uid () const
 
const infinintget_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
 
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) const
 do not try to compare pointed to data, EA of FSA (suitable for isolated catalogue)
 
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_attributsget_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
 
void fsa_attach (filesystem_specific_attribute_list *ref)
 
void fsa_partial_attach (const fsa_scope &val)
 
const filesystem_specific_attribute_listget_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
 
- Public Member Functions inherited from libdar::cat_nomme
 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_nommeoperator= (const cat_nomme &ref)=default
 
cat_nommeoperator= (cat_nomme &&ref)=default
 
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
 
- Public Member Functions inherited from libdar::cat_entree
 cat_entree (saved_status val)
 setup an object when read from filesystem
 
 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_entreeoperator= (const cat_entree &ref)=default
 
cat_entreeoperator= (cat_entree &&ref)=default
 
virtual ~cat_entree () noexcept(false)
 destructor
 
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 change_location (const smart_pointer< pile_descriptor > &pdesc)
 
saved_status get_saved_status () const
 obtain the saved status of the object
 
void set_saved_status (saved_status x)
 modify the saved_status of the object
 
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...
 

Additional Inherited Members

- Public Types inherited from libdar::cat_file
enum  get_data_mode { keep_compressed , keep_hole , normal , plain }
 how to get data from archive More...
 
- Static Public Member Functions inherited from libdar::cat_entree
static cat_entreeread (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...
 
- Static Public Attributes inherited from libdar::cat_file
static constexpr U_8 FILE_DATA_WITH_HOLE = 0x01
 file's data contains hole datastructure
 
static constexpr U_8 FILE_DATA_IS_DIRTY = 0x02
 data modified while being saved
 
static constexpr U_8 FILE_DATA_HAS_DELTA_SIG = 0x04
 delta signature is present
 
- Protected Types inherited from libdar::cat_file
enum  { empty , from_path , from_cat }
 
- Protected Member Functions inherited from libdar::cat_file
virtual void sub_compare (const cat_inode &other, bool isolated_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
 
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...
 
- Protected Member Functions inherited from libdar::cat_inode
bool get_small_read () const
 
- Protected Member Functions inherited from libdar::cat_entree
pileget_pile () const
 stack used to read object from (nullptr is returned for object created from filesystem)
 
proto_compressor * get_compressor_layer () const
 compressor generic_file relative methods More...
 
escape * get_escape_layer () const
 escape generic_file relative methods More...
 
generic_fileget_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 inherited from libdar::cat_file
enum libdar::cat_file:: { ... }  status
 

Detailed Description

the class for Door IPC (mainly for Solaris)

Definition at line 45 of file cat_door.hpp.

Member Function Documentation

◆ get_data()

virtual generic_file* libdar::cat_door::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 
) const
overridevirtual

returns a newly allocated object in read_only mode

Parameters
[in]modewhether to return compressed, with hole or plain file
[in,out]delta_sig_memif not nullptr, write to that file the delta signature of the file
[in]signature_block_sizeis the block size to use to build the signature (passed to librsync as is)
[in]delta_refif not nullptr, use the provided signature to generate a delta binary
[in]checksumif 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()
Note
the object pointed to by delta_sig must exist during the whole life of the returned object, as well as the object pointed to by delta_ref if provided.
when both delta_sig and delta_ref are provided, the delta signature is computed on the file data, then the delta binary is computed.

Reimplemented from libdar::cat_file.


The documentation for this class was generated from the following file: