pub struct ApplicationRegistryView<C> {
pub published_bytecodes: MapView<C, BytecodeId, BytecodeLocation>,
pub known_applications: MapView<C, UserApplicationId, UserApplicationDescription>,
}Fields§
§published_bytecodes: MapView<C, BytecodeId, BytecodeLocation>The application bytecodes that have been published.
known_applications: MapView<C, UserApplicationId, UserApplicationDescription>The applications that are known by the chain.
Implementations§
source§impl<C> ApplicationRegistryView<C>
impl<C> ApplicationRegistryView<C>
sourcepub fn register_published_bytecode(
&mut self,
id: BytecodeId,
location: BytecodeLocation
) -> Result<(), SystemExecutionError>
pub fn register_published_bytecode( &mut self, id: BytecodeId, location: BytecodeLocation ) -> Result<(), SystemExecutionError>
Registers a published bytecode so that it can be used by applications.
Keeps track of the bytecode’s location so that it can be loaded when needed.
sourcepub async fn bytecode_locations(
&self
) -> Result<Vec<(BytecodeId, BytecodeLocation)>, SystemExecutionError>
pub async fn bytecode_locations( &self ) -> Result<Vec<(BytecodeId, BytecodeLocation)>, SystemExecutionError>
Returns all the known locations of published bytecode.
sourcepub async fn bytecode_location_for(
&self,
id: &BytecodeId
) -> Result<Option<BytecodeLocation>, SystemExecutionError>
pub async fn bytecode_location_for( &self, id: &BytecodeId ) -> Result<Option<BytecodeLocation>, SystemExecutionError>
Returns the location of published bytecode with the given ID.
sourcepub async fn register_application(
&mut self,
application: UserApplicationDescription
) -> Result<UserApplicationId, SystemExecutionError>
pub async fn register_application( &mut self, application: UserApplicationDescription ) -> Result<UserApplicationId, SystemExecutionError>
Registers an existing application.
Keeps track of an existing application that the current chain is seeing for the first time.
sourcepub async fn register_new_application(
&mut self,
application_id: UserApplicationId,
parameters: Vec<u8>,
required_application_ids: Vec<UserApplicationId>
) -> Result<(), SystemExecutionError>
pub async fn register_new_application( &mut self, application_id: UserApplicationId, parameters: Vec<u8>, required_application_ids: Vec<UserApplicationId> ) -> Result<(), SystemExecutionError>
Registers a newly created application.
sourcepub async fn describe_application(
&self,
id: UserApplicationId
) -> Result<UserApplicationDescription, SystemExecutionError>
pub async fn describe_application( &self, id: UserApplicationId ) -> Result<UserApplicationDescription, SystemExecutionError>
Retrieves an application’s description.
sourcepub async fn find_dependencies(
&self,
stack: Vec<UserApplicationId>,
registered_apps: &HashMap<UserApplicationId, UserApplicationDescription>
) -> Result<Vec<UserApplicationId>, SystemExecutionError>
pub async fn find_dependencies( &self, stack: Vec<UserApplicationId>, registered_apps: &HashMap<UserApplicationId, UserApplicationDescription> ) -> Result<Vec<UserApplicationId>, SystemExecutionError>
Retrieves the recursive dependencies of applications and apply a topological sort.
sourcepub async fn describe_applications_with_dependencies(
&self,
ids: Vec<UserApplicationId>,
extra_registered_apps: &HashMap<UserApplicationId, UserApplicationDescription>
) -> Result<Vec<UserApplicationDescription>, SystemExecutionError>
pub async fn describe_applications_with_dependencies( &self, ids: Vec<UserApplicationId>, extra_registered_apps: &HashMap<UserApplicationId, UserApplicationDescription> ) -> Result<Vec<UserApplicationDescription>, SystemExecutionError>
Retrieves applications’ descriptions preceded by their recursive dependencies.
Trait Implementations§
source§impl<C> Debug for ApplicationRegistryView<C>where
MapView<C, BytecodeId, BytecodeLocation>: Debug,
MapView<C, UserApplicationId, UserApplicationDescription>: Debug,
impl<C> Debug for ApplicationRegistryView<C>where
MapView<C, BytecodeId, BytecodeLocation>: Debug,
MapView<C, UserApplicationId, UserApplicationDescription>: Debug,
source§impl<C> HashableView<C> for ApplicationRegistryView<C>
impl<C> HashableView<C> for ApplicationRegistryView<C>
source§impl<C> View<C> for ApplicationRegistryView<C>
impl<C> View<C> for ApplicationRegistryView<C>
source§fn load<'async_trait>(
context: C
) -> Pin<Box<dyn Future<Output = Result<Self, ViewError>> + Send + 'async_trait>>where
Self: 'async_trait,
fn load<'async_trait>(
context: C
) -> Pin<Box<dyn Future<Output = Result<Self, ViewError>> + Send + 'async_trait>>where
Self: 'async_trait,
Creates a view or a subview.
source§fn rollback(&mut self)
fn rollback(&mut self)
Discards all pending changes. After that
flush should have no effect to storage.source§fn flush(&mut self, batch: &mut Batch) -> Result<(), ViewError>
fn flush(&mut self, batch: &mut Batch) -> Result<(), ViewError>
Persists changes to storage. This leaves the view still usable and is essentially neutral to the
program running. Crash-resistant storage implementations are expected to accumulate the desired
changes in the
batch variable first. If the view is dropped without calling flush, staged
changes are simply lost.Auto Trait Implementations§
impl<C> !RefUnwindSafe for ApplicationRegistryView<C>
impl<C> Send for ApplicationRegistryView<C>where
C: Send,
impl<C> Sync for ApplicationRegistryView<C>where
C: Sync,
impl<C> Unpin for ApplicationRegistryView<C>where
C: Unpin,
impl<C> UnwindSafe for ApplicationRegistryView<C>where
C: UnwindSafe,
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D ) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
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>
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Upcastable for T
impl<T> Upcastable for T
§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref
§fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
fn upcast_any_box(self: Box<T>) -> Box<dyn Any>
upcast boxed dyn