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; };
99 label & get_set_data_name() {
return data_name; };
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; };
110 void set_format_07_compatibility() {
old_header =
true; };
122 void copy_from(
const header & ref);
123 void move_from(
header && ref) noexcept;
124 void free_pointers();
this is the interface class from which all other data transfer classes inherit
the arbitrary large positive integer class
manage label data structure used in archive slice headers
This is a pure virtual class that is used by libdar when interaction with the user is required.
class generic_file is defined here as well as class fichier
switch module to limitint (32 ou 64 bits integers) or infinint
define the datastructure "label" used to identify slice membership to an archive
libdar namespace encapsulate all libdar symbols
List of Generic Type Length Value data structures.
defines the interaction interface between libdar and users.