Struct general_pub_sub::PubSub [−][src]
pub struct PubSub<TClient: Client<TIdentifier, TMessage>, TIdentifier: UniqueIdentifier, TMessage> { /* fields omitted */ }
A PubSub
Implementations
impl<TClient: Client<TIdentifier, TMessage>, TIdentifier: UniqueIdentifier, TMessage: Clone> PubSub<TClient, TIdentifier, TMessage>
[src]
impl<TClient: Client<TIdentifier, TMessage>, TIdentifier: UniqueIdentifier, TMessage: Clone> PubSub<TClient, TIdentifier, TMessage>
[src]Implementation for a PubSub
The standard workflow for a PubSub
is to:
- Create a new
PubSub
. - Add one or more
Clients
. - Subscribe the
Clients
toChannels
of interest. - Publish
Messages
to theChannels
. TheMessage
is broadcast to allClients
subscribed to theChannel
.
pub fn new() -> PubSub<TClient, TIdentifier, TMessage>
[src]
Creates a new PubSub
All Clients
of the PubSub
must use the same type of Identifier
and receive the same type of Message
.
pub fn add_client(&mut self, client: TClient)
[src]
Adds a Client
to the PubSub
pub fn remove_client(&mut self, client: TClient)
[src]
pub fn sub_client(
&mut self,
client: TClient,
channel: String
) -> Result<(), PubSubError>
[src]
&mut self,
client: TClient,
channel: String
) -> Result<(), PubSubError>
Subscribes a Client
to a Channel
.
Results in a PubSubError
when a Client
attempts to subscribe to a
Channel
that it is already subscribed to.
pub fn unsub_client(
&mut self,
client: TClient,
channel: String
) -> Result<(), PubSubError>
[src]
&mut self,
client: TClient,
channel: String
) -> Result<(), PubSubError>
Unsubscribes a Client
from a Channel
Results in a PubSubError
when a Client
attempts to unsubscribe
from a Channel
it is not subscribed to.
pub fn pub_message(&mut self, channel: String, msg: &TMessage)
[src]
Publishes a Message
to all Clients
subscribed to the provided Channel
.
Trait Implementations
Auto Trait Implementations
impl<TClient, TIdentifier, TMessage> RefUnwindSafe for PubSub<TClient, TIdentifier, TMessage> where
TClient: RefUnwindSafe,
TIdentifier: RefUnwindSafe,
TMessage: RefUnwindSafe,
impl<TClient, TIdentifier, TMessage> RefUnwindSafe for PubSub<TClient, TIdentifier, TMessage> where
TClient: RefUnwindSafe,
TIdentifier: RefUnwindSafe,
TMessage: RefUnwindSafe,
impl<TClient, TIdentifier, TMessage> Send for PubSub<TClient, TIdentifier, TMessage> where
TClient: Send,
TIdentifier: Send,
TMessage: Send,
impl<TClient, TIdentifier, TMessage> Send for PubSub<TClient, TIdentifier, TMessage> where
TClient: Send,
TIdentifier: Send,
TMessage: Send,
impl<TClient, TIdentifier, TMessage> Sync for PubSub<TClient, TIdentifier, TMessage> where
TClient: Sync,
TIdentifier: Sync,
TMessage: Sync,
impl<TClient, TIdentifier, TMessage> Sync for PubSub<TClient, TIdentifier, TMessage> where
TClient: Sync,
TIdentifier: Sync,
TMessage: Sync,
impl<TClient, TIdentifier, TMessage> Unpin for PubSub<TClient, TIdentifier, TMessage> where
TClient: Unpin,
TIdentifier: Unpin,
TMessage: Unpin,
impl<TClient, TIdentifier, TMessage> Unpin for PubSub<TClient, TIdentifier, TMessage> where
TClient: Unpin,
TIdentifier: Unpin,
TMessage: Unpin,
impl<TClient, TIdentifier, TMessage> UnwindSafe for PubSub<TClient, TIdentifier, TMessage> where
TClient: UnwindSafe,
TIdentifier: RefUnwindSafe + UnwindSafe,
TMessage: UnwindSafe,
impl<TClient, TIdentifier, TMessage> UnwindSafe for PubSub<TClient, TIdentifier, TMessage> where
TClient: UnwindSafe,
TIdentifier: RefUnwindSafe + UnwindSafe,
TMessage: UnwindSafe,