pub trait QueryHandler {
type BlockNumber: Zero + Encode;
type Error;
type UniversalLocation: Get<Junctions>;
// Required methods
fn new_query(
responder: impl Into<Location>,
timeout: Self::BlockNumber,
match_querier: impl Into<Location>,
) -> u64;
fn report_outcome(
message: &mut Xcm<()>,
responder: impl Into<Location>,
timeout: Self::BlockNumber,
) -> Result<u64, Self::Error>;
fn take_response(id: u64) -> QueryResponseStatus<Self::BlockNumber>;
}Expand description
Provides methods to expect responses from XCMs and query their status.
Required Associated Types§
Required Methods§
Sourcefn new_query(
responder: impl Into<Location>,
timeout: Self::BlockNumber,
match_querier: impl Into<Location>,
) -> u64
fn new_query( responder: impl Into<Location>, timeout: Self::BlockNumber, match_querier: impl Into<Location>, ) -> u64
Attempt to create a new query ID and register it as a query that is yet to respond.
Sourcefn report_outcome(
message: &mut Xcm<()>,
responder: impl Into<Location>,
timeout: Self::BlockNumber,
) -> Result<u64, Self::Error>
fn report_outcome( message: &mut Xcm<()>, responder: impl Into<Location>, timeout: Self::BlockNumber, ) -> Result<u64, Self::Error>
Consume message and return another which is equivalent to it except that it reports
back the outcome.
message: The message whose outcome should be reported.responder: The origin from which a response should be expected.timeout: The block number after which it is permissible to returnNotFoundfromtake_response.
report_outcome may return an error if the responder is not invertible.
It is assumed that the querier of the response will be Here.
The response can be queried with take_response.
Sourcefn take_response(id: u64) -> QueryResponseStatus<Self::BlockNumber>
fn take_response(id: u64) -> QueryResponseStatus<Self::BlockNumber>
Attempt to remove and return the response of query with ID query_id.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.