YAMI4 Core Library 2.0.0
Messaging Solution for Distributed Systems
Loading...
Searching...
No Matches
parameters.h
1// Copyright Maciej Sobczak 2008-2022.
2// This file is part of YAMI4.
3// See the package-level LICENSE.txt file.
4
5#ifndef YAMICORE_PARAMETERS_H_INCLUDED
6#define YAMICORE_PARAMETERS_H_INCLUDED
7
8#include "allocator.h"
9#include "core.h"
10#include "dll.h"
11#include "parameter_type.h"
12#include "serializable.h"
13
14namespace yami
15{
16
17namespace details
18{
19struct entry;
20
21// for unit tests, to avoid dependency on IOStreams from core
23{
24public:
25 virtual ~dump_sink() {}
26
27 virtual void indent(std::size_t spaces) = 0;
28 virtual void dump(bool v) = 0;
29 virtual void dump(int v) = 0;
30 virtual void dump(long long v) = 0;
31 virtual void dump(unsigned int v) = 0;
32 virtual void dump(unsigned long long v) = 0;
33 virtual void dump(double v) = 0;
34 virtual void dump(const char * str) = 0;
35 virtual void dump(const char * str, std::size_t str_len) = 0;
36};
37
38} // namespace details
39
40namespace core
41{
42
43class parameter_entry;
44class parameter_iterator;
45
82class DLL parameters : public serializable
83{
84public:
88 explicit parameters();
89
94 explicit parameters(allocator & alloc);
95
105
106 // single-value operations
107
119 result set_boolean(const char * name, std::size_t name_length,
120 bool value);
121
126 result set_boolean(const char * name, bool value);
127
139 result get_boolean(const char * name, std::size_t name_length,
140 bool & value) const;
141
146 result get_boolean(const char * name, bool & value) const;
147
159 result set_integer(const char * name, std::size_t name_length, int value);
160
165 result set_integer(const char * name, int value);
166
178 result get_integer(const char * name, std::size_t name_length,
179 int & value) const;
180
185 result get_integer(const char * name, int & value) const;
186
198 result set_long_long(const char * name, std::size_t name_length,
199 long long value);
200
205 result set_long_long(const char * name, long long value);
206
218 result get_long_long(const char * name, std::size_t name_length,
219 long long & value) const;
220
225 result get_long_long(const char * name, long long & value) const;
226
238 result set_word(const char * name, std::size_t name_length, unsigned int value);
239
244 result set_word(const char * name, unsigned int value);
245
257 result get_word(const char * name, std::size_t name_length,
258 unsigned int & value) const;
259
264 result get_word(const char * name, unsigned int & value) const;
265
277 result set_long_long_word(const char * name, std::size_t name_length,
278 unsigned long long value);
279
284 result set_long_long_word(const char * name, unsigned long long value);
285
297 result get_long_long_word(const char * name, std::size_t name_length,
298 unsigned long long & value) const;
299
304 result get_long_long_word(const char * name, unsigned long long & value) const;
305
317 result set_double_float(const char * name, std::size_t name_length,
318 double value);
319
324 result set_double_float(const char * name, double value);
325
337 result get_double_float(const char * name, std::size_t name_length,
338 double & value) const;
339
344 result get_double_float(const char * name, double & value) const;
345
361 result set_string(const char * name, std::size_t name_length,
362 const char * value, std::size_t value_length);
363
368 result set_string(const char * name, const char * value);
369
387 result set_string_shallow(const char * name, std::size_t name_length,
388 const char * value, std::size_t value_length);
389
394 result set_string_shallow(const char * name, const char * value);
395
408 result get_string(const char * name, std::size_t name_length,
409 const char * & value, std::size_t & value_length) const;
410
415 result get_string(const char * name,
416 const char * & value, std::size_t & value_length) const;
417
432 result set_binary(const char * name, std::size_t name_length,
433 const void * value, std::size_t value_length);
434
439 result set_binary(const char * name,
440 const void * value, std::size_t value_length);
441
458 result set_binary_shallow(const char * name, std::size_t name_length,
459 const void * value, std::size_t value_length);
460
465 result set_binary_shallow(const char * name,
466 const void * value, std::size_t value_length);
467
480 result get_binary(const char * name, std::size_t name_length,
481 const void * & value, std::size_t & value_length) const;
482
487 result get_binary(const char * name,
488 const void * & value, std::size_t & value_length) const;
489
490 // array operations
491
507 result set_boolean_array(const char * name, std::size_t name_length,
508 const bool * values, std::size_t array_length);
509
514 result set_boolean_array(const char * name,
515 const bool * values, std::size_t array_length);
516
534 const char * name, std::size_t name_length,
535 const bool * values, std::size_t array_length);
536
543 const bool * values, std::size_t array_length);
544
557 result create_boolean_array(const char * name, std::size_t name_length,
558 std::size_t array_length, bool * & array);
559
565 result create_boolean_array(const char * name,
566 std::size_t array_length, bool * & array);
567
583 result get_boolean_array(const char * name, std::size_t name_length,
584 bool * & values, std::size_t & array_length) const;
585
590 result get_boolean_array(const char * name,
591 bool * & values, std::size_t & array_length) const;
592
608 result set_integer_array(const char * name, std::size_t name_length,
609 const int * values, std::size_t array_length);
610
615 result set_integer_array(const char * name,
616 const int * values, std::size_t array_length);
617
635 const char * name, std::size_t name_length,
636 const int * values, std::size_t array_length);
637
644 const int * values, std::size_t array_length);
645
658 result create_integer_array(const char * name, std::size_t name_length,
659 std::size_t array_length, int * & array);
660
666 result create_integer_array(const char * name,
667 std::size_t array_length, int * & array);
668
684 result get_integer_array(const char * name, std::size_t name_length,
685 int * & values, std::size_t & array_length) const;
686
691 result get_integer_array(const char * name,
692 int * & values, std::size_t & array_length) const;
693
710 result set_long_long_array(const char * name, std::size_t name_length,
711 const long long * values, std::size_t array_length);
712
717 result set_long_long_array(const char * name,
718 const long long * values, std::size_t array_length);
719
738 const char * name, std::size_t name_length,
739 const long long * values, std::size_t array_length);
740
747 const long long * values, std::size_t array_length);
748
762 result create_long_long_array(const char * name, std::size_t name_length,
763 std::size_t array_length, long long * & array);
764
771 std::size_t array_length, long long * & array);
772
789 result get_long_long_array(const char * name, std::size_t name_length,
790 long long * & values, std::size_t & array_length) const;
791
796 result get_long_long_array(const char * name,
797 long long * & values, std::size_t & array_length) const;
798
814 result set_word_array(const char * name, std::size_t name_length,
815 const unsigned int * values, std::size_t array_length);
816
821 result set_word_array(const char * name,
822 const unsigned int * values, std::size_t array_length);
823
841 const char * name, std::size_t name_length,
842 const unsigned int * values, std::size_t array_length);
843
850 const unsigned int * values, std::size_t array_length);
851
864 result create_word_array(const char * name, std::size_t name_length,
865 std::size_t array_length, unsigned int * & array);
866
872 result create_word_array(const char * name,
873 std::size_t array_length, unsigned int * & array);
874
890 result get_word_array(const char * name, std::size_t name_length,
891 unsigned int * & values, std::size_t & array_length) const;
892
897 result get_word_array(const char * name,
898 unsigned int * & values, std::size_t & array_length) const;
899
916 result set_long_long_word_array(const char * name, std::size_t name_length,
917 const unsigned long long * values, std::size_t array_length);
918
924 const unsigned long long * values, std::size_t array_length);
925
944 const char * name, std::size_t name_length,
945 const unsigned long long * values, std::size_t array_length);
946
953 const unsigned long long * values, std::size_t array_length);
954
968 result create_long_long_word_array(const char * name, std::size_t name_length,
969 std::size_t array_length, unsigned long long * & array);
970
977 std::size_t array_length, unsigned long long * & array);
978
995 result get_long_long_word_array(const char * name, std::size_t name_length,
996 unsigned long long * & values, std::size_t & array_length) const;
997
1003 unsigned long long * & values, std::size_t & array_length) const;
1004
1020 result set_double_float_array(const char * name, std::size_t name_length,
1021 const double * values, std::size_t array_length);
1022
1028 const double * values, std::size_t array_length);
1029
1047 const char * name, std::size_t name_length,
1048 const double * values, std::size_t array_length);
1049
1056 const double * values, std::size_t array_length);
1057
1072 const char * name, std::size_t name_length,
1073 std::size_t array_length, double * & array);
1074
1081 const char * name,
1082 std::size_t array_length, double * & array);
1083
1099 result get_double_float_array(const char * name, std::size_t name_length,
1100 double * & values, std::size_t & array_length) const;
1101
1107 double * & values, std::size_t & array_length) const;
1108
1123 result create_string_array(const char * name, std::size_t name_length,
1124 std::size_t array_length);
1125
1131 result create_string_array(const char * name, std::size_t array_length);
1132
1153 result set_string_in_array(const char * name, std::size_t name_length,
1154 std::size_t index, const char * value, std::size_t value_length);
1155
1161 result set_string_in_array(const char * name, std::size_t index,
1162 const char * value);
1163
1176 result get_string_array_length(const char * name, std::size_t name_length,
1177 std::size_t & array_length) const;
1178
1185 std::size_t & array_length) const;
1186
1201 result get_string_in_array(const char * name, std::size_t name_length,
1202 std::size_t index,
1203 const char * & value, std::size_t & value_length) const;
1204
1210 result get_string_in_array(const char * name, std::size_t index,
1211 const char * & value, std::size_t & value_length) const;
1212
1227 result create_binary_array(const char * name, std::size_t name_length,
1228 std::size_t array_length);
1229
1235 result create_binary_array(const char * name, std::size_t array_length);
1236
1256 result set_binary_in_array(const char * name, std::size_t name_length,
1257 std::size_t index, const void * value, std::size_t value_length);
1258
1264 result set_binary_in_array(const char * name, std::size_t index,
1265 const void * value, std::size_t value_length);
1266
1279 result get_binary_array_length(const char * name, std::size_t name_length,
1280 std::size_t & array_length) const;
1281
1288 std::size_t & array_length) const;
1289
1304 result get_binary_in_array(const char * name, std::size_t name_length,
1305 std::size_t index,
1306 const void * & value, std::size_t & value_length) const;
1307
1313 result get_binary_in_array(const char * name, std::size_t index,
1314 const void * & value, std::size_t & value_length) const;
1315
1316 // support for data nesting
1317
1331 const char * name, std::size_t name_length,
1332 parameters * & params);
1333
1338 result create_nested_parameters(const char * name, parameters * & params);
1339
1352 const char * name, std::size_t name_length,
1353 parameters * & params) const;
1354
1360 const char * name, parameters * & params) const;
1361
1376 result create_nested_array(const char * name, std::size_t name_length,
1377 std::size_t array_length);
1378
1384 result create_nested_array(const char * name, std::size_t array_length);
1385
1398 result get_nested_array_length(const char * name, std::size_t name_length,
1399 std::size_t & array_length) const;
1400
1407 std::size_t & array_length) const;
1408
1423 result get_nested_in_array(const char * name, std::size_t name_length,
1424 std::size_t index,
1425 parameters * & nested) const;
1426
1433 result get_nested_in_array(const char * name, std::size_t index,
1434 parameters * & nested) const;
1435
1436 // other operations
1437
1449 result remove(const char * name, std::size_t name_length);
1450
1455 result remove(const char * name);
1456
1457 // inspection
1458
1464 std::size_t size() const;
1465
1475 result get_type(const char * name, std::size_t name_length,
1476 parameter_type & t) const;
1477
1482 result get_type(const char * name, parameter_type & t) const;
1483
1484 // iterator support
1485
1494
1504 result find(const char * name, std::size_t name_length,
1505 parameter_entry & entry) const;
1506
1512 result find(const char * name, parameter_entry & entry) const;
1513
1524
1530 void clear();
1531
1532 // serialization
1533
1543 virtual result get_serialize_buffer_size(std::size_t & size) const;
1544
1565 virtual result serialize(char * * buffers,
1566 const std::size_t * buffer_sizes,
1567 std::size_t num_of_buffers) const;
1568
1599 result deserialize(const char * * buffers,
1600 const std::size_t * buffer_sizes,
1601 std::size_t num_of_buffers);
1602
1603 // for unit tests
1604 void dump(details::dump_sink & sink, std::size_t indent_length = 0) const;
1605
1606 // used internally
1607 allocator & allocator_;
1608 details::entry * data_;
1609 std::size_t num_of_entries_;
1610
1611private:
1612
1613 standard_allocator default_allocator_;
1614
1615 parameters(const parameters &);
1616 void operator=(const parameters &);
1617};
1618
1619} // namespace core
1620
1621} // namespace yami
1622
1623#endif // YAMICORE_PARAMETERS_H_INCLUDED
Common interface for the custom memory allocator.
Definition: allocator.h:20
Read-only view on the parameters entry.
Definition: parameter_entry.h:31
Iterator to parameter entries.
Definition: parameter_iterator.h:35
Collection of message parameters.
Definition: parameters.h:83
result get_string(const char *name, const char *&value, std::size_t &value_length) const
Extracts the string value from the given entry.
result set_integer_array(const char *name, std::size_t name_length, const int *values, std::size_t array_length)
Inserts new entry of type int array.
result set_boolean_array(const char *name, const bool *values, std::size_t array_length)
Inserts new entry of type bool array.
result get_long_long(const char *name, std::size_t name_length, long long &value) const
Extracts the long long value from the given entry.
result get_nested_in_array(const char *name, std::size_t index, parameters *&nested) const
Extracts nested parameters value from nested array.
result set_double_float_array_shallow(const char *name, std::size_t name_length, const double *values, std::size_t array_length)
Inserts new entry of type double array.
result create_binary_array(const char *name, std::size_t name_length, std::size_t array_length)
Creates new empty entry of type binary array.
result set_binary(const char *name, const void *value, std::size_t value_length)
Inserts new entry of type binary.
result set_word(const char *name, std::size_t name_length, unsigned int value)
Inserts new entry of type unsigned int.
result create_string_array(const char *name, std::size_t name_length, std::size_t array_length)
Creates new empty entry of type string array.
result get_string_array_length(const char *name, std::size_t name_length, std::size_t &array_length) const
Extracts the length of string array.
result get_string_in_array(const char *name, std::size_t name_length, std::size_t index, const char *&value, std::size_t &value_length) const
Extracts string value from string array.
result set_integer_array_shallow(const char *name, const int *values, std::size_t array_length)
Inserts new entry of type int array.
result set_boolean_array_shallow(const char *name, const bool *values, std::size_t array_length)
Inserts new entry of type bool array.
result remove(const char *name, std::size_t name_length)
Removes the given entry.
result create_nested_array(const char *name, std::size_t name_length, std::size_t array_length)
Creates new empty entry of type nested parameters array.
result set_boolean(const char *name, std::size_t name_length, bool value)
Inserts new entry of type bool.
result find(const char *name, std::size_t name_length, parameter_entry &entry) const
Finds the given entry.
result set_long_long_array_shallow(const char *name, std::size_t name_length, const long long *values, std::size_t array_length)
Inserts new entry of type long long array.
virtual result serialize(char **buffers, const std::size_t *buffer_sizes, std::size_t num_of_buffers) const
Serializes current content into given buffer(s).
result set_long_long(const char *name, std::size_t name_length, long long value)
Inserts new entry of type long long.
result get_binary_array_length(const char *name, std::size_t &array_length) const
Extracts the length of binary array.
result set_word_array(const char *name, const unsigned int *values, std::size_t array_length)
Inserts new entry of type unsigned int array.
result set_long_long_array(const char *name, const long long *values, std::size_t array_length)
Inserts new entry of type long long array.
result create_word_array(const char *name, std::size_t name_length, std::size_t array_length, unsigned int *&array)
Creates new uninitialized entry of type unsigned int array.
result deserialize(const char **buffers, const std::size_t *buffer_sizes, std::size_t num_of_buffers)
Deserializes from the given buffer(s).
result get_binary_in_array(const char *name, std::size_t index, const void *&value, std::size_t &value_length) const
Extracts binary value from binary array.
result create_long_long_word_array(const char *name, std::size_t name_length, std::size_t array_length, unsigned long long *&array)
Creates new uninitialized entry of type unsigned long long array.
result create_long_long_array(const char *name, std::size_t array_length, long long *&array)
Creates new uninitialized entry of type long long array.
result set_integer_array_shallow(const char *name, std::size_t name_length, const int *values, std::size_t array_length)
Inserts new entry of type int array.
result get_binary_array_length(const char *name, std::size_t name_length, std::size_t &array_length) const
Extracts the length of binary array.
result set_double_float_array_shallow(const char *name, const double *values, std::size_t array_length)
Inserts new entry of type double array.
result get_long_long_word(const char *name, std::size_t name_length, unsigned long long &value) const
Extracts the unsigned long long value from the given entry.
result create_binary_array(const char *name, std::size_t array_length)
Creates new empty entry of type binary array.
result get_nested_parameters(const char *name, parameters *&params) const
Extracts the nested parameters object from the given entry.
result get_binary(const char *name, std::size_t name_length, const void *&value, std::size_t &value_length) const
Extracts the binary value from the given entry.
result create_double_float_array(const char *name, std::size_t array_length, double *&array)
Creates new uninitialized entry of type double float array.
result set_long_long_word_array(const char *name, std::size_t name_length, const unsigned long long *values, std::size_t array_length)
Inserts new entry of type unsigned long long array.
result set_word_array_shallow(const char *name, const unsigned int *values, std::size_t array_length)
Inserts new entry of type unsigned int array.
result get_double_float(const char *name, std::size_t name_length, double &value) const
Extracts the double value from the given entry.
result get_long_long_word_array(const char *name, unsigned long long *&values, std::size_t &array_length) const
Extracts the array of unsigned long long values from the given entry.
result get_integer(const char *name, std::size_t name_length, int &value) const
Extracts the int value from the given entry.
result get_double_float_array(const char *name, std::size_t name_length, double *&values, std::size_t &array_length) const
Extracts the array of double values from the given entry.
result set_binary_in_array(const char *name, std::size_t name_length, std::size_t index, const void *value, std::size_t value_length)
Inserts new binary value to binary array.
result find(const char *name, parameter_entry &entry) const
Finds the given entry.
result create_double_float_array(const char *name, std::size_t name_length, std::size_t array_length, double *&array)
Creates new uninitialized entry of type double float array.
result set_long_long_word_array_shallow(const char *name, const unsigned long long *values, std::size_t array_length)
Inserts new entry of type unsigned long long array.
result set_string(const char *name, std::size_t name_length, const char *value, std::size_t value_length)
Inserts new entry of type string.
result create_nested_array(const char *name, std::size_t array_length)
Creates new empty entry of type nested parameters array.
std::size_t size() const
Returns the size of the collection.
parameters(allocator &alloc)
Constructor.
result get_type(const char *name, parameter_type &t) const
Extracts the type of the given entry.
result set_string_in_array(const char *name, std::size_t index, const char *value)
Inserts new string value to string array.
result get_double_float(const char *name, double &value) const
Extracts the double value from the given entry.
result remove(const char *name)
Removes the given entry.
result get_word(const char *name, unsigned int &value) const
Extracts the unsigned int value from the given entry.
result get_long_long_word_array(const char *name, std::size_t name_length, unsigned long long *&values, std::size_t &array_length) const
Extracts the array of unsigned long long values from the given entry.
result get_iterator(parameter_iterator &it) const
Extracts the iterator to all entries.
result create_long_long_array(const char *name, std::size_t name_length, std::size_t array_length, long long *&array)
Creates new uninitialized entry of type long long array.
result get_boolean_array(const char *name, bool *&values, std::size_t &array_length) const
Extracts the array of bool values from the given entry.
result set_word_array_shallow(const char *name, std::size_t name_length, const unsigned int *values, std::size_t array_length)
Inserts new entry of type unsigned int array.
result get_nested_in_array(const char *name, std::size_t name_length, std::size_t index, parameters *&nested) const
Extracts nested parameters value from nested array.
result set_long_long(const char *name, long long value)
Inserts new entry of type long long.
result set_double_float(const char *name, double value)
Inserts new entry of type double.
result get_boolean(const char *name, std::size_t name_length, bool &value) const
Extracts the bool value from the given entry.
virtual result get_serialize_buffer_size(std::size_t &size) const
Finds the total size of serialization buffer.
result set_boolean_array(const char *name, std::size_t name_length, const bool *values, std::size_t array_length)
Inserts new entry of type bool array.
result get_binary(const char *name, const void *&value, std::size_t &value_length) const
Extracts the binary value from the given entry.
result set_long_long_array(const char *name, std::size_t name_length, const long long *values, std::size_t array_length)
Inserts new entry of type long long array.
result get_long_long(const char *name, long long &value) const
Extracts the long long value from the given entry.
result get_string_in_array(const char *name, std::size_t index, const char *&value, std::size_t &value_length) const
Extracts string value from string array.
result set_long_long_word(const char *name, std::size_t name_length, unsigned long long value)
Inserts new entry of type unsigned long long.
result get_integer_array(const char *name, int *&values, std::size_t &array_length) const
Extracts the array of int values from the given entry.
result create_string_array(const char *name, std::size_t array_length)
Creates new empty entry of type string array.
result create_integer_array(const char *name, std::size_t array_length, int *&array)
Creates new uninitialized entry of type int array.
result set_long_long_word_array(const char *name, const unsigned long long *values, std::size_t array_length)
Inserts new entry of type unsigned long long array.
result set_boolean(const char *name, bool value)
Inserts new entry of type bool.
result get_long_long_array(const char *name, long long *&values, std::size_t &array_length) const
Extracts the array of long long values from the given entry.
result set_word_array(const char *name, std::size_t name_length, const unsigned int *values, std::size_t array_length)
Inserts new entry of type unsigned int array.
result set_integer_array(const char *name, const int *values, std::size_t array_length)
Inserts new entry of type int array.
result set_word(const char *name, unsigned int value)
Inserts new entry of type unsigned int.
result create_nested_parameters(const char *name, parameters *&params)
Creates nested parameters entry.
result get_integer(const char *name, int &value) const
Extracts the int value from the given entry.
result set_double_float_array(const char *name, std::size_t name_length, const double *values, std::size_t array_length)
Inserts new entry of type double array.
result set_integer(const char *name, int value)
Inserts new entry of type int.
result merge_from(const parameters &other)
Merges entries from the given parameters object.
result set_double_float_array(const char *name, const double *values, std::size_t array_length)
Inserts new entry of type double array.
~parameters()
Destructor.
result set_binary_shallow(const char *name, const void *value, std::size_t value_length)
Inserts new entry of type binary.
result set_long_long_word(const char *name, unsigned long long value)
Inserts new entry of type unsigned long long.
result get_nested_array_length(const char *name, std::size_t name_length, std::size_t &array_length) const
Extracts the length of nested parameters array.
result set_binary_in_array(const char *name, std::size_t index, const void *value, std::size_t value_length)
Inserts new binary value to binary array.
result set_integer(const char *name, std::size_t name_length, int value)
Inserts new entry of type int.
result get_binary_in_array(const char *name, std::size_t name_length, std::size_t index, const void *&value, std::size_t &value_length) const
Extracts binary value from binary array.
result set_long_long_array_shallow(const char *name, const long long *values, std::size_t array_length)
Inserts new entry of type long long array.
result get_boolean_array(const char *name, std::size_t name_length, bool *&values, std::size_t &array_length) const
Extracts the array of bool values from the given entry.
result set_binary_shallow(const char *name, std::size_t name_length, const void *value, std::size_t value_length)
Inserts new entry of type binary.
result get_word_array(const char *name, unsigned int *&values, std::size_t &array_length) const
Extracts the array of unsigned int values from the given entry.
result create_boolean_array(const char *name, std::size_t array_length, bool *&array)
Creates new uninitialized entry of type bool array.
result set_boolean_array_shallow(const char *name, std::size_t name_length, const bool *values, std::size_t array_length)
Inserts new entry of type bool array.
result get_string_array_length(const char *name, std::size_t &array_length) const
Extracts the length of string array.
result create_word_array(const char *name, std::size_t array_length, unsigned int *&array)
Creates new uninitialized entry of type unsigned int array.
result get_boolean(const char *name, bool &value) const
Extracts the bool value from the given entry.
result get_word_array(const char *name, std::size_t name_length, unsigned int *&values, std::size_t &array_length) const
Extracts the array of unsigned int values from the given entry.
result get_type(const char *name, std::size_t name_length, parameter_type &t) const
Extracts the type of the given entry.
result create_long_long_word_array(const char *name, std::size_t array_length, unsigned long long *&array)
Creates new uninitialized entry of type unsigned long long array.
result set_string(const char *name, const char *value)
Inserts new entry of type string.
result set_double_float(const char *name, std::size_t name_length, double value)
Inserts new entry of type double.
result create_nested_parameters(const char *name, std::size_t name_length, parameters *&params)
Creates nested parameters entry.
result set_string_shallow(const char *name, std::size_t name_length, const char *value, std::size_t value_length)
Inserts new entry of type string.
result get_word(const char *name, std::size_t name_length, unsigned int &value) const
Extracts the unsigned int value from the given entry.
result get_long_long_word(const char *name, unsigned long long &value) const
Extracts the unsigned long long value from the given entry.
result get_string(const char *name, std::size_t name_length, const char *&value, std::size_t &value_length) const
Extracts the string value from the given entry.
result set_string_shallow(const char *name, const char *value)
Inserts new entry of type string.
result get_integer_array(const char *name, std::size_t name_length, int *&values, std::size_t &array_length) const
Extracts the array of int values from the given entry.
result set_long_long_word_array_shallow(const char *name, std::size_t name_length, const unsigned long long *values, std::size_t array_length)
Inserts new entry of type unsigned long long array.
result set_binary(const char *name, std::size_t name_length, const void *value, std::size_t value_length)
Inserts new entry of type binary.
result get_long_long_array(const char *name, std::size_t name_length, long long *&values, std::size_t &array_length) const
Extracts the array of long long values from the given entry.
void clear()
Clears the collection of entries.
result set_string_in_array(const char *name, std::size_t name_length, std::size_t index, const char *value, std::size_t value_length)
Inserts new string value to string array.
result create_integer_array(const char *name, std::size_t name_length, std::size_t array_length, int *&array)
Creates new uninitialized entry of type int array.
result get_nested_array_length(const char *name, std::size_t &array_length) const
Extracts the length of nested parameters array.
result create_boolean_array(const char *name, std::size_t name_length, std::size_t array_length, bool *&array)
Creates new uninitialized entry of type bool array.
result get_double_float_array(const char *name, double *&values, std::size_t &array_length) const
Extracts the array of double values from the given entry.
parameters()
Constructor.
result get_nested_parameters(const char *name, std::size_t name_length, parameters *&params) const
Extracts the nested parameters object from the given entry.
Common interface for serializable data source.
Definition: serializable.h:24
Standard (malloc/free), default allocator.
Definition: allocator.h:29
Definition: parameters.h:23
result
General type for reporting success and error states.
Definition: core.h:21
parameter_type
Type of parameter entry.
Definition: parameter_type.h:16
Namespace devoted for everything related to YAMI4.
Definition: agent.h:14