pub struct AgentBuilder { /* private fields */ }
Expand description
An agent builder.
Implementations§
Source§impl AgentBuilder
impl AgentBuilder
Sourcepub fn new(agent_id: AgentId, api_version: &str) -> Self
pub fn new(agent_id: AgentId, api_version: &str) -> Self
Creates a new AgentBuilder.
§Arguments
agent_id
– AgentId 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");
Sourcepub fn connection_version(self, version: &str) -> Self
pub fn connection_version(self, version: &str) -> Self
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.
Sourcepub fn connection_mode(self, mode: ConnectionMode) -> Self
pub fn connection_mode(self, mode: ConnectionMode) -> Self
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.
Sourcepub fn start(
self,
config: &AgentConfig,
) -> Result<(Agent, UnboundedReceiver<AgentNotification>), Error>
pub fn start( self, config: &AgentConfig, ) -> Result<(Agent, UnboundedReceiver<AgentNotification>), Error>
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§
Auto Trait Implementations§
impl Freeze for AgentBuilder
impl RefUnwindSafe for AgentBuilder
impl Send for AgentBuilder
impl Sync for AgentBuilder
impl Unpin for AgentBuilder
impl UnwindSafe for AgentBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more