29 #include "../my_config.h"
66 const datetime & root_last_modif,
67 const label & data_name);
69 const pile_descriptor & pdesc,
73 const label & lax_layer1_data_name,
74 bool only_detruit =
false);
82 virtual void reset_read()
const;
83 virtual void end_read()
const;
84 virtual void skip_read_to_parent_dir()
const;
87 virtual bool read(
const cat_entree * & ref)
const;
89 virtual bool read_if_present(std::string *name,
const cat_nomme * & ref)
const;
94 void remove_read_entry(std::string & name);
96 const cat_directory & get_current_reading_dir()
const {
if(current_read ==
nullptr)
throw SRC_BUG;
return *current_read; };
99 void tail_catalogue_to_current_read();
102 void reset_sub_read(
const path &sub);
112 virtual bool read_second_time_dir()
const {
return false; };
122 virtual void pre_add_ea(
const cat_entree *ref)
const {};
123 virtual void pre_add_crc(
const cat_entree *ref)
const {};
124 virtual void pre_add_dirty()
const {};
125 virtual void pre_add_ea_crc(
const cat_entree *ref)
const {};
126 virtual void pre_add_waste_mark()
const {};
127 virtual void pre_add_failed_mark()
const {};
128 virtual void pre_add_fsa(
const cat_entree *ref)
const {};
129 virtual void pre_add_fsa_crc(
const cat_entree *ref)
const {};
130 virtual escape *get_escape_layer()
const {
return nullptr; };
132 void add(cat_entree *ref);
133 void re_add_in(
const std::string &subdirname);
134 void re_add_in_replace(
const cat_directory &dir);
135 void add_in_current_read(cat_nomme *ref);
136 const cat_directory & get_current_add_dir()
const {
if(current_add ==
nullptr)
throw SRC_BUG;
return *current_add; };
142 void reset_compare()
const;
143 bool compare(
const cat_entree * name,
const cat_entree * & extracted)
const;
188 void dump(
const pile_descriptor & pdesc)
const;
190 void listing(
bool isolated,
191 const mask &selection,
192 const mask & subtree,
195 std::string marge)
const;
196 void tar_listing(
bool isolated,
197 const mask & selection,
198 const mask & subtree,
201 std::string beginning)
const;
202 void xml_listing(
bool isolated,
203 const mask & selection,
204 const mask & subtree,
207 std::string beginning)
const;
208 void slice_listing(
bool isolated,
209 const mask & selection,
210 const mask & subtree,
211 const slice_layout & slicing)
const;
213 entree_stats get_stats()
const {
return stats; };
216 bool is_empty()
const {
if(contenu ==
nullptr)
throw SRC_BUG;
return contenu->
is_empty(); };
218 const cat_directory *get_contenu()
const {
return contenu; };
220 const label & get_data_name()
const {
return ref_data_name; };
221 datetime get_root_dir_last_modif()
const {
return contenu->get_last_modif(); };
226 datetime get_root_mtime()
const {
return contenu->get_last_modif(); };
231 void set_to_unsaved_data_and_FSA() {
if(contenu ==
nullptr)
throw SRC_BUG; contenu->recursively_set_to_unsaved_data_and_FSA(); };
238 void set_data_name(
const label & val) { ref_data_name = val; };
239 void copy_detruits_from(
const catalogue & ref);
241 const cat_eod * get_r_eod_address()
const {
return & r_eod; };
251 cat_directory *contenu;
253 cat_directory *current_compare;
254 cat_directory *current_add;
255 cat_directory *current_read;
257 signed int sub_count;
261 void partial_copy_from(
const catalogue &ref);
264 static const cat_eod r_eod;
265 static const U_I CAT_CRC_SIZE;
infinint update_destroyed_with(const catalogue &ref)
base class of all objects contained in a catalogue and that can be named
class mem_ui definition. This class is to be used as parent class to handle user_interaction object m...
class used to organize objects in tree in catalogue as like directories in a filesystem ...
are defined here basic integer types that tend to be portable
the catalogue class which gather all objects contained in a give archive
holds the statistics contents of a catalogue
void change_location(const pile_descriptor &pdesc)
overwrite virtual method of cat_entree to propagate the action to all entries of the directory tree ...
void reset_all()
reset all pointers to the root (a bit better than reset_add() + reset_read() + reset_compare() + rese...
class generic_file is defined here as well as class fichierthe generic_file interface is widely used ...
define the datastructure "label" used to identify slice membership to an archive
This is a pure virtual class that is used by libdar when interaction with the user is required...
void recursive_has_changed_update() const
ask recursive update for the recursive_has_changed field
void swap_stuff(catalogue &ref)
void update_absent_with(const catalogue &ref, infinint aborting_next_etoile)
void reset_dump() const
before dumping the catalogue, need to set all hardlinked inode they have not been saved once ...
object describing the slicing of an archive
the cat_directory inode class
bool is_empty() const
whether this cat_directory is empty or not
virtual void pre_add(const cat_entree *ref) const
catalogue extension routines for escape sequence
defines the interaction between libdar and the user.Three classes are defined
here is the definition of the path classthe path class handle path and provide several operation on t...
void launch_recursive_has_changed_update() const
recursive evaluation of directories that have changed (make the cat_directory::get_recurisve_has_chan...
class escape definition, used for sequential reading of archivesThe class escape is used to insert es...
bool is_subset_of(const catalogue &ref) const
mem_ui(const user_interaction &dialog)
constructor
the base class for all entry that have a name
base class for all object contained in a catalogue
switch module to limitint (32 ou 64 bits integers) or infinint
here lies a collection of mask classes
compression
the different compression algorithm available
this file contains the definition of class datetime that stores unix times in a portable way ...
void drop_all_non_detruits()
remove/destroy from "this" all objects that are neither directory nor detruit objects ...
class mem_ui to keep a copy of a user_interaction object
bool is_empty() const
whether the catalogue is empty or not
compression engine implementation
this is the base class of object that can be allocated on a memory pool
class archive_version manages the version of the archive format
the root class from all other inherite for any entry in the catalogue
void dump(const pile_descriptor &pdesc) const
write down the whole catalogue to file
void change_location(const pile_descriptor &pdesc)
change location where to find EA, FSA and DATA for all the objects of the catalogue ...
libdar namespace encapsulate all libdar symbols
the class path is here to manipulate paths in the Unix notation: using'/'