Disk ARchive  2.7.14
Full featured and portable backup and archiving tool
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
libdar::cat_directory Class Reference

the cat_directory inode class More...

#include <cat_directory.hpp>

+ Inheritance diagram for libdar::cat_directory:
+ Collaboration diagram for libdar::cat_directory:

Public Member Functions

 cat_directory (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)
 
 cat_directory (const std::shared_ptr< user_interaction > &dialog, const smart_pointer< pile_descriptor > &pdesc, const archive_version &reading_ver, saved_status saved, entree_stats &stats, std::map< infinint, cat_etoile * > &corres, compression default_algo, bool lax, bool only_detruit, bool small)
 
 cat_directory (const cat_directory &ref)
 
 cat_directory (cat_directory &&ref) noexcept
 
cat_directoryoperator= (const cat_directory &ref)
 
cat_directoryoperator= (cat_directory &&ref) noexcept
 
virtual bool operator== (const cat_entree &ref) const override
 attention this compares only the directories themselves, not the list of their children
 
void add_children (cat_nomme *r)
 
bool has_children () const
 
void reset_read_children () const
 
void end_read () const
 
bool read_children (const cat_nomme *&r) const
 
void tail_to_read_children ()
 
void remove (const std::string &name)
 remove the given entry from the catalogue More...
 
cat_directoryget_parent () const
 
bool search_children (const std::string &name, const cat_nomme *&ref) const
 
virtual unsigned char signature () const override
 inherited class signature
 
virtual std::string get_description () const override
 inherited class designation
 
bool get_recursive_has_changed () const
 detemine whether some data has changed since archive of reference in this cat_directory or subdirectories
 
void recursive_has_changed_update () const
 ask recursive update for the recursive_has_changed field
 
infinint get_dir_size () const
 get the number of "cat_nomme" entry directly containted in this cat_directory (no recursive call)
 
infinint get_tree_size () const
 get then number of "cat_nomme" entry contained in this cat_directory and subdirectories (recursive call)
 
infinint get_tree_ea_num () const
 get the number of entry having some EA set in the cat_directory tree (recursive call)
 
infinint get_tree_mirage_num () const
 get the number of entry that are hard linked inode (aka mirage in dar implementation) (recursive call)
 
void get_etiquettes_found_in_tree (std::map< infinint, infinint > &already_found) const
 
bool is_empty () const
 whether this cat_directory is empty or not
 
void remove_all_mirages_and_reduce_dirs ()
 recursively remove all mirage entries
 
void set_all_mirage_s_inode_wrote_field_to (bool val) const
 recursively set all mirage inode_wrote flag
 
void set_all_mirage_s_inode_dumped_field_to (bool val) const
 set the value of inode_dumped for all mirage (recusively)
 
virtual cat_entreeclone () const override
 a way to copy the exact type of an object even if pointed to by a parent class pointer
 
const infinintget_size () const
 
const infinintget_storage_size () const
 
void recursively_set_to_unsaved_data_and_FSA ()
 
virtual void change_location (const smart_pointer< pile_descriptor > &pdesc) override
 overwrite virtual method of cat_entree to propagate the action to all entries of the directory tree
 
- 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) noexcept
 
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
 
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) 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) noexcept=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) noexcept=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 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...
 
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...
 

Protected Member Functions

virtual void inherited_dump (const pile_descriptor &pdesc, bool small) const override
 true if object has been created by sequential reading of an archive
 
- Protected Member Functions inherited from libdar::cat_inode
virtual void sub_compare (const cat_inode &other, bool isolated_mode) const
 
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)
 

Private Member Functions

void init () noexcept
 
void clear ()
 
void recursive_update_sizes () const
 
void recursive_flag_size_to_update () const
 
void erase_ordered_fils (std::deque< cat_nomme * >::const_iterator debut, std::deque< cat_nomme * >::const_iterator fin)
 

Private Attributes

infinint x_size
 
infinint x_storage_size
 
bool updated_sizes
 
cat_directoryparent
 
std::deque< cat_nomme * > ordered_fils
 
std::deque< cat_nomme * >::const_iterator it
 next entry to be returned by read_children
 
bool recursive_has_changed
 

Static Private Attributes

static const cat_eod fin
 

Additional Inherited Members

- 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...
 

Detailed Description

the cat_directory inode class

Definition at line 51 of file cat_directory.hpp.

Member Function Documentation

◆ remove()

void libdar::cat_directory::remove ( const std::string &  name)

remove the given entry from the catalogue

Note
read_children() is taken into account by this operation, no need to call reset_read_children(), if the argument removed was the one about to be read by read_children() the one following the removed entry will be returned the next time read_children() is invoked.

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