pub struct Cell { /* private fields */ }
Expand description
A Cell is a grouping of the resources necessary to run workflows on behalf of an agent. It does not have a lifetime of its own aside from the lifetimes of the resources which it holds references to. Any work it does is through running a workflow, passing references to the resources needed to complete that workflow.
A Cell is guaranteed to contain a Source Chain which has undergone Genesis.
The Conductor
manages a collection of Cells, and will call functions
on the Cell when a Conductor API method is called (either a
CellConductorApi
or an AppInterfaceApi
)
Implementations§
source§impl Cell
impl Cell
sourcepub async fn create(
id: CellId,
conductor_handle: ConductorHandle,
space: Space,
holochain_p2p_cell: HolochainP2pDna
) -> Result<(Self, InitialQueueTriggers), CellError>
pub async fn create( id: CellId, conductor_handle: ConductorHandle, space: Space, holochain_p2p_cell: HolochainP2pDna ) -> Result<(Self, InitialQueueTriggers), CellError>
Constructor for a Cell, which ensure the Cell is fully initialized before returning.
If it hasn’t happened already, a SourceChain will be created, and genesis will be run. If these have already happened, those steps are skipped.
No Cell will be created if the SourceChain is not ready to be used.
sourcepub async fn genesis<Ribosome>(
id: CellId,
conductor_handle: ConductorHandle,
authored_db: DbWrite<DbKindAuthored>,
dht_db: DbWrite<DbKindDht>,
dht_db_cache: DhtDbQueryCache,
ribosome: Ribosome,
membrane_proof: Option<MembraneProof>,
chc: Option<ChcImpl>
) -> Result<(), CellError>where
Ribosome: RibosomeT + 'static,
pub async fn genesis<Ribosome>( id: CellId, conductor_handle: ConductorHandle, authored_db: DbWrite<DbKindAuthored>, dht_db: DbWrite<DbKindDht>, dht_db_cache: DhtDbQueryCache, ribosome: Ribosome, membrane_proof: Option<MembraneProof>, chc: Option<ChcImpl> ) -> Result<(), CellError>where Ribosome: RibosomeT + 'static,
Performs the Genesis workflow for the Cell, ensuring that its initial records are committed. This is a prerequisite for any other interaction with the SourceChain
sourcepub fn holochain_p2p_dna(&self) -> &HolochainP2pDna
pub fn holochain_p2p_dna(&self) -> &HolochainP2pDna
Access a network sender that is partially applied to this cell’s DnaHash/AgentPubKey
sourcepub async fn handle_holochain_p2p_event(
&self,
evt: HolochainP2pEvent
) -> Result<(), CellError>
pub async fn handle_holochain_p2p_event( &self, evt: HolochainP2pEvent ) -> Result<(), CellError>
Entry point for incoming messages from the network that need to be handled
sourcepub async fn call_zome(
&self,
call: ZomeCall,
workspace_lock: Option<SourceChainWorkspace>
) -> Result<ZomeCallResult, CellError>
pub async fn call_zome( &self, call: ZomeCall, workspace_lock: Option<SourceChainWorkspace> ) -> Result<ZomeCallResult, CellError>
Function called by the Conductor
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Cell
impl Send for Cell
impl Sync for Cell
impl Unpin for Cell
impl !UnwindSafe for Cell
Blanket Implementations§
§impl<T> Any for Twhere
T: Any + ?Sized,
impl<T> Any for Twhere T: Any + ?Sized,
§fn type_id_compat(&self) -> TypeId
fn type_id_compat(&self) -> TypeId
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata ) -> <T as Pointee>::Metadata
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
§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>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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> 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<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.