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_hard_link_write Class Reference

keep trace of already written inodes to restore hard links More...

#include <filesystem_hard_link_write.hpp>

+ Inheritance diagram for libdar::filesystem_hard_link_write:
+ Collaboration diagram for libdar::filesystem_hard_link_write:

Public Member Functions

 filesystem_hard_link_write (const std::shared_ptr< user_interaction > &dialog)
 
 filesystem_hard_link_write (const filesystem_hard_link_write &ref)=delete
 
 filesystem_hard_link_write (filesystem_hard_link_write &&ref)=delete
 
filesystem_hard_link_writeoperator= (const filesystem_hard_link_write &ref)=delete
 
filesystem_hard_link_writeoperator= (filesystem_hard_link_write &&ref)=delete
 
void write_hard_linked_target_if_not_set (const cat_mirage *ref, const std::string &chemin)
 
bool known_etiquette (const infinint &eti)
 
void clear_corres_if_pointing_to (const infinint &ligne, const std::string &path)
 forget everything about a hard link if the path used to build subsequent hard links is the one given in argument More...
 

Protected Member Functions

void corres_reset ()
 
void make_file (const cat_nomme *ref, const path &ou)
 generate inode or make a hard link on an already restored or existing inode. More...
 
bool raw_set_ea (const cat_nomme *e, const ea_attributs &list_ea, const std::string &spot, const mask &ea_mask)
 add the given EA matching the given mask to the file pointed to by "e" and spot More...
 
bool raw_clear_ea_set (const cat_nomme *e, const std::string &path)
 remove EA set from filesystem's file, allows subsequent raw_set_ea More...
 
- Protected Member Functions inherited from libdar::mem_ui
user_interactionget_ui () const
 get access to the user_interaction object More...
 
std::shared_ptr< user_interactionget_pointer () const
 get access to the shared_ptr pointing to the user_interaction More...
 
 mem_ui (const std::shared_ptr< user_interaction > &dialog)
 constructor More...
 
 mem_ui (const mem_ui &ref)=default
 the copy constructor More...
 
 mem_ui (mem_ui &&ref) noexcept=default
 the move constructor
 
mem_uioperator= (const mem_ui &ref)=default
 assignement operator More...
 
mem_uioperator= (mem_ui &&ref) noexcept=default
 move operator
 
virtual ~mem_ui () noexcept(false)
 destructor More...
 

Private Attributes

std::map< infinint, corres_ino_ea > corres_write
 

Detailed Description

keep trace of already written inodes to restore hard links

Definition at line 57 of file filesystem_hard_link_write.hpp.

Constructor & Destructor Documentation

◆ filesystem_hard_link_write()

libdar::filesystem_hard_link_write::filesystem_hard_link_write ( const std::shared_ptr< user_interaction > &  dialog)
inline

Definition at line 63 of file filesystem_hard_link_write.hpp.

Member Function Documentation

◆ clear_corres_if_pointing_to()

void libdar::filesystem_hard_link_write::clear_corres_if_pointing_to ( const infinint ligne,
const std::string &  path 
)

forget everything about a hard link if the path used to build subsequent hard links is the one given in argument

Parameters
[in]ligneis the etiquette number for that hard link
[in]pathif the internaly recorded path to build subsequent hard link to that inode is equal to path, forget everything about this hard linked inode

◆ corres_reset()

void libdar::filesystem_hard_link_write::corres_reset ( )
inlineprotected

Definition at line 85 of file filesystem_hard_link_write.hpp.

◆ known_etiquette()

bool libdar::filesystem_hard_link_write::known_etiquette ( const infinint eti)
Returns
true if an inode in filesystem has been seen for that hard linked inode

◆ make_file()

void libdar::filesystem_hard_link_write::make_file ( const cat_nomme ref,
const path ou 
)
protected

generate inode or make a hard link on an already restored or existing inode.

Parameters
[in]refobject to restore in filesystem
[in]ouwhere to restore it

◆ raw_clear_ea_set()

bool libdar::filesystem_hard_link_write::raw_clear_ea_set ( const cat_nomme e,
const std::string &  path 
)
protected

remove EA set from filesystem's file, allows subsequent raw_set_ea

Parameters
[in]ethis object may be a hard link to or an inode
[in]paththe path in the filesystem where reside the object whose EA to clear
Returns
true if EA could be cleared, false if "e" is a hard link to an inode that has its EA already restored previously

◆ raw_set_ea()

bool libdar::filesystem_hard_link_write::raw_set_ea ( const cat_nomme e,
const ea_attributs list_ea,
const std::string &  spot,
const mask ea_mask 
)
protected

add the given EA matching the given mask to the file pointed to by "e" and spot

Parameters
[in]emay be an inode or a hard link to an inode,
[in]list_eathe list of EA to restore
[in]spotthe path where to restore these EA (full path required, including the filename of 'e')
[in]ea_maskthe EA entry to restore from the list_ea (other entries are ignored)
Returns
true if EA could be restored, false if "e" is a hard link to an inode that has its EA already restored previously
Note
the list_ea EA are restored to spot path, the object e is only here to validate that this operation has not already been done through another hard linked inode to that same inode

Member Data Documentation

◆ corres_write

std::map<infinint, corres_ino_ea> libdar::filesystem_hard_link_write::corres_write
private

Definition at line 125 of file filesystem_hard_link_write.hpp.


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