pub trait Store {
fn register_read_only_device<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 mut self,
driver: &'life1 str,
name: &'life2 Name,
units: &'life3 Option<String>,
max_history: &'life4 Option<usize>
) -> Pin<Box<dyn Future<Output = Result<(ReportReading, Option<Value>)>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Self: 'async_trait;
fn register_read_write_device<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 mut self,
driver: &'life1 str,
name: &'life2 Name,
units: &'life3 Option<String>,
max_history: &'life4 Option<usize>
) -> Pin<Box<dyn Future<Output = Result<(ReportReading, RxDeviceSetting, Option<Value>)>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Self: 'async_trait;
fn get_device_info<'life0, 'life1, 'async_trait>(
&'life0 mut self,
pattern: &'life1 Option<String>
) -> Pin<Box<dyn Future<Output = Result<Vec<DevInfoReply>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn set_device<'life0, 'async_trait>(
&'life0 self,
name: Name,
value: Value
) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn monitor_device<'life0, 'async_trait>(
&'life0 mut self,
name: Name
) -> Pin<Box<dyn Future<Output = Result<DataStream<Reading>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
}
Expand description
The DbContext
trait defines the API that a back-end needs to
implement to provide storage for – and access to – the state of
each driver’s devices.
Required Methods§
sourcefn register_read_only_device<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 mut self,
driver: &'life1 str,
name: &'life2 Name,
units: &'life3 Option<String>,
max_history: &'life4 Option<usize>
) -> Pin<Box<dyn Future<Output = Result<(ReportReading, Option<Value>)>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Self: 'async_trait,
fn register_read_only_device<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 mut self,
driver: &'life1 str,
name: &'life2 Name,
units: &'life3 Option<String>,
max_history: &'life4 Option<usize>
) -> Pin<Box<dyn Future<Output = Result<(ReportReading, Option<Value>)>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Self: 'async_trait,
Used by a driver to define a read-only device. name
specifies the final segment of the device name (the path
portion of the device name is specified in the driver’s
configuration.) On success, the function returns a closure
which can be used to report device updates.
sourcefn register_read_write_device<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 mut self,
driver: &'life1 str,
name: &'life2 Name,
units: &'life3 Option<String>,
max_history: &'life4 Option<usize>
) -> Pin<Box<dyn Future<Output = Result<(ReportReading, RxDeviceSetting, Option<Value>)>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Self: 'async_trait,
fn register_read_write_device<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 mut self,
driver: &'life1 str,
name: &'life2 Name,
units: &'life3 Option<String>,
max_history: &'life4 Option<usize>
) -> Pin<Box<dyn Future<Output = Result<(ReportReading, RxDeviceSetting, Option<Value>)>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Self: 'async_trait,
Used by a driver to define a read-write device. name
specifies the final segment of the device name (the path
portion of the device name is specified in the driver’s
configuration.) On success, the function retrns a 3-tuple. The
first element is a closure which the driver uses to report new
values of the device. The second element is an
mpsc::Receiver<>
handle which the driver monitors for
incoming settings. The last item is the last value reported
for the device. If it’s a new device or the backend doesn’t
have a persistent store, then None
is provided.