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

the mask_list class, matches string that are present in a given file More...

#include <mask_list.hpp>

+ Inheritance diagram for libdar::mask_list:
+ Collaboration diagram for libdar::mask_list:

Public Member Functions

 mask_list (const std::string &filename_list_st, bool case_sensit, const path &prefix, bool include)
 the constructor More...
 
 mask_list (const mask_list &ref)=default
 
 mask_list (mask_list &&ref)=default
 
mask_listoperator= (const mask_list &ref)=default
 
mask_listoperator= (mask_list &&ref) noexcept=default
 
virtual bool is_covered (const std::string &expression) const override
 inherited from the mask class More...
 
virtual maskclone () const override
 inherited from the mask class More...
 
U_I size () const
 routing only necessary for doing some testing More...
 
virtual std::string dump (const std::string &prefix) const override
 output the listing content More...
 
- Public Member Functions inherited from libdar::mask
 mask (const mask &ref)=default
 
 mask (mask &&ref) noexcept=default
 
maskoperator= (const mask &ref)=default
 
maskoperator= (mask &&ref) noexcept=default
 
virtual bool is_covered (const std::string &expression) const =0
 check wether the given string is covered by the mask More...
 
virtual bool is_covered (const path &chemin) const
 check whether the given path is covered by the mask More...
 
virtual std::string dump (const std::string &prefix="") const =0
 dump in human readable form the nature of the mask More...
 
virtual maskclone () const =0
 

Private Attributes

std::deque< std::string > contenu
 
U_I taille
 
bool case_s
 
bool including
 

Detailed Description

the mask_list class, matches string that are present in a given file

the given file must contain one entry per line (thus no carriage return is allowed in a given entry). Note that the file listed in the file may have a relative path or an absolute path.

Definition at line 50 of file mask_list.hpp.

Constructor & Destructor Documentation

◆ mask_list()

libdar::mask_list::mask_list ( const std::string &  filename_list_st,
bool  case_sensit,
const path prefix,
bool  include 
)

the constructor

Parameters
[in]filename_list_stis the path to the file listing the filename to select for the operation
[in]case_sensitwhether comparison is case sensitive or not
[in]prefixadd this prefix to relative paths of the list. The prefix should be either absolute, or path::FAKE_ROOT (if the operation does not involve an fs_root - testing, listing, merging operations for example)
[in]includewhether the mask_list is used for file inclusion or file exclusion
Note
: WARNING: if "include is set to false, the mask must be negated by a not_mask(), this is not performed here. Here the include/exclude only parameter changes the filter internal "formula", but for historical reasons and by homogeneity with path base filtering the mask negation is done outside the mask construction. In other words, the caller should create the mask with the following statement either:
  • not_mask(mask_list(<filename>, <case sensit>, <prefix>, false)) or
  • mask_list(<filename>, <case sensit>, <prefix>, true)) and pass the resulting (eventually logically anded or ored with other masks to libdar set_subtree() method of an archive_option_* class.

Referenced by clone().

Member Function Documentation

◆ clone()

virtual mask * libdar::mask_list::clone ( ) const
inlineoverridevirtual

inherited from the mask class

Implements libdar::mask.

Definition at line 83 of file mask_list.hpp.

References mask_list().

◆ dump()

virtual std::string libdar::mask_list::dump ( const std::string &  prefix) const
overridevirtual

output the listing content

Implements libdar::mask.

◆ is_covered()

virtual bool libdar::mask_list::is_covered ( const std::string &  expression) const
overridevirtual

inherited from the mask class

Implements libdar::mask.

◆ size()

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

routing only necessary for doing some testing

Definition at line 86 of file mask_list.hpp.

Member Data Documentation

◆ case_s

bool libdar::mask_list::case_s
private

Definition at line 95 of file mask_list.hpp.

◆ contenu

std::deque<std::string> libdar::mask_list::contenu
private

Definition at line 93 of file mask_list.hpp.

◆ including

bool libdar::mask_list::including
private

Definition at line 96 of file mask_list.hpp.

◆ taille

U_I libdar::mask_list::taille
private

Definition at line 94 of file mask_list.hpp.


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