Struct oasis_runtime_sdk::dispatcher::Dispatcher

source ·
pub struct Dispatcher<R: Runtime> { /* private fields */ }
Expand description

The runtime dispatcher.

Implementations§

source§

impl<R: Runtime> Dispatcher<R>

source

pub fn decode_tx<C: Context>(ctx: &C, tx: &[u8]) -> Result<Transaction, Error>

Decode a runtime transaction.

source

pub fn dispatch_tx_call<C: Context>( ctx: &C, call: Call, opts: &DispatchOptions<'_>, ) -> (CallResult, Metadata)

Run the dispatch steps inside a transaction context. This includes the before call hooks, the call itself and after call hooks. The after call hooks are called regardless if the call succeeds or not.

source

pub fn dispatch_tx_opts<C: Context>( ctx: &C, tx: Transaction, opts: &DispatchOptions<'_>, ) -> Result<DispatchResult, Error>

Dispatch a runtime transaction in the given context with the provided options.

source

pub fn dispatch_tx<C: Context>( ctx: &C, tx_size: u32, tx: Transaction, tx_index: usize, ) -> Result<DispatchResult, Error>

Dispatch a runtime transaction in the given context.

source

pub fn check_tx<C: Context>( ctx: &C, tx_size: u32, tx: Transaction, ) -> Result<CheckTxResult, Error>

Check whether the given transaction is valid.

source

pub fn execute_tx_opts<C: Context>( ctx: &C, tx: Transaction, opts: &DispatchOptions<'_>, ) -> Result<(CallResult, Tags), Error>

Execute the given transaction, returning unserialized results.

source

pub fn execute_tx<C: Context>( ctx: &C, tx_size: u32, tx_hash: Hash, tx: Transaction, tx_index: usize, ) -> Result<ExecuteTxResult, Error>

Execute the given transaction.

source

pub fn prefetch_tx( prefixes: &mut BTreeSet<Prefix>, tx: Transaction, ) -> Result<(), RuntimeError>

Prefetch prefixes for the given transaction.

source

pub fn dispatch_query<C: Context>( ctx: &C, method: &str, args: Vec<u8>, ) -> Result<Vec<u8>, RuntimeError>

Process the given runtime query.

source

pub fn register_enclaverpc(&self, rpc: &mut RpcDispatcher)
where R: Runtime + Send + Sync + 'static,

Register EnclaveRPC methods.

Trait Implementations§

source§

impl<R: Runtime + Send + Sync> Dispatcher for Dispatcher<R>

source§

fn execute_batch( &self, rt_ctx: Context<'_>, batch: &TxnBatch, _in_msgs: &[IncomingMessage], ) -> Result<ExecuteBatchResult, RuntimeError>

Execute the transactions in the given batch. Read more
source§

fn schedule_and_execute_batch( &self, rt_ctx: Context<'_>, batch: &mut TxnBatch, _in_msgs: &[IncomingMessage], ) -> Result<ExecuteBatchResult, RuntimeError>

Schedule and execute transactions in the given batch. Read more
source§

fn check_batch( &self, rt_ctx: Context<'_>, batch: &TxnBatch, ) -> Result<Vec<CheckTxResult>, RuntimeError>

Check the transactions in the given batch for validity. Read more
source§

fn set_abort_batch_flag(&mut self, _abort_batch: Arc<AtomicBool>)

Configure abort batch flag.
source§

fn query( &self, rt_ctx: Context<'_>, method: &str, args: Vec<u8>, ) -> Result<Vec<u8>, RuntimeError>

Process a query. Read more
source§

fn is_supported(&self) -> bool

Whether dispatch is supported by this dispatcher.
source§

fn finalize(&self, _new_storage_root: Hash)

Invoke the finalizer (if any).

Auto Trait Implementations§

§

impl<R> Freeze for Dispatcher<R>

§

impl<R> !RefUnwindSafe for Dispatcher<R>

§

impl<R> Send for Dispatcher<R>
where R: Send,

§

impl<R> Sync for Dispatcher<R>
where R: Sync,

§

impl<R> Unpin for Dispatcher<R>
where R: Unpin,

§

impl<R> !UnwindSafe for Dispatcher<R>

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
§

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

§

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

§

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

§

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, 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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