Disk ARchive 2.7.16
Full featured and portable backup and archiving tool
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
libdar::filesystem_specific_attribute Class Referenceabstract

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

#include <filesystem_specific_attribute.hpp>

+ Inheritance diagram for libdar::filesystem_specific_attribute:
+ Collaboration diagram for libdar::filesystem_specific_attribute:

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_attributeoperator= (const filesystem_specific_attribute &ref)=default
 
filesystem_specific_attributeoperator= (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_attributeclone () 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: