Skip to main content

GCMessagePublisher

Struct GCMessagePublisher 

pub struct GCMessagePublisher {
    datapoint_mapping: Arc<RwLock<DatapointMapping>>,
    concurrent_dispatcher_channel: Sender<GCArc<GCDatapointValue>>,
    is_channel_blocking: bool,
}
Expand description

Message publisher used to publish messages to the broker.

Fields§

§datapoint_mapping: Arc<RwLock<DatapointMapping>>§concurrent_dispatcher_channel: Sender<GCArc<GCDatapointValue>>§is_channel_blocking: bool

Implementations§

§

impl GCMessagePublisher

pub fn new( datapoint_mapping: Arc<RwLock<DatapointMapping>>, concurrent_dispatcher: Sender<GCArc<GCDatapointValue>>, is_channel_default_blocking: bool, ) -> Self

fn send_sequential( &self, data_value: GCArc<GCDatapointValue>, datapoint_entry: &DatapointEntry, ) -> bool

fn send_concurrent_block(&self, data_value: GCArc<GCDatapointValue>) -> bool

fn send_concurrent_non_block(&self, data_value: GCArc<GCDatapointValue>) -> bool

fn send_concurrent( &self, data_value: GCArc<GCDatapointValue>, entry: &DatapointEntry, ) -> bool

fn transform_data_value( &self, data_value: &GCDatapointValue, transformation: &ScaleTransformation, ) -> GCArc<GCDatapointValue>

pub fn publish_datapoint_value(&self, data_value: &GCDatapointValue) -> bool

Publishes a datapoint value to the subscribers. This method may block if the datapoint was registered as a sequentially subscriber. If register_concurrent_subscriber was used for the datapoint, the message will be sent concurrently. If register_sequential_subscriber was used for the datapoint, the message will be sent sequentially. If a datapoint is registered sequentially and concurrently, 2 messages will be sent.

§Remarks

This function will return true even if the message was not sent to some subscribers. False is only return whenever there is an error sending the message to the concurrent dispatcher or if the datapoint id is invalid.

pub fn publish_scaled_datapoint_value( &self, data_value: GCArc<GCDatapointValue>, ) -> bool

Publishes a datapoint value to the subscribers. In contrary to publish_datapoint_value, this method will not apply any scaling transformations.

This method may block if the datapoint was registered as a sequentially subscriber. If register_concurrent_subscriber was used for the datapoint, the message will be sent concurrently. If register_sequential_subscriber was used for the datapoint, the message will be sent sequentially. If a datapoint is registered sequentially and concurrently, 2 messages will be sent.

§Remarks

This function will return true even if the message was not sent to some subscribers. False is only return whenever there is an error sending the message to the concurrent dispatcher or if the datapoint id is invalid.

Trait Implementations§

§

impl Clone for GCMessagePublisher

§

fn clone(&self) -> GCMessagePublisher

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.