libdar::filesystem_specific_attribute Class Referenceabstract
Private

Filesystem Specific Attributes (FSA) class. More...

`#include <filesystem_specific_attribute.hpp>`

Inherited by libdar::fsa_bool, libdar::fsa_infinint, and libdar::fsa_time.

## Public Member Functions

| filesystem_specific_attribute (fsa_family f)
| constructor used to before reading the FSA from filesystem More...
| filesystem_specific_attribute (generic_file &f, fsa_family xfam, fsa_nature xnat)
| constructor used to read a FSA from a libdar archive More...
| filesystem_specific_attribute (const filesystem_specific_attribute &ref)=default
| filesystem_specific_attribute (filesystem_specific_attribute &&ref) noexcept=default
filesystem_specific_attribute & | operator= (const filesystem_specific_attribute &ref)=default
filesystem_specific_attribute & | operator= (filesystem_specific_attribute &&ref) noexcept=default
virtual | ~filesystem_specific_attribute () noexcept(false)
| virtual destructor for inherited classes More...
bool | is_same_type_as (const filesystem_specific_attribute &ref) const
| provide a mean to compare objects types
virtual bool | operator== (const filesystem_specific_attribute &ref) const
| provides a mean to compare objects values More...
bool | operator!= (const filesystem_specific_attribute &ref) const
bool | operator< (const filesystem_specific_attribute &ref) const
| used to provided a sorted list of FSA
bool | operator>= (const filesystem_specific_attribute &ref) const
bool | operator> (const filesystem_specific_attribute &ref) const
bool | operator<= (const filesystem_specific_attribute &ref) const
fsa_family | get_family () const
| obtain the family of the FSA More...
fsa_nature | get_nature () const
| obtain the nature of the FSA More...
virtual std::string | show_val () const =0
| provides a human readable value of the FSA More...
virtual void | write (generic_file &f) const =0
| write down to libdar archive More...
virtual infinint | storage_size () const =0
| give the storage size for the FSA More...
virtual filesystem_specific_attribute * | clone () const =0
| provides a way to copy objects without having to know the more specific class of the object More...

## Protected Member Functions

void | set_family (const fsa_family &val)
void | set_nature (const fsa_nature &val)
virtual bool | equal_value_to (const filesystem_specific_attribute &ref) const =0
| should return true if the value of the argument is equal to the one of 'this' false in any other case (even for object of another inherited class) More...

## Private Attributes

fsa_family | fam
fsa_nature | nat

## Detailed Description

Filesystem Specific Attributes (FSA) class.

this class handle the storage of attributes into and from the archive it has not filesystem specific knownledge. This aspect is managed by filesystem_specific_attribute_list that upon system call will create the liste of FSA and given the list of FSA will try to set them back to the filesystem

Definition at line 67 of file filesystem_specific_attribute.hpp.

## Constructor & Destructor Documentation

## filesystem_specific_attribute() [1/2]

libdar::filesystem_specific_attribute::filesystem_specific_attribute | ( | fsa_family | f | ) |

inline

constructor used to before reading the FSA from filesystem

Note
  when the underlying filesystem does not support the requested EA the constructor of the inherited class should throw an exception of type Erange. Only valid object should be built, that is object containing the value of the FSA found on the filesystem.

Definition at line 76 of file filesystem_specific_attribute.hpp.

## filesystem_specific_attribute() [2/2]

libdar::filesystem_specific_attribute::filesystem_specific_attribute | ( | generic_file & | f,
|  | fsa_family | xfam,
|  | fsa_nature | xnat
| ) |  |

inline

constructor used to read a FSA from a libdar archive

Definition at line 79 of file filesystem_specific_attribute.hpp.

## ~filesystem_specific_attribute()

virtual libdar::filesystem_specific_attribute::~filesystem_specific_attribute | ( |  | ) |

inlinevirtualnoexcept

virtual destructor for inherited classes

Definition at line 87 of file filesystem_specific_attribute.hpp.

## Member Function Documentation

## clone()

virtual filesystem_specific_attribute * libdar::filesystem_specific_attribute::clone | ( |  | ) | const

pure virtual

provides a way to copy objects without having to know the more specific class of the object

Implemented in libdar::fsa_infinint, and libdar::fsa_time.

## equal_value_to()

virtual bool libdar::filesystem_specific_attribute::equal_value_to | ( | const filesystem_specific_attribute & | ref | ) | const

protectedpure virtual

should return true if the value of the argument is equal to the one of 'this' false in any other case (even for object of another inherited class)

Implemented in libdar::fsa_infinint, and libdar::fsa_time.

Referenced by operator==().

## get_family()

fsa_family libdar::filesystem_specific_attribute::get_family | ( |  | ) | const

inline

obtain the family of the FSA

Definition at line 104 of file filesystem_specific_attribute.hpp.

## get_nature()

fsa_nature libdar::filesystem_specific_attribute::get_nature | ( |  | ) | const

inline

obtain the nature of the FSA

Definition at line 107 of file filesystem_specific_attribute.hpp.

## operator!=()

bool libdar::filesystem_specific_attribute::operator!= | ( | const filesystem_specific_attribute & | ref | ) | const

inline

Definition at line 94 of file filesystem_specific_attribute.hpp.

## operator<=()

bool libdar::filesystem_specific_attribute::operator<= | ( | const filesystem_specific_attribute & | ref | ) | const

inline

Definition at line 100 of file filesystem_specific_attribute.hpp.

## operator==()

virtual bool libdar::filesystem_specific_attribute::operator== | ( | const filesystem_specific_attribute & | ref | ) | const

inlinevirtual

provides a mean to compare objects values

Definition at line 93 of file filesystem_specific_attribute.hpp.

References equal_value_to(), and is_same_type_as().

## operator>()

bool libdar::filesystem_specific_attribute::operator> | ( | const filesystem_specific_attribute & | ref | ) | const

inline

Definition at line 99 of file filesystem_specific_attribute.hpp.

## operator>=()

bool libdar::filesystem_specific_attribute::operator>= | ( | const filesystem_specific_attribute & | ref | ) | const

inline

Definition at line 98 of file filesystem_specific_attribute.hpp.

## set_family()

void libdar::filesystem_specific_attribute::set_family | ( | const fsa_family & | val | ) |

inlineprotected

Definition at line 122 of file filesystem_specific_attribute.hpp.

## set_nature()

void libdar::filesystem_specific_attribute::set_nature | ( | const fsa_nature & | val | ) |

inlineprotected

Definition at line 123 of file filesystem_specific_attribute.hpp.

## show_val()

virtual std::string libdar::filesystem_specific_attribute::show_val | ( |  | ) | const

pure virtual

provides a human readable value of the FSA

Implemented in libdar::fsa_infinint, and libdar::fsa_time.

## storage_size()

virtual infinint libdar::filesystem_specific_attribute::storage_size | ( |  | ) | const

pure virtual

give the storage size for the FSA

Implemented in libdar::fsa_infinint, and libdar::fsa_time.

## write()

virtual void libdar::filesystem_specific_attribute::write | ( | generic_file & | f | ) | const

pure virtual

write down to libdar archive

Implemented in libdar::fsa_infinint, and libdar::fsa_time.

## Member Data Documentation

## fam

fsa_family libdar::filesystem_specific_attribute::fam

private

Definition at line 129 of file filesystem_specific_attribute.hpp.

## nat

fsa_nature libdar::filesystem_specific_attribute::nat

private

Definition at line 130 of file filesystem_specific_attribute.hpp.

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

- filesystem_specific_attribute.hpp