Querier

Struct Querier 

Source
pub struct Querier<'a> { /* private fields */ }
Expand description

A querier that allows sending queries to a Queryable.

The querier is a preconfigured object that can be used to send multiple queries to a given key expression. It is declared using Session::declare_querier.

§Examples


let session = zenoh::open(zenoh::Config::default()).await.unwrap();
let querier = session.declare_querier("key/expression").await.unwrap();
let replies = querier.get().await.unwrap();

Implementations§

Source§

impl<'a> Querier<'a>

Source

pub fn id(&self) -> EntityGlobalId

Available on crate feature unstable only.

Returns the EntityGlobalId of this Querier.

This API has been marked as unstable: it works as advertised, but it may be changed in a future release.
§Examples

let session = zenoh::open(zenoh::Config::default()).await.unwrap();
let querier = session.declare_querier("key/expression")
    .await
    .unwrap();
let querier_id = querier.id();
Source

pub fn key_expr(&self) -> &KeyExpr<'a>

Returns the KeyExpr this querier sends queries on.

Source

pub fn congestion_control(&self) -> CongestionControl

Get the congestion_control applied when routing the data.

Source

pub fn priority(&self) -> Priority

Get the priority of the written data.

Source

pub fn accept_replies(&self) -> ReplyKeyExpr

Available on crate feature unstable only.

See details in the ReplyKeyExpr documentation.

This API has been marked as unstable: it works as advertised, but it may be changed in a future release.
Queries may or may not accept replies on key expressions that do not intersect with their own key expression. This getter allows you to check whether this querier accepts such disjoint replies.
Source

pub fn get(&self) -> QuerierGetBuilder<'_, '_, DefaultHandler>

Send a query. Returns a builder to customize the query. The builder resolves to a handler generating a series of Reply values for each response received.

§Examples

let session = zenoh::open(zenoh::Config::default()).await.unwrap();
let querier = session.declare_querier("key/expression").await.unwrap();
let replies = querier.get();
Source

pub fn undeclare(self) -> impl Resolve<ZResult<()>> + 'a

Undeclare the Querier, informing the network that it needn’t optimize queries for its key expression anymore.

§Examples

let session = zenoh::open(zenoh::Config::default()).await.unwrap();
let querier = session.declare_querier("key/expression").await.unwrap();
querier.undeclare().await.unwrap();
Source

pub fn matching_status(&self) -> impl Resolve<ZResult<MatchingStatus>> + '_

Return the MatchingStatus of the querier.

MatchingStatus::matching will return true if there are Queryables matching the Querier’s key expression and target, and false otherwise.

§Examples

let session = zenoh::open(zenoh::Config::default()).await.unwrap();
let querier = session.declare_querier("key/expression").await.unwrap();
let matching_queriers: bool = querier
    .matching_status()
    .await
    .unwrap()
    .matching();
Source

pub fn matching_listener(&self) -> MatchingListenerBuilder<'_, DefaultHandler>

Return a MatchingListener for this Querier.

The MatchingListener will send a notification each time the MatchingStatus of the Querier changes.

§Examples

let session = zenoh::open(zenoh::Config::default()).await.unwrap();
let querier = session.declare_querier("key/expression").await.unwrap();
let matching_listener = querier.matching_listener().await.unwrap();
while let Ok(matching_status) = matching_listener.recv_async().await {
    if matching_status.matching() {
        println!("Querier has matching queryables.");
    } else {
        println!("Querier has NO MORE matching queryables.");
    }
}

Trait Implementations§

Source§

impl<'a> Debug for Querier<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for Querier<'_>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Querier<'a>

§

impl<'a> !RefUnwindSafe for Querier<'a>

§

impl<'a> Send for Querier<'a>

§

impl<'a> Sync for Querier<'a>

§

impl<'a> Unpin for Querier<'a>

§

impl<'a> !UnwindSafe for Querier<'a>

Blanket Implementations§

Source§

impl<Source> AccessAs for Source

Source§

fn ref_as<T>(&self) -> <Source as IGuardRef<T>>::Guard<'_>
where Source: IGuardRef<T>, T: ?Sized,

Provides immutable access to a type as if it were its ABI-unstable equivalent.
Source§

fn mut_as<T>(&mut self) -> <Source as IGuardMut<T>>::GuardMut<'_>
where Source: IGuardMut<T>, T: ?Sized,

Provides mutable access to a type as if it were its ABI-unstable equivalent.
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> AsNode<T> for T

Source§

fn as_node(&self) -> &T

Source§

impl<T> AsNodeMut<T> for T

Source§

fn as_node_mut(&mut self) -> &mut T

Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, As> IGuardMut<As> for T
where T: Into<As>, As: Into<T>,

Source§

type GuardMut<'a> = MutAs<'a, T, As> where T: 'a

The type of the guard which will clean up the temporary after applying its changes to the original.
Source§

fn guard_mut_inner(&mut self) -> <T as IGuardMut<As>>::GuardMut<'_>

Construct the temporary and guard it through a mutable reference.
Source§

impl<T, As> IGuardRef<As> for T
where T: Into<As>, As: Into<T>,

Source§

type Guard<'a> = RefAs<'a, T, As> where T: 'a

The type of the guard which will clean up the temporary.
Source§

fn guard_ref_inner(&self) -> <T as IGuardRef<As>>::Guard<'_>

Construct the temporary and guard it through an immutable reference.
Source§

impl<T> Includes<End> for T

Source§

type Output = End

The result
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T, S> Undeclarable<S> for T
where T: UndeclarableSealed<S>,