30 #include "../my_config.h" 44 const U_32 SAUV_MAGIC_NUMBER = 123;
46 using magic_number = U_32;
50 flag_type_terminal =
'T',
51 flag_type_non_terminal =
'N',
52 flag_type_located_at_end_of_slice =
'E' 72 header(
header && ref) noexcept { nullifyptr(); move_from(std::move(ref)); };
73 header & operator = (
const header & ref) { free_pointers(); copy_from(ref);
return *
this; };
74 header & operator = (
header && ref) noexcept { move_from(std::move(ref));
return *
this; };
75 ~
header() { free_pointers(); };
91 static U_I
min_size() {
return sizeof(magic_number) + label::common_size() + 2*
sizeof(char); };
96 magic_number & get_set_magic() {
return magic; };
98 char & get_set_flag() {
return flag; };
101 bool get_first_slice_size(
infinint & size)
const;
102 void set_first_slice_size(
const infinint & size);
105 bool get_slice_size(
infinint & size)
const;
106 void set_slice_size(
const infinint & size);
109 bool is_old_header()
const {
return old_header; };
121 void nullifyptr() noexcept { first_size = slice_size =
nullptr; };
122 void copy_from(
const header & ref);
123 void move_from(
header && ref) noexcept;
124 void free_pointers();
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...
defines the interaction interface between libdar and users.
switch module to limitint (32 ou 64 bits integers) or infinint
this is the interface class from which all other data transfer classes inherit
manage label data structure used in archive slice headers
List of Generic Type Length Value data structures.
the arbitrary large positive integer class
libdar namespace encapsulate all libdar symbols