17 #ifndef YAMICORE_PARAMETERS_H_INCLUDED 18 #define YAMICORE_PARAMETERS_H_INCLUDED 20 #include "allocator.h" 23 #include "parameter_type.h" 24 #include "serializable.h" 37 virtual ~dump_sink() {}
39 virtual void indent(std::size_t spaces) = 0;
40 virtual void dump(std::size_t v) = 0;
41 virtual void dump(
bool v) = 0;
42 virtual void dump(
int v) = 0;
43 virtual void dump(
long long v) = 0;
44 virtual void dump(
double v) = 0;
45 virtual void dump(
const char * str) = 0;
46 virtual void dump(
const char * str, std::size_t str_len) = 0;
54 class parameter_entry;
55 class parameter_iterator;
113 void * working_area = NULL, std::size_t area_size = 0);
138 result set_boolean(
const char * name, std::size_t name_length,
145 result set_boolean(
const char * name,
bool value);
158 result get_boolean(
const char * name, std::size_t name_length,
165 result get_boolean(
const char * name,
bool & value)
const;
178 result set_integer(
const char * name, std::size_t name_length,
int value);
184 result set_integer(
const char * name,
int value);
197 result get_integer(
const char * name, std::size_t name_length,
204 result get_integer(
const char * name,
int & value)
const;
217 result set_long_long(
const char * name, std::size_t name_length,
224 result set_long_long(
const char * name,
long long value);
237 result get_long_long(
const char * name, std::size_t name_length,
238 long long & value)
const;
244 result get_long_long(
const char * name,
long long & value)
const;
257 result set_double_float(
const char * name, std::size_t name_length,
264 result set_double_float(
const char * name,
double value);
277 result get_double_float(
const char * name, std::size_t name_length,
278 double & value)
const;
284 result get_double_float(
const char * name,
double & value)
const;
301 result set_string(
const char * name, std::size_t name_length,
302 const char * value, std::size_t value_length);
308 result set_string(
const char * name,
const char * value);
327 result set_string_shallow(
const char * name, std::size_t name_length,
328 const char * value, std::size_t value_length);
334 result set_string_shallow(
const char * name,
const char * value);
348 result get_string(
const char * name, std::size_t name_length,
349 const char * & value, std::size_t & value_length)
const;
355 result get_string(
const char * name,
356 const char * & value, std::size_t & value_length)
const;
372 result set_binary(
const char * name, std::size_t name_length,
373 const void * value, std::size_t value_length);
379 result set_binary(
const char * name,
380 const void * value, std::size_t value_length);
398 result set_binary_shallow(
const char * name, std::size_t name_length,
399 const void * value, std::size_t value_length);
405 result set_binary_shallow(
const char * name,
406 const void * value, std::size_t value_length);
420 result get_binary(
const char * name, std::size_t name_length,
421 const void * & value, std::size_t & value_length)
const;
427 result get_binary(
const char * name,
428 const void * & value, std::size_t & value_length)
const;
447 result set_boolean_array(
const char * name, std::size_t name_length,
448 const bool * values, std::size_t array_length);
454 result set_boolean_array(
const char * name,
455 const bool * values, std::size_t array_length);
473 result set_boolean_array_shallow(
474 const char * name, std::size_t name_length,
475 const bool * values, std::size_t array_length);
482 result set_boolean_array_shallow(
const char * name,
483 const bool * values, std::size_t array_length);
497 result create_boolean_array(
const char * name, std::size_t name_length,
498 std::size_t array_length,
bool * & array);
505 result create_boolean_array(
const char * name,
506 std::size_t array_length,
bool * & array);
523 result get_boolean_array(
const char * name, std::size_t name_length,
524 bool * & values, std::size_t & array_length)
const;
530 result get_boolean_array(
const char * name,
531 bool * & values, std::size_t & array_length)
const;
548 result set_integer_array(
const char * name, std::size_t name_length,
549 const int * values, std::size_t array_length);
555 result set_integer_array(
const char * name,
556 const int * values, std::size_t array_length);
574 result set_integer_array_shallow(
575 const char * name, std::size_t name_length,
576 const int * values, std::size_t array_length);
583 result set_integer_array_shallow(
const char * name,
584 const int * values, std::size_t array_length);
598 result create_integer_array(
const char * name, std::size_t name_length,
599 std::size_t array_length,
int * & array);
606 result create_integer_array(
const char * name,
607 std::size_t array_length,
int * & array);
624 result get_integer_array(
const char * name, std::size_t name_length,
625 int * & values, std::size_t & array_length)
const;
631 result get_integer_array(
const char * name,
632 int * & values, std::size_t & array_length)
const;
650 result set_long_long_array(
const char * name, std::size_t name_length,
651 const long long * values, std::size_t array_length);
657 result set_long_long_array(
const char * name,
658 const long long * values, std::size_t array_length);
677 result set_long_long_array_shallow(
678 const char * name, std::size_t name_length,
679 const long long * values, std::size_t array_length);
686 result set_long_long_array_shallow(
const char * name,
687 const long long * values, std::size_t array_length);
702 result create_long_long_array(
const char * name, std::size_t name_length,
703 std::size_t array_length,
long long * & array);
710 result create_long_long_array(
const char * name,
711 std::size_t array_length,
long long * & array);
729 result get_long_long_array(
const char * name, std::size_t name_length,
730 long long * & values, std::size_t & array_length)
const;
736 result get_long_long_array(
const char * name,
737 long long * & values, std::size_t & array_length)
const;
754 result set_double_float_array(
const char * name, std::size_t name_length,
755 const double * values, std::size_t array_length);
761 result set_double_float_array(
const char * name,
762 const double * values, std::size_t array_length);
780 result set_double_float_array_shallow(
781 const char * name, std::size_t name_length,
782 const double * values, std::size_t array_length);
789 result set_double_float_array_shallow(
const char * name,
790 const double * values, std::size_t array_length);
805 result create_double_float_array(
806 const char * name, std::size_t name_length,
807 std::size_t array_length,
double * & array);
814 result create_double_float_array(
816 std::size_t array_length,
double * & array);
833 result get_double_float_array(
const char * name, std::size_t name_length,
834 double * & values, std::size_t & array_length)
const;
840 result get_double_float_array(
const char * name,
841 double * & values, std::size_t & array_length)
const;
857 result create_string_array(
const char * name, std::size_t name_length,
858 std::size_t array_length);
865 result create_string_array(
const char * name, std::size_t array_length);
887 result set_string_in_array(
const char * name, std::size_t name_length,
888 std::size_t index,
const char * value, std::size_t value_length);
895 result set_string_in_array(
const char * name, std::size_t index,
910 result get_string_array_length(
const char * name, std::size_t name_length,
911 std::size_t & array_length)
const;
918 result get_string_array_length(
const char * name,
919 std::size_t & array_length)
const;
935 result get_string_in_array(
const char * name, std::size_t name_length,
937 const char * & value, std::size_t & value_length)
const;
944 result get_string_in_array(
const char * name, std::size_t index,
945 const char * & value, std::size_t & value_length)
const;
961 result create_binary_array(
const char * name, std::size_t name_length,
962 std::size_t array_length);
969 result create_binary_array(
const char * name, std::size_t array_length);
990 result set_binary_in_array(
const char * name, std::size_t name_length,
991 std::size_t index,
const void * value, std::size_t value_length);
998 result set_binary_in_array(
const char * name, std::size_t index,
999 const void * value, std::size_t value_length);
1013 result get_binary_array_length(
const char * name, std::size_t name_length,
1014 std::size_t & array_length)
const;
1021 result get_binary_array_length(
const char * name,
1022 std::size_t & array_length)
const;
1038 result get_binary_in_array(
const char * name, std::size_t name_length,
1040 const void * & value, std::size_t & value_length)
const;
1047 result get_binary_in_array(
const char * name, std::size_t index,
1048 const void * & value, std::size_t & value_length)
const;
1064 result create_nested_parameters(
1065 const char * name, std::size_t name_length,
1085 result get_nested_parameters(
1086 const char * name, std::size_t name_length,
1093 result get_nested_parameters(
1094 const char * name,
parameters * & params)
const;
1110 result create_nested_array(
const char * name, std::size_t name_length,
1111 std::size_t array_length);
1118 result create_nested_array(
const char * name, std::size_t array_length);
1132 result get_nested_array_length(
const char * name, std::size_t name_length,
1133 std::size_t & array_length)
const;
1140 result get_nested_array_length(
const char * name,
1141 std::size_t & array_length)
const;
1157 result get_nested_in_array(
const char * name, std::size_t name_length,
1167 result get_nested_in_array(
const char * name, std::size_t index,
1183 result remove(
const char * name, std::size_t name_length);
1189 result remove(
const char * name);
1198 std::size_t size()
const;
1209 result get_type(
const char * name, std::size_t name_length,
1238 result find(
const char * name, std::size_t name_length,
1277 virtual result get_serialize_buffer_size(std::size_t & size)
const;
1299 virtual result serialize(
char * * buffers,
1300 const std::size_t * buffer_sizes,
1301 std::size_t num_of_buffers)
const;
1333 result deserialize(
const char * * buffers,
1334 const std::size_t * buffer_sizes,
1335 std::size_t num_of_buffers);
1338 void dump(details::dump_sink & sink, std::size_t indent_length = 0)
const;
1341 details::allocator own_allocator_;
1342 details::allocator & allocator_;
1343 bool uses_private_area_;
1344 details::entry * data_;
1345 std::size_t num_of_entries_;
1347 parameters(details::allocator & allocator,
bool private_area);
1359 #endif // YAMICORE_PARAMETERS_H_INCLUDED Collection of message parameters.
Definition: parameters.h:91
parameter_type
Type of parameter entry.
Definition: parameter_type.h:27
Namespace devoted for everything related to YAMI4.
Definition: agent.h:25
Iterator to parameter entries.
Definition: parameter_iterator.h:46
Read-only view on the parameters entry.
Definition: parameter_entry.h:42
Common interface for serializable data source.
Definition: serializable.h:35
result
General type for reporting success and error states.
Definition: core.h:32