Skip to main content

SimplePvStore

Struct SimplePvStore 

Source
pub struct SimplePvStore { /* private fields */ }
Expand description

A simple in-memory PV store.

Implementations§

Source§

impl SimplePvStore

Source

pub async fn set_registry(&self, registry: Arc<MonitorRegistry>)

Attach the MonitorRegistry so that set_value can push updates to PVAccess monitor clients. Called automatically by [PvaServer::run].

Source

pub async fn insert(&self, name: String, record: RecordInstance)

Insert or replace a PV record at runtime.

Source

pub async fn get_value(&self, name: &str) -> Option<ScalarValue>

Read the current ScalarValue of a PV.

Source

pub async fn get_record(&self, name: &str) -> Option<RecordInstance>

Read a clone of the full RecordInstance backing a PV.

Used by RecordFieldSource to serve <name>.<FIELD> channels.

Source

pub async fn get_nt(&self, name: &str) -> Option<NtPayload>

Read the full NtPayload of a PV.

Source

pub async fn set_value(&self, name: &str, value: ScalarValue) -> bool

Write a ScalarValue to a PV (bypasses on_put).

Source

pub async fn set_array_value(&self, name: &str, value: ScalarArrayValue) -> bool

Write a ScalarArrayValue to an array PV (bypasses on_put).

Source

pub async fn put_nt(&self, name: &str, payload: NtPayload) -> bool

Write a full NtPayload to a PV (bypasses on_put).

Source

pub async fn set_alarm( &self, name: &str, severity: i32, status: i32, message: &str, ) -> bool

Explicitly set a record’s alarm fields (severity/status/message), independent of its value. Unlike SimplePvStore::set_value, alarm transitions always post — there is no MDEL deadband gating and no link evaluation (alarm changes don’t propagate links). Returns false if the alarm state is unchanged (idempotent) or the record doesn’t support alarm fields (Table/NdArray/Generic) or doesn’t exist.

Source

pub async fn pv_names(&self) -> Vec<String>

List all PV names.

Trait Implementations§

Source§

impl Source for SimplePvStore

Source§

fn claim( &self, name: &str, ) -> Pin<Box<dyn Future<Output = Option<PvInfo>> + Send + '_>>

Check whether this source owns name and, if so, return its metadata. Read more
Source§

fn get( &self, name: &str, ) -> Pin<Box<dyn Future<Output = Option<NtPayload>> + Send + '_>>

Read the current value of a PV. Read more
Source§

fn put( &self, name: &str, value: &DecodedValue, ) -> Pin<Box<dyn Future<Output = Result<Vec<(String, NtPayload)>, String>> + Send + '_>>

Apply a PUT value to a PV. Read more
Source§

fn subscribe( &self, name: &str, ) -> Pin<Box<dyn Future<Output = Option<Receiver<NtPayload>>> + Send + '_>>

Subscribe to value-change notifications on a PV. Read more
Source§

fn names(&self) -> Pin<Box<dyn Future<Output = Vec<String>> + Send + '_>>

List all PV names provided by this source.
Source§

fn rpc( &self, _name: &str, _args: &DecodedValue, ) -> Pin<Box<dyn Future<Output = Result<NtPayload, String>> + Send + '_>>

Execute an RPC call on a channel. Read more

Auto Trait Implementations§

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more