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

interface to fileystem for FSA More...

#include <filesystem_specific_attribute.hpp>

+ Collaboration diagram for libdar::filesystem_specific_attribute_list:

Public Member Functions

 filesystem_specific_attribute_list (const filesystem_specific_attribute_list &ref)
 
filesystem_specific_attribute_listoperator= (const filesystem_specific_attribute_list &ref)
 
void clear ()
 clear all attributes
 
void add (const filesystem_specific_attribute &fsa)
 add an fsa to the list
 
fsa_scope get_fsa_families () const
 gives the set of FSA family present in the list More...
 
bool is_included_in (const filesystem_specific_attribute_list &ref, const fsa_scope &scope) const
 compare two lists of FSA to see whether they have equal FSA with identical values within the given family scope
 
void read (generic_file &f, archive_version ver)
 read FSA list from archive
 
void write (generic_file &f) const
 write FSA list to archive
 
void get_fsa_from_filesystem_for (user_interaction &ui, const std::string &target, const fsa_scope &scope, mode_t itype, bool auto_zeroing_neg_dates)
 read FSA list from filesystem
 
bool has_linux_immutable_set () const
 return true if this FSA_list contains linux FSA with the immutable attribute set to true
 
bool set_fsa_to_filesystem_for (const std::string &target, const fsa_scope &scope, user_interaction &ui, bool set_linux_immutable) const
 
bool empty () const
 whether the list has at least one FSA More...
 
U_I size () const
 access to members of the list More...
 
const filesystem_specific_attributeoperator[] (U_I arg) const
 provide reference to FSA given its index
 
infinint storage_size () const
 give the storage size for the EA
 
filesystem_specific_attribute_list operator+ (const filesystem_specific_attribute_list &arg) const
 addition operator More...
 
bool find (fsa_family fam, fsa_nature nat, const filesystem_specific_attribute *&ptr) const
 look for the FSA of given familly and nature More...
 

Private Member Functions

void copy_from (const filesystem_specific_attribute_list &ref)
 
void update_familes ()
 
void priv_add (const filesystem_specific_attribute &ref)
 
void sort_fsa ()
 
void fill_extX_FSA_with (const std::string &target, mode_t itype)
 
void fill_HFS_FSA_with (user_interaction &ui, const std::string &target, mode_t itype, bool auto_zeroing_neg_dates)
 
bool set_extX_FSA_to (user_interaction &ui, const std::string &target, bool set_immutable) const
 
bool set_hfs_FSA_to (user_interaction &ui, const std::string &target) const
 

Static Private Member Functions

static std::string family_to_signature (fsa_family f)
 
static std::string nature_to_signature (fsa_nature n)
 
static fsa_family signature_to_family (const std::string &sig)
 
static fsa_nature signature_to_nature (const std::string &sig)
 

Private Attributes

std::deque< filesystem_specific_attribute * > fsa
 
fsa_scope familes
 

Detailed Description

interface to fileystem for FSA

Definition at line 137 of file filesystem_specific_attribute.hpp.

Constructor & Destructor Documentation

◆ filesystem_specific_attribute_list() [1/2]

libdar::filesystem_specific_attribute_list::filesystem_specific_attribute_list ( )
inline

Definition at line 140 of file filesystem_specific_attribute.hpp.

◆ filesystem_specific_attribute_list() [2/2]

libdar::filesystem_specific_attribute_list::filesystem_specific_attribute_list ( const filesystem_specific_attribute_list ref)
inline

Definition at line 141 of file filesystem_specific_attribute.hpp.

◆ ~filesystem_specific_attribute_list()

libdar::filesystem_specific_attribute_list::~filesystem_specific_attribute_list ( )
inline

Definition at line 143 of file filesystem_specific_attribute.hpp.

Member Function Documentation

◆ empty()

bool libdar::filesystem_specific_attribute_list::empty ( ) const
inline

whether the list has at least one FSA

Definition at line 186 of file filesystem_specific_attribute.hpp.

◆ find()

bool libdar::filesystem_specific_attribute_list::find ( fsa_family  fam,
fsa_nature  nat,
const filesystem_specific_attribute *&  ptr 
) const

look for the FSA of given familly and nature

Parameters
[in]famfamily of the FSA to look for
[in]natnature of the FSA to look for
[in,out]ptrpoints to the FSA if found
Returns
true if such an FSA has been found and set ptr accordingly else return false

◆ get_fsa_families()

fsa_scope libdar::filesystem_specific_attribute_list::get_fsa_families ( ) const
inline

gives the set of FSA family present in the list

Definition at line 152 of file filesystem_specific_attribute.hpp.

◆ operator+()

filesystem_specific_attribute_list libdar::filesystem_specific_attribute_list::operator+ ( const filesystem_specific_attribute_list arg) const

addition operator

Note
this operator is not reflexive (or symetrical if you prefer). Here "a + b" may differ from "b + a" all FSA of the arg are added with overwriting to the FSA of 'this'

◆ operator=()

filesystem_specific_attribute_list & libdar::filesystem_specific_attribute_list::operator= ( const filesystem_specific_attribute_list ref)
inline

Definition at line 142 of file filesystem_specific_attribute.hpp.

◆ set_extX_FSA_to()

bool libdar::filesystem_specific_attribute_list::set_extX_FSA_to ( user_interaction ui,
const std::string &  target,
bool  set_immutable 
) const
private
Note
return true if some FSA could be set
Parameters
[in]uiuser interaction
[in]targetthe target to assign the FSA to
[in]set_immutablewhether to ignore or set the immutable flag when present

◆ set_fsa_to_filesystem_for()

bool libdar::filesystem_specific_attribute_list::set_fsa_to_filesystem_for ( const std::string &  target,
const fsa_scope scope,
user_interaction ui,
bool  set_linux_immutable 
) const

set FSA list to filesystem

Parameters
[in]targetpath of file to restore FSA to
[in]scopelist of FSA families to only consider
[in]uiuser interaction object
[in]set_linux_immutablewhether to restore the only linux immutable flag or ignore it and restore the rest
Returns
true if some FSA have effectively been set, false if no FSA could be set either because list was empty of all FSA in the list where out of scope

◆ set_hfs_FSA_to()

bool libdar::filesystem_specific_attribute_list::set_hfs_FSA_to ( user_interaction ui,
const std::string &  target 
) const
private
Note
return true if some FSA could be set

◆ size()

U_I libdar::filesystem_specific_attribute_list::size ( ) const
inline

access to members of the list

Definition at line 190 of file filesystem_specific_attribute.hpp.

Member Data Documentation

◆ familes

fsa_scope libdar::filesystem_specific_attribute_list::familes
private

Definition at line 215 of file filesystem_specific_attribute.hpp.

◆ fsa

std::deque<filesystem_specific_attribute *> libdar::filesystem_specific_attribute_list::fsa
private

Definition at line 214 of file filesystem_specific_attribute.hpp.


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