30 #include "../my_config.h"
46 const U_32 SAUV_MAGIC_NUMBER = 123;
48 typedef U_32 magic_number;
52 flag_type_terminal =
'T',
53 flag_type_non_terminal =
'N',
54 flag_type_located_at_end_of_slice =
'E'
76 const struct header & operator = (
const header & ref) { free_pointers(); copy_from(ref);
return *
this; };
77 ~
header() { free_pointers(); };
95 static U_I
min_size() {
return sizeof(magic_number) +
sizeof(label) + 2*
sizeof(char); };
100 magic_number & get_set_magic() {
return magic; };
101 label & get_set_internal_name() {
return internal_name; };
102 char & get_set_flag() {
return flag; };
103 label & get_set_data_name() {
return data_name; };
105 bool get_first_slice_size(infinint & size)
const;
106 void set_first_slice_size(
const infinint & size);
107 void unset_first_slice_size() {
if(first_size != NULL) {
delete first_size; first_size = NULL; } };
109 bool get_slice_size(infinint & size)
const;
110 void set_slice_size(
const infinint & size);
111 void unset_slice_size() {
if(slice_size != NULL) {
delete slice_size; slice_size = NULL; } };
113 bool is_old_header()
const {
return old_header; };
114 void set_format_07_compatibility() { old_header =
true; };
121 infinint *first_size;
122 infinint *slice_size;
125 void copy_from(
const header & ref);
126 void free_pointers();
127 void fill_from(user_interaction & ui,
const tlv_list & list);
128 tlv_list build_tlv_list(user_interaction & ui)
const;