|
| | NROS_DEPRECATED_MSG ("nros_param_declare_bool() is deprecated; use nros_parameter_declare_bool()") static inline nros_ret_t nros_param_declare_bool(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_declare_bool_array() is deprecated; use nros_parameter_declare_bool_array()") static inline nros_ret_t nros_param_declare_bool_array(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_declare_byte_array() is deprecated; use nros_parameter_declare_byte_array()") static inline nros_ret_t nros_param_declare_byte_array(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_declare_double() is deprecated; use nros_parameter_declare_double()") static inline nros_ret_t nros_param_declare_double(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_declare_double_array() is deprecated; use nros_parameter_declare_double_array()") static inline nros_ret_t nros_param_declare_double_array(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_declare_integer() is deprecated; use nros_parameter_declare_integer()") static inline nros_ret_t nros_param_declare_integer(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_declare_integer_array() is deprecated; use nros_parameter_declare_integer_array()") static inline nros_ret_t nros_param_declare_integer_array(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_declare_string() is deprecated; use nros_parameter_declare_string()") static inline nros_ret_t nros_param_declare_string(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_declare_string_array() is deprecated; use nros_parameter_declare_string_array()") static inline nros_ret_t nros_param_declare_string_array(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_get_bool() is deprecated; use nros_parameter_get_bool()") static inline nros_ret_t nros_param_get_bool(const struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_get_bool_array() is deprecated; use nros_parameter_get_bool_array()") static inline nros_ret_t nros_param_get_bool_array(const struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_get_byte_array() is deprecated; use nros_parameter_get_byte_array()") static inline nros_ret_t nros_param_get_byte_array(const struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_get_double() is deprecated; use nros_parameter_get_double()") static inline nros_ret_t nros_param_get_double(const struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_get_double_array() is deprecated; use nros_parameter_get_double_array()") static inline nros_ret_t nros_param_get_double_array(const struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_get_integer() is deprecated; use nros_parameter_get_integer()") static inline nros_ret_t nros_param_get_integer(const struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_get_integer_array() is deprecated; use nros_parameter_get_integer_array()") static inline nros_ret_t nros_param_get_integer_array(const struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_get_string() is deprecated; use nros_parameter_get_string()") static inline nros_ret_t nros_param_get_string(const struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_get_string_array() is deprecated; use nros_parameter_get_string_array()") static inline nros_ret_t nros_param_get_string_array(const struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_get_type() is deprecated; use nros_parameter_get_type()") static inline enum nros_parameter_type_t nros_param_get_type(const struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_has() is deprecated; use nros_parameter_has()") static inline bool nros_param_has(const struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_server_fini() is deprecated; use nros_parameter_server_fini()") static inline nros_ret_t nros_param_server_fini(struct nros_parameter_server_t *server) |
| |
| | NROS_DEPRECATED_MSG ("nros_param_server_get_count() is deprecated; use nros_parameter_server_get_count()") static inline size_t nros_param_server_get_count(const struct nros_parameter_server_t *server) |
| |
| | NROS_DEPRECATED_MSG ("nros_param_server_get_zero_initialized() is deprecated; use " "nros_parameter_server_get_zero_initialized()") static inline struct nros_parameter_server_t nros_param_server_get_zero_initialized(void) |
| |
| | NROS_DEPRECATED_MSG ("nros_param_server_init() is deprecated; use nros_parameter_server_init()") static inline nros_ret_t nros_param_server_init(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_server_set_callback() is deprecated; use nros_parameter_server_set_callback()") static inline nros_ret_t nros_param_server_set_callback(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_set_bool() is deprecated; use nros_parameter_set_bool()") static inline nros_ret_t nros_param_set_bool(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_set_bool_array() is deprecated; use nros_parameter_set_bool_array()") static inline nros_ret_t nros_param_set_bool_array(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_set_byte_array() is deprecated; use nros_parameter_set_byte_array()") static inline nros_ret_t nros_param_set_byte_array(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_set_double() is deprecated; use nros_parameter_set_double()") static inline nros_ret_t nros_param_set_double(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_set_double_array() is deprecated; use nros_parameter_set_double_array()") static inline nros_ret_t nros_param_set_double_array(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_set_integer() is deprecated; use nros_parameter_set_integer()") static inline nros_ret_t nros_param_set_integer(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_set_integer_array() is deprecated; use nros_parameter_set_integer_array()") static inline nros_ret_t nros_param_set_integer_array(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_set_string() is deprecated; use nros_parameter_set_string()") static inline nros_ret_t nros_param_set_string(struct nros_parameter_server_t *server |
| |
| | NROS_DEPRECATED_MSG ("nros_param_set_string_array() is deprecated; use nros_parameter_set_string_array()") static inline nros_ret_t nros_param_set_string_array(struct nros_parameter_server_t *server |
| |
| nros_ret_t | nros_executor_declare_param_bool (struct nros_executor_t *executor, const char *name, bool value) |
| | Declare a boolean parameter on the executor's server.
|
| |
| nros_ret_t | nros_executor_declare_param_double (struct nros_executor_t *executor, const char *name, double value) |
| | Declare a double parameter on the executor's server.
|
| |
| nros_ret_t | nros_executor_declare_param_integer (struct nros_executor_t *executor, const char *name, int64_t value) |
| | Declare an integer parameter on the executor's server.
|
| |
| nros_ret_t | nros_executor_declare_param_string (struct nros_executor_t *executor, const char *name, const char *value) |
| | Declare a string parameter on the executor's server.
|
| |
| nros_ret_t | nros_executor_get_param_bool (struct nros_executor_t *executor, const char *name, bool *out_value) |
| | Get a boolean parameter from the executor's server.
|
| |
| nros_ret_t | nros_executor_get_param_double (struct nros_executor_t *executor, const char *name, double *out_value) |
| | Get a double parameter from the executor's server.
|
| |
| nros_ret_t | nros_executor_get_param_integer (struct nros_executor_t *executor, const char *name, int64_t *out_value) |
| | Get an integer parameter from the executor's server.
|
| |
| nros_ret_t | nros_executor_get_param_string (struct nros_executor_t *executor, const char *name, char *out_value, size_t max_len) |
| | Get a string parameter into a caller-provided null-terminated buffer.
|
| |
| bool | nros_executor_has_param (struct nros_executor_t *executor, const char *name) |
| | Check if a parameter exists on the executor's server.
|
| |
| nros_ret_t | nros_executor_register_parameter_services (struct nros_executor_t *executor) |
| | Register the 6 ROS 2 parameter services on the executor's node.
|
| |
| nros_ret_t | nros_executor_set_param_bool (struct nros_executor_t *executor, const char *name, bool value) |
| | Set a boolean parameter on the executor's server.
|
| |
| nros_ret_t | nros_executor_set_param_double (struct nros_executor_t *executor, const char *name, double value) |
| | Set a double parameter on the executor's server.
|
| |
| nros_ret_t | nros_executor_set_param_integer (struct nros_executor_t *executor, const char *name, int64_t value) |
| | Set an integer parameter on the executor's server.
|
| |
| nros_ret_t | nros_executor_set_param_string (struct nros_executor_t *executor, const char *name, const char *value) |
| | Set a string parameter on the executor's server.
|
| |
| nros_ret_t | nros_parameter_declare_bool (struct nros_parameter_server_t *server, const char *name, bool default_value) |
| | Declare a boolean parameter.
|
| |
| nros_ret_t | nros_parameter_declare_bool_array (struct nros_parameter_server_t *server, const char *name, const bool *data, size_t len) |
| | Declare a boolean array parameter (bool[]).
|
| |
| nros_ret_t | nros_parameter_declare_byte_array (struct nros_parameter_server_t *server, const char *name, const uint8_t *data, size_t len) |
| | Declare a byte array parameter (uint8_t[]).
|
| |
| nros_ret_t | nros_parameter_declare_double (struct nros_parameter_server_t *server, const char *name, double default_value) |
| | Declare a double parameter.
|
| |
| nros_ret_t | nros_parameter_declare_double_array (struct nros_parameter_server_t *server, const char *name, const double *data, size_t len) |
| | Declare a double array parameter (double[]).
|
| |
| nros_ret_t | nros_parameter_declare_integer (struct nros_parameter_server_t *server, const char *name, int64_t default_value) |
| | Declare an integer parameter.
|
| |
| nros_ret_t | nros_parameter_declare_integer_array (struct nros_parameter_server_t *server, const char *name, const int64_t *data, size_t len) |
| | Declare an integer array parameter (int64_t[]).
|
| |
| nros_ret_t | nros_parameter_declare_string (struct nros_parameter_server_t *server, const char *name, const char *default_value) |
| | Declare a string parameter.
|
| |
| nros_ret_t | nros_parameter_declare_string_array (struct nros_parameter_server_t *server, const char *name, const char *const *data, size_t len) |
| | Declare a string array parameter (array of const char*).
|
| |
| nros_ret_t | nros_parameter_get_bool (const struct nros_parameter_server_t *server, const char *name, bool *value) |
| | Get a boolean parameter value.
|
| |
| nros_ret_t | nros_parameter_get_double (const struct nros_parameter_server_t *server, const char *name, double *value) |
| | Get a double parameter value.
|
| |
| nros_ret_t | nros_parameter_get_integer (const struct nros_parameter_server_t *server, const char *name, int64_t *value) |
| | Get an integer parameter value.
|
| |
| nros_ret_t | nros_parameter_get_string (const struct nros_parameter_server_t *server, const char *name, char *value, size_t max_len) |
| | Get a string parameter value.
|
| |
| enum nros_parameter_type_t | nros_parameter_get_type (const struct nros_parameter_server_t *server, const char *name) |
| | Get the type of a parameter.
|
| |
| bool | nros_parameter_has (const struct nros_parameter_server_t *server, const char *name) |
| | Check if a parameter exists.
|
| |
| nros_ret_t | nros_parameter_server_fini (struct nros_parameter_server_t *server) |
| | Finalise a parameter server.
|
| |
| size_t | nros_parameter_server_get_count (const struct nros_parameter_server_t *server) |
| | Get the number of declared parameters.
|
| |
| struct nros_parameter_server_t | nros_parameter_server_get_zero_initialized (void) |
| | Get a zero-initialized parameter server.
|
| |
| nros_ret_t | nros_parameter_server_init (struct nros_parameter_server_t *server, struct nros_parameter_t *storage, size_t capacity) |
| | Initialise a parameter server with user-provided storage.
|
| |
| nros_ret_t | nros_parameter_server_set_callback (struct nros_parameter_server_t *server, nros_parameter_callback_t callback, void *context) |
| | Set a parameter change callback.
|
| |
| nros_ret_t | nros_parameter_set_bool (struct nros_parameter_server_t *server, const char *name, bool value) |
| | Set a boolean parameter value.
|
| |
| nros_ret_t | nros_parameter_set_bool_array (struct nros_parameter_server_t *server, const char *name, const bool *data, size_t len) |
| | Set a boolean array parameter (replaces stored pointer + length).
|
| |
| nros_ret_t | nros_parameter_set_byte_array (struct nros_parameter_server_t *server, const char *name, const uint8_t *data, size_t len) |
| | Set a byte array parameter (replaces stored pointer + length).
|
| |
| nros_ret_t | nros_parameter_set_double (struct nros_parameter_server_t *server, const char *name, double value) |
| | Set a double parameter value.
|
| |
| nros_ret_t | nros_parameter_set_double_array (struct nros_parameter_server_t *server, const char *name, const double *data, size_t len) |
| | Set a double array parameter (replaces stored pointer + length).
|
| |
| nros_ret_t | nros_parameter_set_integer (struct nros_parameter_server_t *server, const char *name, int64_t value) |
| | Set an integer parameter value.
|
| |
| nros_ret_t | nros_parameter_set_integer_array (struct nros_parameter_server_t *server, const char *name, const int64_t *data, size_t len) |
| | Set an integer array parameter (replaces stored pointer + length).
|
| |
| nros_ret_t | nros_parameter_set_string (struct nros_parameter_server_t *server, const char *name, const char *value) |
| | Set a string parameter value.
|
| |
| nros_ret_t | nros_parameter_set_string_array (struct nros_parameter_server_t *server, const char *name, const char *const *data, size_t len) |
| | Set a string array parameter (replaces stored pointer + length).
|
| |
|
The array declare / set calls above take BORROWED storage: the server records the caller's data pointer verbatim and never copies the elements, which is why the caller must keep that memory valid for the parameter's lifetime. The get calls below return that same pointer, unchanged — not a copy, not an interior pointer, not server-owned storage.
That identity is LOAD-BEARING, not incidental. nros/parameter.hpp's ParameterServer allocates array blocks out of a header-side pool with an out-of-band capacity word written immediately in front of each block, and recovers the capacity on set by reading back from the returned pointer. If this side ever starts copying arrays, returning an interior pointer, or handing back storage it owns, that read lands on unrelated memory.
The C++ side now verifies the returned pointer lies inside its own pool before trusting it, so a violation surfaces as NROS_RET_INVALID_ARGUMENT rather than an out-of-bounds read — but the guarantee is still part of this ABI. Changing it requires changing parameter.hpp in the same commit.
The proper fix is to carry the capacity in server-owned state (a field on nros_parameter_array_t, or a nros_parameter_get_*_array_capacity() accessor). That is a breaking change to a hand-mirrored FFI struct and a public C ABI, so it is deferred rather than done silently.
|
| nros_ret_t | nros_parameter_get_bool_array (const struct nros_parameter_server_t *server, const char *name, const bool **data, size_t *len) |
| | Get a boolean array parameter (returns stored pointer + length).
|
| |
| nros_ret_t | nros_parameter_get_byte_array (const struct nros_parameter_server_t *server, const char *name, const uint8_t **data, size_t *len) |
| | Get a byte array parameter (returns stored pointer + length).
|
| |
| nros_ret_t | nros_parameter_get_double_array (const struct nros_parameter_server_t *server, const char *name, const double **data, size_t *len) |
| | Get a double array parameter (returns stored pointer + length).
|
| |
| nros_ret_t | nros_parameter_get_integer_array (const struct nros_parameter_server_t *server, const char *name, const int64_t **data, size_t *len) |
| | Get an integer array parameter (returns stored pointer + length).
|
| |
| nros_ret_t | nros_parameter_get_string_array (const struct nros_parameter_server_t *server, const char *name, const char *const **data, size_t *len) |
| | Get a string array parameter (returns stored pointer + length).
|
| |
Parameter server API.
Declare, get, and set typed parameters on a local parameter server.