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>where
C: Context + Clone + Send + Sync + 'static,
ViewError: From<C::Error>,
impl<C> ApplicationRegistryView<C>where C: Context + Clone + Send + Sync + 'static, ViewError: From<C::Error>,
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>where
C: Context + Send + Sync + Clone + 'static,
ViewError: From<C::Error>,
impl<C> HashableView<C> for ApplicationRegistryView<C>where C: Context + Send + Sync + Clone + 'static, ViewError: From<C::Error>,
source§impl<C> View<C> for ApplicationRegistryView<C>where
C: Context + Send + Sync + Clone + 'static,
ViewError: From<C::Error>,
impl<C> View<C> for ApplicationRegistryView<C>where C: Context + Send + Sync + Clone + 'static, ViewError: From<C::Error>,
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.source§fn delete(self, batch: &mut Batch)
fn delete(self, batch: &mut Batch)
Instead of persisting changes, clears all the data that belong to this view and its
subviews. Crash-resistant storage implementations are expected to accumulate the
desired changes into the
batch
variable first.
No data/metadata at all is left after deletion. The view is consumed by delete
.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 Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere W: DeserializeWith<F, T, D>, D: Fallible + ?Sized, F: ?Sized,
§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 Twhere
T: Any + Send + Sync + 'static,
impl<T> Upcastable for Twhere T: Any + Send + Sync + 'static,
§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