Disk ARchive  2.7.15
Full featured and portable backup and archiving tool
Namespaces | Macros | Functions | Variables
macro_tools.hpp File Reference

macroscopic tools for libdar internals More...

#include "../my_config.h"
#include <string>
#include <vector>
#include "catalogue.hpp"
#include "compression.hpp"
#include "infinint.hpp"
#include "header_version.hpp"
#include "generic_file.hpp"
#include "crypto.hpp"
#include "pile.hpp"
#include "entrepot.hpp"
#include "range.hpp"
#include "slice_layout.hpp"
#include "tuyau.hpp"
#include "trivial_sar.hpp"
#include "proto_compressor.hpp"
+ Include dependency graph for macro_tools.hpp:

Go to the source code of this file.

Namespaces

 libdar
 libdar namespace encapsulate all libdar symbols
 

Macros

#define BUFFER_SIZE   102400
 

Functions

trivial_sar * libdar::macro_tools_open_archive_tuyau (const std::shared_ptr< user_interaction > &dialog, S_I fd, gf_mode mode, const label &internal_name, const label &data_name, bool slice_header_format_07, const std::string &execute)
 create an container to write an archive to a pipe
 
void libdar::macro_tools_open_archive (const std::shared_ptr< user_interaction > &dialog, const std::shared_ptr< entrepot > &where, const std::string &basename, const infinint &min_digits, const std::string &extension, crypto_algo crypto, const secu_string &pass, U_32 crypto_size, pile &stack, header_version &ver, const std::string &input_pipe, const std::string &output_pipe, const std::string &execute, infinint &second_terminateur_offset, bool lax, bool has_external_cat, bool sequential_read, bool info_details, std::list< signator > &gnupg_signed, slice_layout &sl, U_I multi_threaded_crypto, U_I multi_threaded_compress, bool header_only)
 setup the given pile object to contain a stack of generic_files suitable to read an archive More...
 
catalogue * libdar::macro_tools_get_derivated_catalogue_from (const std::shared_ptr< user_interaction > &dialog, pile &data_stack, pile &cata_stack, const header_version &ver, bool info_details, infinint &cat_size, const infinint &second_terminateur_offset, std::list< signator > &signatories, bool lax_mode)
 uses terminator to skip to the position where to find the catalogue and read it, taking care of having this catalogue pointing to the real data (context of isolated catalogue — cata_stack — used to rescue an internal archive — data_stack)
 
catalogue * libdar::macro_tools_get_catalogue_from (const std::shared_ptr< user_interaction > &dialog, pile &stack, const header_version &ver, bool info_details, infinint &cat_size, const infinint &second_terminateur_offset, std::list< signator > &signatories, bool lax_mode)
 uses terminator to skip to the position where to find the catalogue and read it
 
catalogue * libdar::macro_tools_read_catalogue (const std::shared_ptr< user_interaction > &dialog, const header_version &ver, const pile_descriptor &cata_pdesc, const infinint &cat_size, std::list< signator > &signatories, bool lax_mode, const label &lax_layer1_data_name, bool only_detruits)
 read the catalogue from cata_stack assuming the cata_stack is positionned at the beginning of the area containing archive's dumped data
 
catalogue * libdar::macro_tools_lax_search_catalogue (const std::shared_ptr< user_interaction > &dialog, pile &stack, const archive_version &edition, compression compr_algo, bool info_details, bool even_partial_catalogues, const label &layer1_data_name)
 
infinint libdar::macro_tools_get_terminator_start (generic_file &f, const archive_version &reading_ver)
 
void libdar::macro_tools_create_layers (const std::shared_ptr< user_interaction > &dialog, pile &layers, header_version &ver, slice_layout &slicing, const slice_layout *ref_slicing, const std::shared_ptr< entrepot > &sauv_path_t, const std::string &filename, const std::string &extension, bool allow_over, bool warn_over, bool info_details, const infinint &pause, compression algo, U_I compression_level, U_I compression_block_size, const infinint &file_size, const infinint &first_file_size, const std::string &execute, crypto_algo crypto, const secu_string &pass, U_32 crypto_size, const std::vector< std::string > &gnupg_recipients, const std::vector< std::string > &gnupg_signatories, bool empty, const std::string &slice_permission, bool add_marks_for_sequential_reading, const std::string &user_comment, hash_algo hash, const infinint &slice_min_digits, const label &internal_name, const label &data_name, const infinint &iteration_count, hash_algo kdf_hash, U_I multi_threaded_crypto, U_I multi_threaded_compress)
 build layers for a new archive More...
 
void libdar::macro_tools_close_layers (const std::shared_ptr< user_interaction > &dialog, pile &layers, const header_version &ver, const catalogue &cat, bool info_details, crypto_algo crypto, compression algo, const std::vector< std::string > &gnupg_recipients, const std::vector< std::string > &gnupg_signatories, bool empty)
 dumps the catalogue and close all the archive layers to terminate the archive More...
 
range libdar::macro_tools_get_slices (const cat_nomme *obj, slice_layout sl)
 gives the location of data EA and FSA (when they are saved) of the object given in argument More...
 
void libdar::macro_tools_open_pipes (const std::shared_ptr< user_interaction > &dialog, const std::string &input, const std::string &output, tuyau *&in, tuyau *&out)
 open a pair of tuyau objects encapsulating two named pipes. More...
 
proto_compressor * libdar::macro_tools_build_streaming_compressor (compression algo, generic_file &base, U_I compression_level, U_I num_workers)
 return a proto_compressor object realizing the desired (de)compression level/aglo on top of "base" in streaming mode More...
 
proto_compressor * libdar::macro_tools_build_block_compressor (compression algo, generic_file &base, U_I compression_level, U_I num_workers, U_I block_size)
 return a proto_compressor object realizing the desired (de)compression level/algo on to of "base" in block mode More...
 

Variables

constexpr U_I libdar::GLOBAL_ELASTIC_BUFFER_SIZE = 51200
 
const archive_version libdar::macro_tools_supported_version
 
const std::string libdar::LIBDAR_STACK_LABEL_UNCOMPRESSED
 
const std::string libdar::LIBDAR_STACK_LABEL_CLEAR
 
const std::string libdar::LIBDAR_STACK_LABEL_UNCYPHERED
 
const std::string libdar::LIBDAR_STACK_LABEL_LEVEL1
 

Detailed Description

macroscopic tools for libdar internals

Definition in file macro_tools.hpp.