Disk ARchive  2.7.15
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
 
 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.

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

◆ 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

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