Trait drmem_api::Store

source ·
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§

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.

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.

Implementors§