Trait QueryHandler
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>;
fn expect_response(id: u64, response: Response);
}
Expand description
Provides methods to expect responses from XCMs and query their status.
Required Associated Types§
Required Methods§
fn 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.
fn 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 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
.
fn 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
.
fn expect_response(id: u64, response: Response)
fn expect_response(id: u64, 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.