5#ifndef YAMICPP_PARAMETERS_H_INCLUDED
6#define YAMICPP_PARAMETERS_H_INCLUDED
8#include "parameter_entry.h"
9#include "parameter_type.h"
10#include "serializable.h"
11#include <yami4-core/dll.h>
12#include <yami4-core/parameter_iterator.h>
102 void set_boolean(
const char * name,
bool value);
110 bool get_boolean(
const char * name)
const;
120 void set_integer(
const char * name,
int value);
128 int get_integer(
const char * name)
const;
138 void set_long_long(
const char * name,
long long value);
146 long long get_long_long(
const char * name)
const;
155 void set_word(
const std::string & name,
unsigned int value);
156 void set_word(
const char * name,
unsigned int value);
163 unsigned int get_word(
const std::string & name)
const;
164 unsigned int get_word(
const char * name)
const;
174 void set_long_long_word(
const char * name,
unsigned long long value);
182 unsigned long long get_long_long_word(
const char * name)
const;
192 void set_double_float(
const char * name,
double value);
200 double get_double_float(
const char * name)
const;
209 void set_string(
const std::string & name,
const std::string & value);
210 void set_string(
const char * name,
const char * value);
226 const char * value, std::size_t value_length);
227 void set_string_shallow(
const char * name, std::size_t name_length,
228 const char * value, std::size_t value_length);
236 std::string get_string(
const char * name)
const;
246 std::size_t & length)
const;
247 const char * get_string(
const char * name,
248 std::size_t & length)
const;
259 const void * value, std::size_t value_length);
260 void set_binary(
const char * name,
261 const void * value, std::size_t value_length);
277 const void * value, std::size_t value_length);
278 void set_binary_shallow(
const char * name, std::size_t name_length,
279 const void * value, std::size_t value_length);
289 std::size_t & length)
const;
290 const void * get_binary(
const char * name,
291 std::size_t & length)
const;
307 const bool * values, std::size_t array_length);
308 void set_boolean_array(
const char * name,
309 const bool * values, std::size_t array_length);
324 const bool * values, std::size_t array_length);
325 void set_boolean_array_shallow(
const char * name,
326 const bool * values, std::size_t array_length);
338 std::size_t & array_length)
const;
339 bool * get_boolean_array(
const char * name,
340 std::size_t & array_length)
const;
354 const int * values, std::size_t array_length);
355 void set_integer_array(
const char * name,
356 const int * values, std::size_t array_length);
371 const int * values, std::size_t array_length);
372 void set_integer_array_shallow(
const char * name,
373 const int * values, std::size_t array_length);
385 std::size_t & array_length)
const;
386 int * get_integer_array(
const char * name,
387 std::size_t & array_length)
const;
402 const long long * values, std::size_t array_length);
403 void set_long_long_array(
const char * name,
404 const long long * values, std::size_t array_length);
420 const long long * values, std::size_t array_length);
421 void set_long_long_array_shallow(
const char * name,
422 const long long * values, std::size_t array_length);
435 std::size_t & array_length)
const;
436 long long * get_long_long_array(
const char * name,
437 std::size_t & array_length)
const;
451 const unsigned int * values, std::size_t array_length);
452 void set_word_array(
const char * name,
453 const unsigned int * values, std::size_t array_length);
468 const unsigned int * values, std::size_t array_length);
469 void set_word_array_shallow(
const char * name,
470 const unsigned int * values, std::size_t array_length);
482 std::size_t & array_length)
const;
483 unsigned int * get_word_array(
const char * name,
484 std::size_t & array_length)
const;
499 const unsigned long long * values, std::size_t array_length);
500 void set_long_long_word_array(
const char * name,
501 const unsigned long long * values, std::size_t array_length);
517 const unsigned long long * values, std::size_t array_length);
518 void set_long_long_word_array_shallow(
const char * name,
519 const unsigned long long * values, std::size_t array_length);
532 std::size_t & array_length)
const;
533 unsigned long long * get_long_long_word_array(
const char * name,
534 std::size_t & array_length)
const;
548 const double * values, std::size_t array_length);
549 void set_double_float_array(
const char * name,
550 const double * values, std::size_t array_length);
565 const double * values, std::size_t array_length);
566 void set_double_float_array_shallow(
const char * name,
567 const double * values, std::size_t array_length);
580 std::size_t & array_length)
const;
581 double * get_double_float_array(
const char * name,
582 std::size_t & array_length)
const;
595 std::size_t array_length);
596 void create_string_array(
const char * name, std::size_t array_length);
608 const std::string & value);
609 void set_string_in_array(
const char * name, std::size_t index,
620 std::size_t get_string_array_length(
const char * name)
const;
629 std::size_t index)
const;
630 std::string get_string_in_array(
const char * name,
631 std::size_t index)
const;
642 std::size_t index, std::size_t & length)
const;
643 const char * get_string_in_array(
const char * name,
644 std::size_t index, std::size_t & length)
const;
657 std::size_t array_length);
658 void create_binary_array(
const char * name, std::size_t array_length);
671 const void * value, std::size_t value_length);
672 void set_binary_in_array(
const char * name, std::size_t index,
673 const void * value, std::size_t value_length);
683 std::size_t get_binary_array_length(
const char * name)
const;
694 std::size_t index, std::size_t & length)
const;
695 const void * get_binary_in_array(
const char * name,
696 std::size_t index, std::size_t & length)
const;
710 core::parameters * create_nested_parameters(
const char * name);
720 core::parameters * get_nested_parameters(
const char * name)
const;
736 std::size_t array_length);
737 void create_nested_array(
const char * name, std::size_t array_length);
747 std::size_t get_nested_array_length(
const char * name)
const;
759 std::size_t index)
const;
760 core::parameters * get_nested_in_array(
const char * name,
761 std::size_t index)
const;
793 iterator(core::parameter_iterator it) : empty_(
false), it_(it) {}
795 bool operator==(
const iterator & rhs)
const
801 return empty_ && rhs.empty_;
804 bool operator!=(
const iterator & rhs)
const
806 return operator==(rhs) ==
false;
833 entry.entry_ = it_.current();
840 core::parameter_iterator it_;
877 void remove(
const char * name);
928 virtual void serialize(
char * * buffers, std::size_t * buffer_sizes,
929 std::size_t num_of_buffers)
const;
953 void deserialize(
const char * * buffers, std::size_t * buffer_sizes,
954 std::size_t num_of_buffers);
960 void dump(std::ostream & os)
const;
965 std::unique_ptr<core::parameters> own_params_;
969 core::parameters * params_;
Read-only view on the parameters entry.
Definition: parameter_entry.h:26
Iterator class for inspecting entries in the collection.
Definition: parameters.h:790
Collection of message parameters.
Definition: parameters.h:62
void set_long_long(const std::string &name, long long value)
Inserts new entry of type long long.
bool * get_boolean_array(const std::string &name, std::size_t &array_length) const
Extracts the array of bool values from the given entry.
void set_word(const std::string &name, unsigned int value)
Inserts new entry of type unsigned int.
unsigned long long get_long_long_word(const std::string &name) const
Extracts the unsigned long long value from the given entry.
parameters(const parameters &other)
Copy constructor.
int * get_integer_array(const std::string &name, std::size_t &array_length) const
Extracts the array of int values from the given entry.
std::size_t get_binary_array_length(const std::string &name) const
Extracts the length of binary array.
void set_boolean_array(const std::string &name, const bool *values, std::size_t array_length)
Inserts new entry of type bool array.
void set_integer(const std::string &name, int value)
Inserts new entry of type int.
void swap(parameters &other)
Swap operation.
const void * get_binary_in_array(const std::string &name, std::size_t index, std::size_t &length) const
Extracts binary value from binary array.
void set_word_array(const std::string &name, const unsigned int *values, std::size_t array_length)
Inserts new entry of type unsigned int array.
void set_binary(const std::string &name, const void *value, std::size_t value_length)
Inserts new entry of type binary.
core::parameters * get_nested_in_array(const std::string &name, std::size_t index) const
Extracts nested parameters value from nested array.
std::size_t get_string_array_length(const std::string &name) const
Extracts the length of string array.
virtual std::size_t serialize_buffer_size() const
Returns the total size of serialization buffer.
iterator begin() const
Extracts the starting iterator for this collection.
bool find(const std::string &name, parameter_entry &entry) const
Finds the given entry.
double * get_double_float_array(const std::string &name, std::size_t &array_length) const
Extracts the array of double values from the given entry.
void set_string_shallow(const std::string &name, const char *value, std::size_t value_length)
Inserts new entry of type string.
unsigned int * get_word_array(const std::string &name, std::size_t &array_length) const
Extracts the array of unsigned int values from the given entry.
virtual void serialize(char **buffers, std::size_t *buffer_sizes, std::size_t num_of_buffers) const
Serializes current content into given buffer(s).
void set_long_long_word_array_shallow(const std::string &name, const unsigned long long *values, std::size_t array_length)
Inserts new entry of type unsigned long long array.
void create_binary_array(const std::string &name, std::size_t array_length)
Creates new empty entry of type binary array.
void remove(const std::string &name)
Removes the given entry.
const void * get_binary(const std::string &name, std::size_t &length) const
Extracts the binary value from the given entry.
void set_double_float_array_shallow(const std::string &name, const double *values, std::size_t array_length)
Inserts new entry of type double array.
void set_binary_shallow(const std::string &name, const void *value, std::size_t value_length)
Inserts new entry of type binary.
void remove(iterator it)
Removes the entry given by its iterator.
void set_boolean(const std::string &name, bool value)
Inserts new entry of type bool.
void set_boolean_array_shallow(const std::string &name, const bool *values, std::size_t array_length)
Inserts new entry of type bool array.
void set_integer_array(const std::string &name, const int *values, std::size_t array_length)
Inserts new entry of type int array.
void clear()
Clears the collection of entries.
void create_string_array(const std::string &name, std::size_t array_length)
Creates new empty entry of type string array.
void set_word_array_shallow(const std::string &name, const unsigned int *values, std::size_t array_length)
Inserts new entry of type unsigned int array.
virtual const core::parameters & get_core_object() const
Provides access to the underlying core object.
void create_nested_array(const std::string &name, std::size_t array_length)
Creates nested parameters array entry.
const char * get_string(const std::string &name, std::size_t &length) const
Extracts the string value from the given entry.
void set_string(const std::string &name, const std::string &value)
Inserts new entry of type string.
void set_long_long_array(const std::string &name, const long long *values, std::size_t array_length)
Inserts new entry of type long long array.
parameters(core::parameters *external)
Constructor.
core::parameters * get_nested_parameters(const std::string &name) const
Extracts the nested parameters object from the given entry.
void set_double_float(const std::string &name, double value)
Inserts new entry of type double.
void set_long_long_array_shallow(const std::string &name, const long long *values, std::size_t array_length)
Inserts new entry of type long long array.
std::size_t size() const
Returns the size of the collection.
unsigned int get_word(const std::string &name) const
Extracts the unsigned int value from the given entry.
long long get_long_long(const std::string &name) const
Extracts the long long value from the given entry.
int get_integer(const std::string &name) const
Extracts the int value from the given entry.
~parameters()
Destructor.
Definition: parameters.h:90
void set_binary_in_array(const std::string &name, std::size_t index, const void *value, std::size_t value_length)
Inserts new binary value to binary array.
void set_long_long_word(const std::string &name, unsigned long long value)
Inserts new entry of type unsigned long long.
void set_integer_array_shallow(const std::string &name, const int *values, std::size_t array_length)
Inserts new entry of type int array.
unsigned long long * get_long_long_word_array(const std::string &name, std::size_t &array_length) const
Extracts the array of unsigned long long values from the given entry.
void set_double_float_array(const std::string &name, const double *values, std::size_t array_length)
Inserts new entry of type double array.
parameter_type type(const std::string &name) const
Extracts the type of the given entry.
core::parameters * create_nested_parameters(const std::string &name)
Creates nested parameters entry.
iterator end() const
Extracts the ending iterator for this collection.
long long * get_long_long_array(const std::string &name, std::size_t &array_length) const
Extracts the array of long long values from the given entry.
const char * get_string_in_array(const std::string &name, std::size_t index, std::size_t &length) const
Extracts string value from string array.
bool get_boolean(const std::string &name) const
Extracts the bool value from the given entry.
std::size_t get_nested_array_length(const std::string &name) const
Extracts the length of nested parameters array.
std::string get_string(const std::string &name) const
Extracts the string value from the given entry.
std::string get_string_in_array(const std::string &name, std::size_t index) const
Extracts string value from string array.
double get_double_float(const std::string &name) const
Extracts the double value from the given entry.
void operator=(const parameters &other)
Assignment operator.
void merge_from(const parameters &other)
Merges entries from the given parameters object.
void set_long_long_word_array(const std::string &name, const unsigned long long *values, std::size_t array_length)
Inserts new entry of type unsigned long long array.
void deserialize(const char **buffers, std::size_t *buffer_sizes, std::size_t num_of_buffers)
Deserializes from the given buffer(s).
void set_string_in_array(const std::string &name, std::size_t index, const std::string &value)
Inserts new string value to string array.
Common interface for serializable data source.
Definition: serializable.h:21
Namespace devoted to everything related to YAMI4.
Definition: agent.h:21
parameter_type
Type of parameter entry.
Definition: parameter_type.h:13