30#include "../my_config.h" 
   58        i_database(
const std::shared_ptr<user_interaction> & dialog);
 
   61        i_database(
const std::shared_ptr<user_interaction> & dialog,
 
   62                 const std::string & base,
 
  148                                    void *context) 
const;
 
  153        void restore(
const std::vector<std::string> & filename,
 
  159             const path & fs_root,
 
  167            bool initial_warn = 
true;
 
the archive class is defined in this module
 
this file contains a set of classes used to transmit options to archive operation
 
class archive_num stores the position of an archive inside a dar_manager database
 
class holding optional parameters used to read an existing archive
 
the archive class realizes the most general operations on archives
 
the data_dir class inherits from data_tree and holds the directory tree's parent relationship
 
virtual bool check_order(user_interaction &dialog, const path ¤t_path, bool &initial_warn) const override
check date order between archives withing the database ; throw Erange if problem found with date orde...
 
the class i_database is the implementation of class database
 
data_dir * files
structure containing files and their status in the set of archive used for that database (is set to n...
 
compression algo
compression used/to use when writing down the base to file
 
bool check_order_asked
whether order check has been asked
 
std::string get_dar_path() const
returns the path for dar
 
compression get_compression() const
returns the compression algorithm used on filesystem
 
unsigned char cur_db_version
current db version (for informational purposes)
 
i_database(i_database &&ref) noexcept=delete
disabling move constructor
 
void build(generic_file &f, bool partial, bool read_only, unsigned char db_version)
used by constructors
 
std::vector< std::string > options_to_dar
options to use when calling dar for restoration
 
void remove_archive(archive_num min, archive_num max, const database_remove_options &opt)
remove an archive from a database
 
void set_permutation(archive_num src, archive_num dst)
change order of archive within the database
 
i_database & operator=(const i_database &ref)=delete
disabling assignement operator
 
void set_path(archive_num num, const std::string &chemin, const database_change_path_options &opt)
change one's archive path recorded in the database
 
void restore(const std::vector< std::string > &filename, const database_restore_options &opt)
restore files calling dar on the appropriated archive
 
void get_files(database_listing_show_files_callback callback, void *context, archive_num num, const database_used_options &opt) const
list files which are present in a given archive
 
bool check_order() const
check that all files's Data and EA are more recent when archive number grows within the database,...
 
void show_most_recent_stats(database_listing_statistics_callback callback, void *context) const
compute some statistics about the location of most recent file versions
 
storage * data_files
when reading archive in partial mode, this is where is located the "not readed" part of the archive (...
 
i_database(const i_database &ref)=delete
disabling copy constructor
 
std::string dar_path
path to dar
 
U_I compr_level
the compression level to use
 
i_database(const std::shared_ptr< user_interaction > &dialog, const std::string &base, const database_open_options &opt)
this constructor reads i_database from a file
 
U_I get_compression_level() const
returns the compression level used on file
 
std::deque< struct archive_data > coordinate
list of archive used to build the database
 
void set_compression_level(U_I level) const
change the compression level to use when storing base in file
 
~i_database()
i_database destructor (no implicit file saving)
 
void set_compression(compression algozip) const
change compression to use when storing base on file
 
database_archives_list get_contents() const
provides the list of archive used to build the database
 
std::vector< std::string > get_options() const
return the options used with dar for restoration
 
void restore(const archive_options_read &read_options, const path &fs_root, archive_options_extract extract_options, const database_restore_options &opt, statistics *progressive_report)
restore files calling libdar directly rather than spawning dar CLI and parsing options as CLI
 
void change_name(archive_num num, const std::string &basename, const database_change_basename_options &opt)
change one's archive basename recorded in the database
 
void get_version(database_listing_get_version_callback callback, void *context, path chemin) const
list the archive where a give file is present
 
void dump(const std::string &filename, const database_dump_options &opt) const
write the database to a file (see database_header first)
 
std::string get_database_version() const
return the database format version
 
void set_dar_path(const std::string &chemin)
change the path to dar command
 
i_database(const std::shared_ptr< user_interaction > &dialog)
this constructor build an empty database
 
void add_archive(const archive &arch, const std::string &chemin, const std::string &basename, const database_add_options &opt)
add an archive to the database
 
void set_options(const std::vector< std::string > &opt)
change the default options given to dar when performing restoration
 
options to add an archive to base
 
options for changing a given archive's basename
 
options for changing a given archive's path
 
options to write a database to file
 
options to open a database
 
options to remove an archive from the base
 
options for restoration from database
 
options for file "used" in archive
 
this is the interface class from which all other data transfer classes inherit
 
class mem_ui to keep a copy of a user_interaction object
 
user_interaction & get_ui() const
get access to the user_interaction object
 
the class path is here to manipulate paths in the Unix notation: using'/'
 
class used by libdar::archive class to give a summary of treated file during and after an operation
 
arbitrary large storage structure
 
classes used to store directory tree information in dar_manager databases
 
this file holds the database class definition
 
this file stores the list of archives a database has been built from. it is part of the database head...
 
this file holds the options for database operations
 
this file contains the definition of class datetime that stores unix times in a portable way
 
class generic_file is defined here as well as class fichier
 
std::deque< database_archives > database_archives_list
list of archives found in a database
 
void(*)(void *context, const std::string &filename, bool available_data, bool available_ea) database_listing_show_files_callback
called by the database::get_files() routine
 
void(*)(void *context, U_I number, const infinint &data_count, const infinint &total_data, const infinint &ea_count, const infinint &total_ea) database_listing_statistics_callback
called with teh information of statistics for each archive in turn
 
void(*)(void *context, archive_num num, db_etat data_presence, bool has_data_date, datetime data, db_etat ea_presence, bool has_ea_date, datetime ea) database_listing_get_version_callback
called with the information of presence for an entry in archive number num
 
compression
the different compression algorithm available
 
class mem_ui definition. This class is to be used as parent class to handle user_interaction object m...
 
libdar namespace encapsulate all libdar symbols
 
contains a class that permits arbitrary large data storage
 
holds the archive used to create the database
 
std::string chemin
path to the archive
 
datetime root_last_mod
last modification date of the root directory
 
std::string basename
basename of the archive