Loading...
Searching...
No Matches
libdar::filesystem_specific_attribute_list Class Reference
Private

interface to fileystem for FSA More...

`#include <filesystem_specific_attribute.hpp>`

## Public Member Functions

| filesystem_specific_attribute_list (const filesystem_specific_attribute_list &ref)
filesystem_specific_attribute_list & | operator= (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
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
U_I | size () const
| access to members of the list
const filesystem_specific_attribute & | operator[] (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
bool | find (fsa_family fam, fsa_nature nat, const filesystem_specific_attribute *&ptr) const
| look for the FSA of given familly and nature

## 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
| sorted list of 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.

References fsa.

## 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] | fam | family of the FSA to look for
  [in] | nat | nature of the FSA to look for
  [in,out] | ptr | points 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] | ui | user interaction
  [in] | target | the target to assign the FSA to
  [in] | set_immutable | whether 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] | target | path of file to restore FSA to
  [in] | scope | list of FSA families to only consider
  [in] | ui | user interaction object
  [in] | set_linux_immutable | whether 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.

References fsa.

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

sorted list of FSA

Definition at line 214 of file filesystem_specific_attribute.hpp.

Referenced by add(), empty(), and size().

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

- filesystem_specific_attribute.hpp