[][src]Struct svc_agent::mqtt::AgentBuilder

pub struct AgentBuilder { /* fields omitted */ }

An agent builder.

Implementations

impl AgentBuilder[src]

pub fn new(agent_id: AgentId, api_version: &str) -> Self[src]

Creates a new AgentBuilder.

Arguments

  • agent_idAgentId to connect as.
  • api_version – agent's API version string.

Example

ket account_id = AccountId::new("service_name", "svc.example.org");
let agent_id = AgentId::new("instance01", account_id);
let builder = AgentBuilder::new(agent_id, "v1");

pub fn connection_version(self, version: &str) -> Self[src]

Sets a connection version.

This is different from agent's API version. Connection version is the version of conventions that this library implements. Currently it's v2 but if you know what you're doing you may override it.

pub fn connection_mode(self, mode: ConnectionMode) -> Self[src]

Sets a connection mode for the agent to claim.

Connection mode defines a level a privileges an agent may use. See ConnectionMode for available modes and details.

The broker requires authorization to use the claimed mode and may refuse the connection if not authorized.

pub fn start(
    self,
    config: &AgentConfig
) -> Result<(Agent, Receiver<AgentNotification>), Error>
[src]

Starts an MQTT client and in case of successful connection returns a tuple containing an Agent instance and a channel receiver which one can iterate over to get incoming messages.

Example

let (agent, rx) = builder.start(&config)?;

// Subscribe to requests.
agent.subscribe(
    &Subscription::multicast_requests(Some("v1")),
    QoS::AtMostOnce,
    Some(&group),
)?;

// Message handling loop.
for notification in rx {
    match notification {
        svc_agent::mqtt::AgentNotification::Message(message_result, message_metadata) => {
            println!(
                "Incoming message: {:?} to topic {}",
                message_result,
                message_metadata.topic
            );
        }
        _ => ()
    }
}

Trait Implementations

impl Debug for AgentBuilder[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,