pub struct Cell<Api = CellConductorApi, P2pCell = HolochainP2pDna> where
Api: CellConductorApiT,
P2pCell: HolochainP2pDnaT, { /* 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
sourceimpl Cell
impl Cell
sourcepub async fn create(
id: CellId,
conductor_handle: ConductorHandle,
space: Space,
holochain_p2p_cell: HolochainP2pDna,
managed_task_add_sender: Sender<ManagedTaskAdd>,
managed_task_stop_broadcaster: Sender<()>
) -> Result<(Self, InitialQueueTriggers), CellError>
pub async fn create(
id: CellId,
conductor_handle: ConductorHandle,
space: Space,
holochain_p2p_cell: HolochainP2pDna,
managed_task_add_sender: Sender<ManagedTaskAdd>,
managed_task_stop_broadcaster: Sender<()>
) -> 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_env: DbWrite<DbKindAuthored>,
dht_env: DbWrite<DbKindDht>,
ribosome: Ribosome,
membrane_proof: Option<SerializedBytes>
) -> Result<(), CellError> where
Ribosome: RibosomeT + Send + 'static,
pub async fn genesis<Ribosome>(
id: CellId,
conductor_handle: ConductorHandle,
authored_env: DbWrite<DbKindAuthored>,
dht_env: DbWrite<DbKindDht>,
ribosome: Ribosome,
membrane_proof: Option<SerializedBytes>
) -> Result<(), CellError> where
Ribosome: RibosomeT + Send + 'static,
Performs the Genesis workflow the Cell, ensuring that its initial elements 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<Api = CellConductorApi, P2pCell = HolochainP2pDna> !RefUnwindSafe for Cell<Api, P2pCell>
impl<Api, P2pCell> Send for Cell<Api, P2pCell> where
P2pCell: Send,
impl<Api, P2pCell> Sync for Cell<Api, P2pCell> where
P2pCell: Sync,
impl<Api, P2pCell> Unpin for Cell<Api, P2pCell> where
Api: Unpin,
P2pCell: Unpin,
impl<Api = CellConductorApi, P2pCell = HolochainP2pDna> !UnwindSafe for Cell<Api, P2pCell>
Blanket Implementations
impl<T> Any for T where
T: Any + ?Sized,
impl<T> Any for T where
T: Any + ?Sized,
fn type_id_compat(&self) -> TypeId
fn type_id_compat(&self) -> TypeId
TODO: once 1.33.0 is the minimum supported compiler version, remove Any::type_id_compat and use StdAny::type_id instead. https://github.com/rust-lang/rust/issues/27745 Read more
impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
pub fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
pub fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
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>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more