Skip to main content

ParameterServer

Struct ParameterServer 

Source
pub struct ParameterServer<'s> { /* private fields */ }
Expand description

Parameter server over caller-owned storage

Stores parameters in a ParameterTable the caller lends it; the table’s length is the capacity. ParameterStorage is the usual way to produce one, defaulting to the build-time MAX_PARAMETERS slots.

§Keyed by node — phase-426 W1

Every per-parameter method takes a NodeKey first. The slot arena is shared (one table per executor), but a name is only ever looked up within one node, so two nodes composed onto one executor (RFC-0047) hold independent values for the same name — which is what upstream does, where each node owns a table and a set of six services.

§Example

use nros_params::{
    NodeKey, ParameterServer, ParameterServerOps as _, ParameterStorage, ParameterValue,
};

let mut storage = ParameterStorage::<8>::new();
let mut server = ParameterServer::new_in(storage.as_table());
let talker = NodeKey::new(0);
let listener = NodeKey::new(1);

// Declare a parameter with initial value
server.declare(talker, "rate", ParameterValue::Double(1.0));
server.declare(listener, "rate", ParameterValue::Double(2.0));

// Get parameter value
assert_eq!(
    server.get(talker, "rate").and_then(|v| v.as_double()),
    Some(1.0)
);
assert_eq!(
    server.get(listener, "rate").and_then(|v| v.as_double()),
    Some(2.0)
);

// Set parameter value
server.set(talker, "rate", ParameterValue::Double(3.0));

Trait Implementations§

Source§

impl<'s> ParameterServerOps<'s> for ParameterServer<'s>

Source§

fn take_truncated_descriptions( &mut self, report: impl FnMut(NodeKey, &str), ) -> usize

See ParameterServer::take_truncated_descriptions in server.rs.
Source§

fn new_in(table: ParameterTable<'s>) -> Self

See ParameterServer::new_in in server.rs.
Source§

fn set_allow_undeclared(&mut self, node: NodeKey, allow: bool)

See ParameterServer::set_allow_undeclared in server.rs.
Source§

fn allows_undeclared(&self, node: NodeKey) -> bool

See ParameterServer::allows_undeclared in server.rs.
Source§

fn set_parameter_events(&mut self, node: NodeKey, on: bool)

See ParameterServer::set_parameter_events in server.rs.
Source§

fn parameter_events_enabled(&self, node: NodeKey) -> bool

See ParameterServer::parameter_events_enabled in server.rs.
Source§

fn pop_initial_parameter_event(&mut self) -> Option<PendingParameterEvent>

See ParameterServer::pop_initial_parameter_event in server.rs.
Source§

fn pop_parameter_event(&mut self) -> Option<PendingParameterEvent>

See ParameterServer::pop_parameter_event in server.rs.
Source§

fn take_parameter_events_dropped(&mut self) -> u32

See ParameterServer::take_parameter_events_dropped in server.rs.
Source§

fn set_delete_on_not_set(&mut self, node: NodeKey, on: bool)

See ParameterServer::set_delete_on_not_set in server.rs.
Source§

fn len(&self, node: NodeKey) -> usize

See ParameterServer::len in server.rs.
Source§

fn is_empty(&self, node: NodeKey) -> bool

See ParameterServer::is_empty in server.rs.
Source§

fn total_len(&self) -> usize

See ParameterServer::total_len in server.rs.
Source§

fn capacity(&self) -> usize

See ParameterServer::capacity in server.rs.
Source§

fn is_full(&self) -> bool

See ParameterServer::is_full in server.rs.
Source§

fn declare(&mut self, node: NodeKey, name: &str, value: ParameterValue) -> bool

See ParameterServer::declare in server.rs.
Source§

fn declare_ref( &mut self, node: NodeKey, name: &str, value: &ParameterValue, ) -> bool

See ParameterServer::declare_ref in server.rs.
Source§

fn declare_with_descriptor( &mut self, node: NodeKey, name: &str, value: ParameterValue, descriptor: Option<ParameterDescriptor>, ) -> bool

See ParameterServer::declare_with_descriptor in server.rs.
Source§

fn try_declare( &mut self, node: NodeKey, name: &str, value: ParameterValue, ) -> Result<(), DeclarationError>

See ParameterServer::try_declare in server.rs.
Source§

fn try_declare_with_descriptor( &mut self, node: NodeKey, name: &str, value: ParameterValue, descriptor: Option<ParameterDescriptor>, ) -> Result<(), DeclarationError>

See ParameterServer::try_declare_with_descriptor in server.rs.
Source§

fn try_declare_ref( &mut self, node: NodeKey, name: &str, value: &ParameterValue, descriptor: Option<ParameterDescriptor>, ) -> Result<(), DeclarationError>

See ParameterServer::try_declare_ref in server.rs.
Source§

fn check_apply( &self, node: NodeKey, name: &str, value: &ParameterValue, ) -> Result<(), ParameterError>

See ParameterServer::check_apply in server.rs.
Source§

fn apply( &mut self, node: NodeKey, name: &str, value: ParameterValue, ) -> Result<(), ParameterError>

See ParameterServer::apply in server.rs.
Source§

fn apply_ref( &mut self, node: NodeKey, name: &str, value: &ParameterValue, ) -> Result<(), ParameterError>

See ParameterServer::apply_ref in server.rs.
Source§

fn apply_staged( &mut self, node: NodeKey, name: &str, staged: &mut ParameterValue, ) -> Result<(), ParameterError>

See ParameterServer::apply_staged in server.rs.
Source§

fn set_local( &mut self, node: NodeKey, name: &str, value: ParameterValue, ) -> Result<(), ParameterError>

See ParameterServer::set_local in server.rs.
Source§

fn add_on_set_parameters_callback( &mut self, node: NodeKey, callback: OnSetParameterFn, ctx: OnSetContext, ) -> Option<OnSetParameterHandle>

See ParameterServer::add_on_set_parameters_callback in server.rs.
Source§

fn remove_on_set_parameters_callback( &mut self, handle: OnSetParameterHandle, ) -> bool

See ParameterServer::remove_on_set_parameters_callback in server.rs.
Source§

fn on_set_callbacks_free(&self) -> usize

See ParameterServer::on_set_callbacks_free in server.rs.
Source§

fn set_parameter_description( &mut self, node: NodeKey, name: &str, description: &str, additional_constraints: &str, ) -> bool

See ParameterServer::set_parameter_description in server.rs.
Source§

fn set_parameter_read_only( &mut self, node: NodeKey, name: &str, read_only: bool, ) -> bool

See ParameterServer::set_parameter_read_only in server.rs.
Source§

fn set_parameter_integer_range( &mut self, node: NodeKey, name: &str, min: i64, max: i64, step: i64, ) -> bool

See ParameterServer::set_parameter_integer_range in server.rs.
Source§

fn set_parameter_float_range( &mut self, node: NodeKey, name: &str, min: f64, max: f64, step: f64, ) -> bool

See ParameterServer::set_parameter_float_range in server.rs.
Source§

fn apply_atomically<'x, I>( &mut self, node: NodeKey, items: I, ) -> Result<(), ParameterError>
where I: Iterator<Item = Option<(&'x str, ParameterValue)>> + Clone,

See ParameterServer::apply_atomically in server.rs.
Source§

fn apply_atomically_with<'x>( &mut self, node: NodeKey, count: usize, fill: impl FnMut(usize, &mut ParameterValue) -> Option<&'x str>, ) -> Result<(), ParameterError>

See ParameterServer::apply_atomically_with in server.rs.
Source§

fn get(&self, node: NodeKey, name: &str) -> Option<&ParameterValue>

See ParameterServer::get in server.rs.
Source§

fn get_parameter(&self, node: NodeKey, name: &str) -> Option<&Parameter>

See ParameterServer::get_parameter in server.rs.
Source§

fn get_descriptor( &self, node: NodeKey, name: &str, ) -> Option<&ParameterDescriptor>

See ParameterServer::get_descriptor in server.rs.
Source§

fn set( &mut self, node: NodeKey, name: &str, value: ParameterValue, ) -> Result<(), ParameterError>

See ParameterServer::set in server.rs.
Source§

fn set_ref( &mut self, node: NodeKey, name: &str, value: &ParameterValue, ) -> Result<(), ParameterError>

See ParameterServer::set_ref in server.rs.
Source§

fn unset(&mut self, node: NodeKey, name: &str) -> Result<(), ParameterError>

See ParameterServer::unset in server.rs.
Source§

fn set_or_declare( &mut self, node: NodeKey, name: &str, value: ParameterValue, ) -> Result<(), ParameterError>

See ParameterServer::set_or_declare in server.rs.
Source§

fn has(&self, node: NodeKey, name: &str) -> bool

See ParameterServer::has in server.rs.
Source§

fn remove(&mut self, node: NodeKey, name: &str) -> bool

See ParameterServer::remove in server.rs.
Source§

fn get_type(&self, node: NodeKey, name: &str) -> Option<ParameterType>

See ParameterServer::get_type in server.rs.
Source§

fn iter(&self, node: NodeKey) -> impl Iterator<Item = &Parameter>

See ParameterServer::iter in server.rs.
Source§

fn list_names(&self, node: NodeKey) -> impl Iterator<Item = &str>

See ParameterServer::list_names in server.rs.
Source§

fn list_with_prefix<'a>( &'a self, node: NodeKey, prefix: &'a str, ) -> impl Iterator<Item = &'a str>

See ParameterServer::list_with_prefix in server.rs.
Source§

fn get_bool(&self, node: NodeKey, name: &str) -> Option<bool>

See ParameterServer::get_bool in server.rs.
Source§

fn get_integer(&self, node: NodeKey, name: &str) -> Option<i64>

See ParameterServer::get_integer in server.rs.
Source§

fn get_double(&self, node: NodeKey, name: &str) -> Option<f64>

See ParameterServer::get_double in server.rs.
Source§

fn get_string(&self, node: NodeKey, name: &str) -> Option<&str>

See ParameterServer::get_string in server.rs.
Source§

fn set_bool( &mut self, node: NodeKey, name: &str, value: bool, ) -> Result<(), ParameterError>

See ParameterServer::set_bool in server.rs.
Source§

fn set_integer( &mut self, node: NodeKey, name: &str, value: i64, ) -> Result<(), ParameterError>

See ParameterServer::set_integer in server.rs.
Source§

fn set_double( &mut self, node: NodeKey, name: &str, value: f64, ) -> Result<(), ParameterError>

See ParameterServer::set_double in server.rs.
Source§

fn set_string( &mut self, node: NodeKey, name: &str, value: &str, ) -> Result<(), ParameterError>

See ParameterServer::set_string in server.rs.
Source§

fn declare_parameter( &mut self, node: NodeKey, descriptor: ParameterDescriptor, initial_value: Option<&ParameterValue>, ) -> Result<(), ParameterError>

See ParameterServer::declare_parameter in server.rs.
Source§

fn get_parameter_value( &self, node: NodeKey, name: &str, ) -> Option<ParameterValue>

See ParameterServer::get_parameter_value in server.rs.
Source§

fn set_parameter_value( &mut self, node: NodeKey, name: &str, value: ParameterValue, ) -> Result<(), ParameterError>

See ParameterServer::set_parameter_value in server.rs.

Auto Trait Implementations§

§

impl<'s> !UnwindSafe for ParameterServer<'s>

§

impl<'s> Freeze for ParameterServer<'s>

§

impl<'s> RefUnwindSafe for ParameterServer<'s>

§

impl<'s> Send for ParameterServer<'s>

§

impl<'s> Sync for ParameterServer<'s>

§

impl<'s> Unpin for ParameterServer<'s>

§

impl<'s> UnsafeUnpin for ParameterServer<'s>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.