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; };
122 void copy_from(
const header & ref);
123 void move_from(
header && ref) noexcept;
124 void free_pointers();