5#ifndef YAMICORE_PARAMETERS_H_INCLUDED
6#define YAMICORE_PARAMETERS_H_INCLUDED
11#include "parameter_type.h"
12#include "serializable.h"
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;
44class parameter_iterator;
219 long long & value)
const;
258 unsigned int & value)
const;
278 unsigned long long value);
298 unsigned long long & value)
const;
338 double & value)
const;
362 const char * value, std::size_t value_length);
388 const char * value, std::size_t value_length);
409 const char * & value, std::size_t & value_length)
const;
416 const char * & value, std::size_t & value_length)
const;
433 const void * value, std::size_t value_length);
440 const void * value, std::size_t value_length);
459 const void * value, std::size_t value_length);
466 const void * value, std::size_t value_length);
481 const void * & value, std::size_t & value_length)
const;
488 const void * & value, std::size_t & value_length)
const;
508 const bool * values, std::size_t array_length);
515 const bool * values, std::size_t array_length);
534 const char * name, std::size_t name_length,
535 const bool * values, std::size_t array_length);
543 const bool * values, std::size_t array_length);
558 std::size_t array_length,
bool * & array);
566 std::size_t array_length,
bool * & array);
584 bool * & values, std::size_t & array_length)
const;
591 bool * & values, std::size_t & array_length)
const;
609 const int * values, std::size_t array_length);
616 const int * values, std::size_t array_length);
635 const char * name, std::size_t name_length,
636 const int * values, std::size_t array_length);
644 const int * values, std::size_t array_length);
659 std::size_t array_length,
int * & array);
667 std::size_t array_length,
int * & array);
685 int * & values, std::size_t & array_length)
const;
692 int * & values, std::size_t & array_length)
const;
711 const long long * values, std::size_t array_length);
718 const long long * values, std::size_t array_length);
738 const char * name, std::size_t name_length,
739 const long long * values, std::size_t array_length);
747 const long long * values, std::size_t array_length);
763 std::size_t array_length,
long long * & array);
771 std::size_t array_length,
long long * & array);
790 long long * & values, std::size_t & array_length)
const;
797 long long * & values, std::size_t & array_length)
const;
815 const unsigned int * values, std::size_t array_length);
822 const unsigned int * values, std::size_t array_length);
841 const char * name, std::size_t name_length,
842 const unsigned int * values, std::size_t array_length);
850 const unsigned int * values, std::size_t array_length);
865 std::size_t array_length,
unsigned int * & array);
873 std::size_t array_length,
unsigned int * & array);
891 unsigned int * & values, std::size_t & array_length)
const;
898 unsigned int * & values, std::size_t & array_length)
const;
917 const unsigned long long * values, std::size_t array_length);
924 const unsigned long long * values, std::size_t array_length);
944 const char * name, std::size_t name_length,
945 const unsigned long long * values, std::size_t array_length);
953 const unsigned long long * values, std::size_t array_length);
969 std::size_t array_length,
unsigned long long * & array);
977 std::size_t array_length,
unsigned long long * & array);
996 unsigned long long * & values, std::size_t & array_length)
const;
1003 unsigned long long * & values, std::size_t & array_length)
const;
1021 const double * values, std::size_t array_length);
1028 const double * values, std::size_t array_length);
1047 const char * name, std::size_t name_length,
1048 const double * values, std::size_t array_length);
1056 const double * values, std::size_t array_length);
1072 const char * name, std::size_t name_length,
1073 std::size_t array_length,
double * & array);
1082 std::size_t array_length,
double * & array);
1100 double * & values, std::size_t & array_length)
const;
1107 double * & values, std::size_t & array_length)
const;
1124 std::size_t array_length);
1154 std::size_t index,
const char * value, std::size_t value_length);
1162 const char * value);
1177 std::size_t & array_length)
const;
1185 std::size_t & array_length)
const;
1203 const char * & value, std::size_t & value_length)
const;
1211 const char * & value, std::size_t & value_length)
const;
1228 std::size_t array_length);
1257 std::size_t index,
const void * value, std::size_t value_length);
1265 const void * value, std::size_t value_length);
1280 std::size_t & array_length)
const;
1288 std::size_t & array_length)
const;
1306 const void * & value, std::size_t & value_length)
const;
1314 const void * & value, std::size_t & value_length)
const;
1331 const char * name, std::size_t name_length,
1352 const char * name, std::size_t name_length,
1360 const char * name,
parameters * & params)
const;
1377 std::size_t array_length);
1399 std::size_t & array_length)
const;
1407 std::size_t & array_length)
const;
1566 const std::size_t * buffer_sizes,
1567 std::size_t num_of_buffers)
const;
1600 const std::size_t * buffer_sizes,
1601 std::size_t num_of_buffers);
1608 details::entry * data_;
1609 std::size_t num_of_entries_;
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 *¶ms) 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 *¶ms)
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.
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 *¶ms)
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.
result get_nested_parameters(const char *name, std::size_t name_length, parameters *¶ms) 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