pub struct Spaces { /* private fields */ }
Expand description
This is the set of all current
DnaHash
spaces for all cells
installed on this conductor.
Implementations§
source§impl Spaces
impl Spaces
sourcepub fn new(config: &ConductorConfig) -> ConductorResult<Self>
pub fn new(config: &ConductorConfig) -> ConductorResult<Self>
Create a new empty set of DnaHash
spaces.
sourcepub async fn get_state(&self) -> ConductorResult<ConductorState>
pub async fn get_state(&self) -> ConductorResult<ConductorState>
Get the holochain conductor state
sourcepub async fn update_state<F>(&self, f: F) -> ConductorResult<ConductorState>where
F: FnOnce(ConductorState) -> ConductorResult<ConductorState> + 'static + Send,
pub async fn update_state<F>(&self, f: F) -> ConductorResult<ConductorState>where
F: FnOnce(ConductorState) -> ConductorResult<ConductorState> + 'static + Send,
Update the internal state with a pure function mapping old state to new
sourcepub async fn update_state_prime<F, O>(
&self,
f: F
) -> ConductorResult<(ConductorState, O)>where
F: FnOnce(ConductorState) -> ConductorResult<(ConductorState, O)> + Send + 'static,
O: Send + 'static,
pub async fn update_state_prime<F, O>(
&self,
f: F
) -> ConductorResult<(ConductorState, O)>where
F: FnOnce(ConductorState) -> ConductorResult<(ConductorState, O)> + Send + 'static,
O: Send + 'static,
Update the internal state with a pure function mapping old state to new, which may also produce an output value which will be the output of this function
sourcepub fn get_from_spaces<R, F: FnMut(&Space) -> R>(&self, f: F) -> Vec<R> ⓘ
pub fn get_from_spaces<R, F: FnMut(&Space) -> R>(&self, f: F) -> Vec<R> ⓘ
Get something from every space
sourcepub fn get_or_create_space(&self, dna_hash: &DnaHash) -> ConductorResult<Space>
pub fn get_or_create_space(&self, dna_hash: &DnaHash) -> ConductorResult<Space>
Get the space if it exists or create it if it doesn’t.
sourcepub fn cache(&self, dna_hash: &DnaHash) -> ConductorResult<DbWrite<DbKindCache>>
pub fn cache(&self, dna_hash: &DnaHash) -> ConductorResult<DbWrite<DbKindCache>>
Get the cache database (this will create the space if it doesn’t already exist).
Get the authored database (this will create the space if it doesn’t already exist).
sourcepub fn dht_db(&self, dna_hash: &DnaHash) -> ConductorResult<DbWrite<DbKindDht>>
pub fn dht_db(&self, dna_hash: &DnaHash) -> ConductorResult<DbWrite<DbKindDht>>
Get the dht database (this will create the space if it doesn’t already exist).
sourcepub fn p2p_agents_db(
&self,
dna_hash: &DnaHash
) -> ConductorResult<DbWrite<DbKindP2pAgents>>
pub fn p2p_agents_db(
&self,
dna_hash: &DnaHash
) -> ConductorResult<DbWrite<DbKindP2pAgents>>
Get the peer database (this will create the space if it doesn’t already exist).
sourcepub fn p2p_metrics_db(
&self,
dna_hash: &DnaHash
) -> ConductorResult<DbWrite<DbKindP2pMetrics>>
pub fn p2p_metrics_db(
&self,
dna_hash: &DnaHash
) -> ConductorResult<DbWrite<DbKindP2pMetrics>>
Get the peer database (this will create the space if it doesn’t already exist).
sourcepub fn p2p_batch_sender(
&self,
dna_hash: &DnaHash
) -> ConductorResult<Sender<P2pBatch>>
pub fn p2p_batch_sender(
&self,
dna_hash: &DnaHash
) -> ConductorResult<Sender<P2pBatch>>
Get the batch sender (this will create the space if it doesn’t already exist).
sourcepub async fn handle_query_op_hashes(
&self,
dna_hash: &DnaHash,
dht_arc_set: DhtArcSet,
window: TimeWindow,
max_ops: usize,
include_limbo: bool
) -> ConductorResult<Option<(Vec<DhtOpHash>, TimeWindowInclusive)>>
pub async fn handle_query_op_hashes(
&self,
dna_hash: &DnaHash,
dht_arc_set: DhtArcSet,
window: TimeWindow,
max_ops: usize,
include_limbo: bool
) -> ConductorResult<Option<(Vec<DhtOpHash>, TimeWindowInclusive)>>
the network module is requesting a list of dht op hashes
Get the DhtOpHash
es and authored timestamps for a given time window.
sourcepub async fn handle_fetch_op_regions(
&self,
dna_hash: &DnaHash,
topology: Topology,
dht_arc_set: DhtArcSet
) -> ConductorResult<RegionSetLtcs>
pub async fn handle_fetch_op_regions(
&self,
dna_hash: &DnaHash,
topology: Topology,
dht_arc_set: DhtArcSet
) -> ConductorResult<RegionSetLtcs>
The network module needs info about various groupings (“regions”) of ops
Note that this always includes all ops regardless of integration status. This is to avoid the degenerate case of freshly joining a network, and having several new peers gossiping with you at once about the same regions. If we calculate our region hash only by integrated ops, we will experience mismatches for a large number of ops repeatedly until we have integrated those ops. Note that when sending ops we filter out ops in limbo.
sourcepub async fn handle_fetch_op_data(
&self,
dna_hash: &DnaHash,
query: FetchOpDataQuery
) -> ConductorResult<Vec<(DhtOpHash, DhtOp)>>
pub async fn handle_fetch_op_data(
&self,
dna_hash: &DnaHash,
query: FetchOpDataQuery
) -> ConductorResult<Vec<(DhtOpHash, DhtOp)>>
The network module is requesting the content for dht ops
sourcepub async fn handle_fetch_op_data_by_regions(
&self,
dna_hash: &DnaHash,
regions: Vec<RegionBounds>
) -> ConductorResult<Vec<(DhtOpHash, DhtOp)>>
pub async fn handle_fetch_op_data_by_regions(
&self,
dna_hash: &DnaHash,
regions: Vec<RegionBounds>
) -> ConductorResult<Vec<(DhtOpHash, DhtOp)>>
The network module is requesting the content for dht ops
sourcepub async fn handle_fetch_op_data_by_hashes(
&self,
dna_hash: &DnaHash,
op_hashes: Vec<DhtOpHash>,
include_limbo: bool
) -> ConductorResult<Vec<(DhtOpHash, DhtOp)>>
pub async fn handle_fetch_op_data_by_hashes(
&self,
dna_hash: &DnaHash,
op_hashes: Vec<DhtOpHash>,
include_limbo: bool
) -> ConductorResult<Vec<(DhtOpHash, DhtOp)>>
The network module is requesting the content for dht ops
sourcepub async fn handle_publish(
&self,
dna_hash: &DnaHash,
request_validation_receipt: bool,
countersigning_session: bool,
ops: Vec<DhtOp>
) -> ConductorResult<()>
pub async fn handle_publish(
&self,
dna_hash: &DnaHash,
request_validation_receipt: bool,
countersigning_session: bool,
ops: Vec<DhtOp>
) -> ConductorResult<()>
we are receiving a “publish” event from the network
sourcepub fn recent_threshold(&self) -> Duration
pub fn recent_threshold(&self) -> Duration
Get the recent_threshold based on the kitsune network config
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Spaces
impl Send for Spaces
impl Sync for Spaces
impl Unpin for Spaces
impl !UnwindSafe for Spaces
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
§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.