pub struct AgentRuntime<S = Lmdb>where
S: Db,{ /* private fields */ }Implementations§
Source§impl<S: Db> Runtime<S>
impl<S: Db> Runtime<S>
pub fn new( storage: &S, agent_store: CodeStore<S>, lock: MutLock, ) -> Result<Self>
Sourcepub fn agent_exists(&self, aid: &AgentId) -> Result<bool>
pub fn agent_exists(&self, aid: &AgentId) -> Result<bool>
Check whether a sw-agent exists
Sourcepub fn agent_revoked(&self, aid: &AgentId) -> Result<bool>
pub fn agent_revoked(&self, aid: &AgentId) -> Result<bool>
Check whether a sw-agent is revoked
pub fn instantiate_sw_agent( &mut self, agent_id: AgentId, module_bytes: &[u8], ) -> Result<()>
Sourcepub async fn check_module_and_state(
&mut self,
module_bytes: Vec<u8>,
state: Value,
) -> Result<(bool, Vec<String>)>
pub async fn check_module_and_state( &mut self, module_bytes: Vec<u8>, state: Value, ) -> Result<(bool, Vec<String>)>
Sanity check for introductions
Sourcepub fn set_executor(&mut self, executor_id: BorderlessId) -> Result<()>
pub fn set_executor(&mut self, executor_id: BorderlessId) -> Result<()>
Sets the currently active executor
This buffers the BorderlessId of the executor, to later write it into the dedicated register,
so that the wasm side can query it.
Sourcepub fn register_ws(&mut self, aid: AgentId) -> Result<Receiver<Vec<u8>>>
pub fn register_ws(&mut self, aid: AgentId) -> Result<Receiver<Vec<u8>>>
Registers a new websocket client
pub async fn initialize(&mut self, aid: &AgentId) -> Result<Init>
pub async fn process_ws_msg( &mut self, aid: &AgentId, msg: Vec<u8>, ) -> Result<Option<Events>>
pub async fn on_ws_open(&mut self, aid: &AgentId) -> Result<Option<Events>>
pub async fn on_ws_error(&mut self, aid: &AgentId) -> Result<Option<Events>>
pub async fn on_ws_close(&mut self, aid: &AgentId) -> Result<Option<Events>>
pub async fn process_introduction( &mut self, introduction: Introduction, ) -> Result<()>
pub async fn process_revocation(&mut self, revocation: Revocation) -> Result<()>
pub async fn process_action( &mut self, aid: &AgentId, action: CallAction, ) -> Result<Option<Events>>
pub async fn http_get_state( &mut self, aid: &AgentId, path: String, ) -> Result<(u16, Vec<u8>)>
Sourcepub async fn http_post_action(
&mut self,
aid: &AgentId,
path: String,
payload: Vec<u8>,
writer: &BorderlessId,
) -> Result<Result<(Events, CallAction), (u16, String)>>
pub async fn http_post_action( &mut self, aid: &AgentId, path: String, payload: Vec<u8>, writer: &BorderlessId, ) -> Result<Result<(Events, CallAction), (u16, String)>>
Uses a POST request to parse and generate a CallAction object.
The return type is a nested result. The outer result type should convert to a server error, as it represents errors in the runtime itself. The inner error type comes from the wasm code and contains the error status and message.
Sourcepub async fn get_symbols(&mut self, aid: &AgentId) -> Result<Option<Symbols>>
pub async fn get_symbols(&mut self, aid: &AgentId) -> Result<Option<Symbols>>
Returns the symbols of the contract
pub fn available_agents(&self) -> Result<Vec<AgentId>>
Auto Trait Implementations§
impl<S> Freeze for Runtime<S>where
S: Freeze,
impl<S = Lmdb> !RefUnwindSafe for Runtime<S>
impl<S> Send for Runtime<S>
impl<S> Sync for Runtime<S>
impl<S> Unpin for Runtime<S>where
S: Unpin,
impl<S = Lmdb> !UnwindSafe for Runtime<S>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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