pub trait QueryHandler {
type BlockNumber: Zero + Encode;
type Error;
type UniversalLocation: Get<InteriorLocation>;
// Required methods
fn new_query(
responder: impl Into<Location>,
timeout: Self::BlockNumber,
match_querier: impl Into<Location>,
) -> QueryId;
fn report_outcome(
message: &mut Xcm<()>,
responder: impl Into<Location>,
timeout: Self::BlockNumber,
) -> Result<QueryId, Self::Error>;
fn take_response(id: QueryId) -> QueryResponseStatus<Self::BlockNumber>;
fn expect_response(id: QueryId, response: Response);
}
Expand description
Provides methods to expect responses from XCMs and query their status.
Required Associated Types§
type BlockNumber: Zero + Encode
type Error
type UniversalLocation: Get<InteriorLocation>
Required Methods§
Sourcefn new_query(
responder: impl Into<Location>,
timeout: Self::BlockNumber,
match_querier: impl Into<Location>,
) -> QueryId
fn new_query( responder: impl Into<Location>, timeout: Self::BlockNumber, match_querier: impl Into<Location>, ) -> QueryId
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<QueryId, Self::Error>
fn report_outcome( message: &mut Xcm<()>, responder: impl Into<Location>, timeout: Self::BlockNumber, ) -> Result<QueryId, 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 returnNotFound
fromtake_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: QueryId) -> QueryResponseStatus<Self::BlockNumber>
fn take_response(id: QueryId) -> QueryResponseStatus<Self::BlockNumber>
Attempt to remove and return the response of query with ID query_id
.
Sourcefn expect_response(id: QueryId, response: Response)
fn expect_response(id: QueryId, response: Response)
Makes sure to expect a response with the given 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.