azure_iot_operations_mqtt::session

Struct SessionExitHandle

Source
pub struct SessionExitHandle(/* private fields */);
Expand description

Handle used to end an MQTT session.

PLEASE NOTE WELL This struct’s API is designed around negotiating a graceful exit with the MQTT broker. However, this is not actually possible right now due to a bug in underlying MQTT library.

Implementations§

Source§

impl SessionExitHandle

Source

pub async fn try_exit(&self) -> Result<(), SessionExitError>

Attempt to gracefully end the MQTT session running in the Session that created this handle. This will cause the Session::run() method to return.

Note that a graceful exit requires the Session to be connected to the broker. If the Session is not connected, this method will return an error. If the Session connection has been recently lost, the Session may not yet realize this, and it can take until up to the keep-alive interval for the Session to realize it is disconnected, after which point this method will return an error. Under this circumstance, the attempt was still made, and may eventually succeed even if this method returns the error

§Errors
Source

pub async fn try_exit_timeout( &self, timeout: Duration, ) -> Result<(), SessionExitError>

Attempt to gracefully end the MQTT session running in the Session that created this handle. This will cause the Session::run() method to return.

Note that a graceful exit requires the Session to be connected to the broker. If the Session is not connected, this method will return an error. If the Session connection has been recently lost, the Session may not yet realize this, and it can take until up to the keep-alive interval for the Session to realize it is disconnected, after which point this method will return an error. Under this circumstance, the attempt was still made, and may eventually succeed even if this method returns the error If the graceful Session exit attempt does not complete within the specified timeout, this method will return an error.

§Arguments
  • timeout - The duration to wait for the graceful exit to complete before returning an error.
§Errors
Source

pub async fn exit_force(&self) -> bool

Forcefully end the MQTT session running in the Session that created this handle. This will cause the Session::run() method to return.

The Session will be granted a period of 1 second to attempt a graceful exit before forcing the exit. If the exit is forced, the broker will not be aware the MQTT session has ended.

Returns true if the exit was graceful, and false if the exit was forced.

Trait Implementations§

Source§

impl Clone for SessionExitHandle

Source§

fn clone(&self) -> SessionExitHandle

Returns a copy 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, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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.
§

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

§

fn vzip(self) -> V