29 #include "../my_config.h"
64 const std::string & xname,
66 cat_inode(
const std::shared_ptr<user_interaction> & dialog,
74 cat_inode & operator = (
cat_inode && ref) { cat_nomme::operator = (std::move(ref)); move_from(std::move(ref));
return *
this; };
77 const infinint & get_uid()
const {
return uid; };
78 const infinint & get_gid()
const {
return gid; };
79 U_16 get_perm()
const {
return perm; };
80 datetime get_last_access()
const {
return last_acc; };
81 datetime get_last_modif()
const {
return last_mod; };
82 void set_last_access(
const datetime & x_time) {
last_acc = x_time; };
83 void set_last_modif(
const datetime & x_time) {
last_mod = x_time; };
84 infinint get_device()
const {
if(
fs_dev ==
nullptr)
throw SRC_BUG;
return *
fs_dev; };
86 bool same_as(
const cat_inode & ref)
const;
87 bool is_more_recent_than(
const cat_inode & ref,
const infinint & hourshift)
const;
99 bool isolated_mode)
const;
122 void ea_detach()
const;
126 void ea_set_offset(
const infinint & pos);
127 bool ea_get_offset(
infinint & pos)
const;
128 void ea_set_crc(
const crc & val);
156 void fsa_partial_attach(
const fsa_scope & val);
158 void fsa_detach()
const;
162 void fsa_set_offset(
const infinint & pos);
163 bool fsa_get_offset(
infinint & pos)
const;
164 void fsa_set_crc(
const crc & val);
165 void fsa_get_crc(
const crc * & ptr)
const;
166 bool fsa_get_crc_size(
infinint & val)
const;
169 virtual void sub_compare(
const cat_inode & other,
bool isolated_mode)
const {};
170 bool get_small_read()
const {
return small_read; };
173 virtual void inherited_dump(
const pile_descriptor & pdesc,
bool small)
const override;
205 void nullifyptr() noexcept;
206 void destroy() noexcept;
208 void move_from(
cat_inode && ref) noexcept;
set of datastructures used to interact with a catalogue object
base class of all objects contained in a catalogue and that can be named
class archive_version manages the version of the archive format
the root class for all cat_inode
infinint * ea_size
storage size required by EA
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)
datetime last_mod
last modification time (mtime)
datetime last_acc
last access time (atime)
U_16 perm
inode's permission
bool ea_get_crc_size(infinint &val) const
returns true if crc is know and puts its width in argument
archive_version edit
need to know EA and FSA format used in archive file
virtual void inherited_dump(const pile_descriptor &pdesc, bool small) const override
true if object has been created by sequential reading of an archive
ea_attributs * ea
Extended Attributes read or to be written down.
infinint uid
inode owner's user ID
infinint * fsa_size
storage size required for FSA
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
infinint * fsa_families
list of FSA families present for that inode (set to nullptr in fsa_none mode)
crc * fsa_crc
CRC computed on FSA.
bool small_read
whether we the object has been built with sequential-reading
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,...
infinint * fs_dev
filesystem ID on which resides the inode (only used when read from filesystem)
crc * ea_crc
CRC computed on EA.
infinint * ea_offset
offset in archive where to find EA
ea_saved_status ea_saved
inode Extended Attribute status
datetime last_cha
last inode meta data change (ctime)
fsa_saved_status fsa_saved
inode Filesystem Specific Attribute status
infinint * fsa_offset
offset in archive where to find FSA # always allocated (to be reviewed)
filesystem_specific_attribute_list * fsal
Filesystem Specific Attributes read or to be written down # only allocated if fsa_saved if set to FUL...
infinint gid
inode owner's group ID
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 delete...
fsa_scope fsa_get_families() const
gives the set of FSA family recorded for that inode
the base class for all entry that have a name
pure virtual class defining interface of a CRC object
bool is_null() const
return true if the datetime is exactly January 1st, 1970, 0 h 0 mn 0 s
the class ea_attributs manages the set of EA that can be associated to an inode
interface to fileystem for FSA
the arbitrary large positive integer class
the generic class, parent of all masks
this file contains the definition of class datetime that stores unix times in a portable way
contains a set of routines to manage EA values associated to a file
filesystem specific attributes
comparison_fields
how to consider file change during comparison and incremental backup
std::set< fsa_family > fsa_scope
set of fsa families
fsa_scope infinint_to_fsa_scope(const infinint &ref)
convert an infinint to fsa_scape
fsa_saved_status
FSA saved status for an entry.
saved_status
data saved status for an entry
ea_saved_status
EA saved status for an entry.
switch module to limitint (32 ou 64 bits integers) or infinint
are defined here basic integer types that tend to be portable
here lies a collection of mask classes
libdar namespace encapsulate all libdar symbols
defines the interaction interface between libdar and users.