74 INLINE
const std::string &get_name()
const;
75 int find_seek_index(
const std::string &name)
const;
78 virtual const DCField *as_field()
const;
85 bool check_match(
const std::string &description,
DCFile *dcfile =
nullptr)
const;
88 virtual void set_name(
const std::string &name);
89 INLINE
bool has_fixed_byte_size()
const;
90 INLINE
size_t get_fixed_byte_size()
const;
91 INLINE
bool has_fixed_structure()
const;
92 INLINE
bool has_range_limits()
const;
93 INLINE
size_t get_num_length_bytes()
const;
95 INLINE
bool has_nested_fields()
const;
96 INLINE
int get_num_nested_fields()
const;
97 virtual int calc_num_nested_fields(
size_t length_bytes)
const;
100 virtual bool validate_num_nested_fields(
int num_nested_fields)
const;
102 INLINE DCPackType get_pack_type()
const;
104 virtual void pack_double(
DCPackData &pack_data,
double value,
105 bool &pack_error,
bool &range_error)
const;
106 virtual void pack_int(
DCPackData &pack_data,
int value,
107 bool &pack_error,
bool &range_error)
const;
108 virtual void pack_uint(
DCPackData &pack_data,
unsigned int value,
109 bool &pack_error,
bool &range_error)
const;
110 virtual void pack_int64(
DCPackData &pack_data, int64_t value,
111 bool &pack_error,
bool &range_error)
const;
112 virtual void pack_uint64(
DCPackData &pack_data, uint64_t value,
113 bool &pack_error,
bool &range_error)
const;
114 virtual void pack_string(
DCPackData &pack_data,
const std::string &value,
115 bool &pack_error,
bool &range_error)
const;
116 virtual void pack_blob(
DCPackData &pack_data,
const vector_uchar &value,
117 bool &pack_error,
bool &range_error)
const;
118 virtual bool pack_default_value(
DCPackData &pack_data,
bool &pack_error)
const;
120 virtual void unpack_double(
const char *data,
size_t length,
size_t &p,
121 double &value,
bool &pack_error,
bool &range_error)
const;
122 virtual void unpack_int(
const char *data,
size_t length,
size_t &p,
123 int &value,
bool &pack_error,
bool &range_error)
const;
124 virtual void unpack_uint(
const char *data,
size_t length,
size_t &p,
125 unsigned int &value,
bool &pack_error,
bool &range_error)
const;
126 virtual void unpack_int64(
const char *data,
size_t length,
size_t &p,
127 int64_t &value,
bool &pack_error,
bool &range_error)
const;
128 virtual void unpack_uint64(
const char *data,
size_t length,
size_t &p,
129 uint64_t &value,
bool &pack_error,
bool &range_error)
const;
130 virtual void unpack_string(
const char *data,
size_t length,
size_t &p,
131 std::string &value,
bool &pack_error,
bool &range_error)
const;
132 virtual void unpack_blob(
const char *data,
size_t length,
size_t &p,
133 vector_uchar &value,
bool &pack_error,
bool &range_error)
const;
134 virtual bool unpack_validate(
const char *data,
size_t length,
size_t &p,
135 bool &pack_error,
bool &range_error)
const;
136 virtual bool unpack_skip(
const char *data,
size_t length,
size_t &p,
137 bool &pack_error)
const;
142 INLINE
static void do_pack_int8(
char *buffer,
int value);
143 INLINE
static void do_pack_int16(
char *buffer,
int value);
144 INLINE
static void do_pack_int32(
char *buffer,
int value);
145 INLINE
static void do_pack_int64(
char *buffer, int64_t value);
146 INLINE
static void do_pack_uint8(
char *buffer,
unsigned int value);
147 INLINE
static void do_pack_uint16(
char *buffer,
unsigned int value);
148 INLINE
static void do_pack_uint32(
char *buffer,
unsigned int value);
149 INLINE
static void do_pack_uint64(
char *buffer, uint64_t value);
150 INLINE
static void do_pack_float64(
char *buffer,
double value);
152 INLINE
static int do_unpack_int8(
const char *buffer);
153 INLINE
static int do_unpack_int16(
const char *buffer);
154 INLINE
static int do_unpack_int32(
const char *buffer);
155 INLINE
static int64_t do_unpack_int64(
const char *buffer);
156 INLINE
static unsigned int do_unpack_uint8(
const char *buffer);
157 INLINE
static unsigned int do_unpack_uint16(
const char *buffer);
158 INLINE
static unsigned int do_unpack_uint32(
const char *buffer);
159 INLINE
static uint64_t do_unpack_uint64(
const char *buffer);
160 INLINE
static double do_unpack_float64(
const char *buffer);
162 INLINE
static void validate_int_limits(
int value,
int num_bits,
164 INLINE
static void validate_int64_limits(int64_t value,
int num_bits,
166 INLINE
static void validate_uint_limits(
unsigned int value,
int num_bits,
168 INLINE
static void validate_uint64_limits(uint64_t value,
int num_bits,
180 virtual bool do_check_match_simple_parameter(
const DCSimpleParameter *other)
const;
181 virtual bool do_check_match_class_parameter(
const DCClassParameter *other)
const;
182 virtual bool do_check_match_switch_parameter(
const DCSwitchParameter *other)
const;
183 virtual bool do_check_match_array_parameter(
const DCArrayParameter *other)
const;
184 virtual bool do_check_match_atomic_field(
const DCAtomicField *other)
const;
185 virtual bool do_check_match_molecular_field(
const DCMolecularField *other)
const;
192 bool _has_fixed_byte_size;
193 size_t _fixed_byte_size;
194 bool _has_fixed_structure;
195 bool _has_range_limits;
196 size_t _num_length_bytes;
197 bool _has_nested_fields;
198 int _num_nested_fields;
199 DCPackType _pack_type;