Struct holochain::prelude::kitsune_p2p::dependencies::kitsune_p2p_types::dependencies::ghost_actor::GhostSender
source · pub struct GhostSender<E>(_, _)
where
E: GhostEvent;
Expand description
A provided GhostSender (impl GhostChannelSender) implementation.
Trait Implementations§
source§impl<E> Clone for GhostSender<E>where
E: GhostEvent,
impl<E> Clone for GhostSender<E>where
E: GhostEvent,
source§fn clone(&self) -> GhostSender<E>
fn clone(&self) -> GhostSender<E>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<E> GhostChannelSender<E> for GhostSender<E>where
E: GhostEvent,
impl<E> GhostChannelSender<E> for GhostSender<E>where
E: GhostEvent,
source§fn ghost_actor_channel_send(
&self,
event: E
) -> MustBoxFuture<'static, Result<(), GhostError>> ⓘ
fn ghost_actor_channel_send(
&self,
event: E
) -> MustBoxFuture<'static, Result<(), GhostError>> ⓘ
Forward a GhostEvent along this channel.
source§impl<E> GhostControlSender<E> for GhostSender<E>where
E: GhostEvent,
impl<E> GhostControlSender<E> for GhostSender<E>where
E: GhostEvent,
source§fn ghost_actor_shutdown(&self) -> MustBoxFuture<'static, Result<(), GhostError>> ⓘ
fn ghost_actor_shutdown(&self) -> MustBoxFuture<'static, Result<(), GhostError>> ⓘ
Shutdown the actor once all pending messages have been processed.
Future completes when the actor is shutdown.
source§fn ghost_actor_shutdown_immediate(
&self
) -> MustBoxFuture<'static, Result<(), GhostError>> ⓘ
fn ghost_actor_shutdown_immediate(
&self
) -> MustBoxFuture<'static, Result<(), GhostError>> ⓘ
Shutdown the actor immediately. All pending tasks will error.
source§fn ghost_actor_is_active(&self) -> bool
fn ghost_actor_is_active(&self) -> bool
Returns true if the receiving actor is still running.
source§impl<E> Hash for GhostSender<E>where
E: GhostEvent,
impl<E> Hash for GhostSender<E>where
E: GhostEvent,
source§impl HolochainP2pRefToDna for GhostSender<HolochainP2p>
impl HolochainP2pRefToDna for GhostSender<HolochainP2p>
source§fn into_dna(
self,
dna_hash: HoloHash<Dna>,
chc: Option<Arc<dyn ChainHeadCoordinator<Item = SignedHashed<Action>> + Send + Sync + 'static>>
) -> HolochainP2pDna
fn into_dna(
self,
dna_hash: HoloHash<Dna>,
chc: Option<Arc<dyn ChainHeadCoordinator<Item = SignedHashed<Action>> + Send + Sync + 'static>>
) -> HolochainP2pDna
Partially apply dna_hash && agent_pub_key to this sender,
binding it to a specific dna context.
source§fn to_dna(
&self,
dna_hash: HoloHash<Dna>,
chc: Option<Arc<dyn ChainHeadCoordinator<Item = SignedHashed<Action>> + Send + Sync + 'static>>
) -> HolochainP2pDna
fn to_dna(
&self,
dna_hash: HoloHash<Dna>,
chc: Option<Arc<dyn ChainHeadCoordinator<Item = SignedHashed<Action>> + Send + Sync + 'static>>
) -> HolochainP2pDna
Clone and partially apply dna_hash && agent_pub_key to this sender,
binding it to a specific dna context.
source§impl<E> PartialEq<GhostSender<E>> for GhostSender<E>where
E: GhostEvent,
impl<E> PartialEq<GhostSender<E>> for GhostSender<E>where
E: GhostEvent,
source§fn eq(&self, o: &GhostSender<E>) -> bool
fn eq(&self, o: &GhostSender<E>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.impl<E> Eq for GhostSender<E>where
E: GhostEvent,
Auto Trait Implementations§
impl<E> !RefUnwindSafe for GhostSender<E>
impl<E> Send for GhostSender<E>
impl<E> Sync for GhostSender<E>
impl<E> Unpin for GhostSender<E>
impl<E> !UnwindSafe for GhostSender<E>
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
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
§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.
§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<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§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<S> HolochainP2pEventSender for Swhere
S: GhostChannelSender<HolochainP2pEvent>,
impl<S> HolochainP2pEventSender for Swhere
S: GhostChannelSender<HolochainP2pEvent>,
source§fn put_agent_info_signed(
&self,
dna_hash: HoloHash<Dna>,
peer_data: Vec<AgentInfoSigned, Global>
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
fn put_agent_info_signed(
&self,
dna_hash: HoloHash<Dna>,
peer_data: Vec<AgentInfoSigned, Global>
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
We need to store signed agent info.
source§fn query_agent_info_signed(
&self,
dna_hash: HoloHash<Dna>,
agents: Option<HashSet<Arc<KitsuneAgent>, RandomState>>,
kitsune_space: Arc<KitsuneSpace>
) -> MustBoxFuture<'static, Result<Vec<AgentInfoSigned, Global>, HolochainP2pError>> ⓘ
fn query_agent_info_signed(
&self,
dna_hash: HoloHash<Dna>,
agents: Option<HashSet<Arc<KitsuneAgent>, RandomState>>,
kitsune_space: Arc<KitsuneSpace>
) -> MustBoxFuture<'static, Result<Vec<AgentInfoSigned, Global>, HolochainP2pError>> ⓘ
We need to get previously stored agent info.
source§fn query_gossip_agents(
&self,
dna_hash: HoloHash<Dna>,
agents: Option<Vec<HoloHash<Agent>, Global>>,
kitsune_space: Arc<KitsuneSpace>,
since_ms: u64,
until_ms: u64,
arc_set: Arc<DhtArcSet>
) -> MustBoxFuture<'static, Result<Vec<AgentInfoSigned, Global>, HolochainP2pError>> ⓘ
fn query_gossip_agents(
&self,
dna_hash: HoloHash<Dna>,
agents: Option<Vec<HoloHash<Agent>, Global>>,
kitsune_space: Arc<KitsuneSpace>,
since_ms: u64,
until_ms: u64,
arc_set: Arc<DhtArcSet>
) -> MustBoxFuture<'static, Result<Vec<AgentInfoSigned, Global>, HolochainP2pError>> ⓘ
We need to get agents that fit into an arc set for gossip.
source§fn query_agent_info_signed_near_basis(
&self,
dna_hash: HoloHash<Dna>,
kitsune_space: Arc<KitsuneSpace>,
basis_loc: u32,
limit: u32
) -> MustBoxFuture<'static, Result<Vec<AgentInfoSigned, Global>, HolochainP2pError>> ⓘ
fn query_agent_info_signed_near_basis(
&self,
dna_hash: HoloHash<Dna>,
kitsune_space: Arc<KitsuneSpace>,
basis_loc: u32,
limit: u32
) -> MustBoxFuture<'static, Result<Vec<AgentInfoSigned, Global>, HolochainP2pError>> ⓘ
query agent info in order of closeness to a basis location.
source§fn query_peer_density(
&self,
dna_hash: HoloHash<Dna>,
kitsune_space: Arc<KitsuneSpace>,
dht_arc: DhtArc
) -> MustBoxFuture<'static, Result<PeerView, HolochainP2pError>> ⓘ
fn query_peer_density(
&self,
dna_hash: HoloHash<Dna>,
kitsune_space: Arc<KitsuneSpace>,
dht_arc: DhtArc
) -> MustBoxFuture<'static, Result<PeerView, HolochainP2pError>> ⓘ
Query the peer density of a space for a given [
DhtArc
].source§fn call_remote(
&self,
dna_hash: HoloHash<Dna>,
from_agent: HoloHash<Agent>,
signature: Signature,
to_agent: HoloHash<Agent>,
zome_name: ZomeName,
fn_name: FunctionName,
cap_secret: Option<CapSecret>,
payload: ExternIO,
nonce: Nonce256Bits,
expires_at: Timestamp
) -> MustBoxFuture<'static, Result<SerializedBytes, HolochainP2pError>> ⓘ
fn call_remote(
&self,
dna_hash: HoloHash<Dna>,
from_agent: HoloHash<Agent>,
signature: Signature,
to_agent: HoloHash<Agent>,
zome_name: ZomeName,
fn_name: FunctionName,
cap_secret: Option<CapSecret>,
payload: ExternIO,
nonce: Nonce256Bits,
expires_at: Timestamp
) -> MustBoxFuture<'static, Result<SerializedBytes, HolochainP2pError>> ⓘ
A remote node is attempting to make a remote call on us.
source§fn publish(
&self,
dna_hash: HoloHash<Dna>,
request_validation_receipt: bool,
countersigning_session: bool,
ops: Vec<DhtOp, Global>
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
fn publish(
&self,
dna_hash: HoloHash<Dna>,
request_validation_receipt: bool,
countersigning_session: bool,
ops: Vec<DhtOp, Global>
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
A remote node is publishing data in a range we claim to be holding.
source§fn get(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
dht_hash: HoloHash<AnyDht>,
options: GetOptions
) -> MustBoxFuture<'static, Result<WireOps, HolochainP2pError>> ⓘ
fn get(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
dht_hash: HoloHash<AnyDht>,
options: GetOptions
) -> MustBoxFuture<'static, Result<WireOps, HolochainP2pError>> ⓘ
A remote node is requesting entry data from us.
source§fn get_meta(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
dht_hash: HoloHash<AnyDht>,
options: GetMetaOptions
) -> MustBoxFuture<'static, Result<MetadataSet, HolochainP2pError>> ⓘ
fn get_meta(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
dht_hash: HoloHash<AnyDht>,
options: GetMetaOptions
) -> MustBoxFuture<'static, Result<MetadataSet, HolochainP2pError>> ⓘ
A remote node is requesting metadata from us.
source§fn get_links(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
link_key: WireLinkKey,
options: GetLinksOptions
) -> MustBoxFuture<'static, Result<WireLinkOps, HolochainP2pError>> ⓘ
fn get_links(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
link_key: WireLinkKey,
options: GetLinksOptions
) -> MustBoxFuture<'static, Result<WireLinkOps, HolochainP2pError>> ⓘ
A remote node is requesting link data from us.
source§fn get_agent_activity(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
agent: HoloHash<Agent>,
query: ChainQueryFilter,
options: GetActivityOptions
) -> MustBoxFuture<'static, Result<AgentActivityResponse<HoloHash<Action>>, HolochainP2pError>> ⓘ
fn get_agent_activity(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
agent: HoloHash<Agent>,
query: ChainQueryFilter,
options: GetActivityOptions
) -> MustBoxFuture<'static, Result<AgentActivityResponse<HoloHash<Action>>, HolochainP2pError>> ⓘ
A remote node is requesting agent activity from us.
source§fn must_get_agent_activity(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
author: HoloHash<Agent>,
filter: ChainFilter<HoloHash<Action>>
) -> MustBoxFuture<'static, Result<MustGetAgentActivityResponse, HolochainP2pError>> ⓘ
fn must_get_agent_activity(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
author: HoloHash<Agent>,
filter: ChainFilter<HoloHash<Action>>
) -> MustBoxFuture<'static, Result<MustGetAgentActivityResponse, HolochainP2pError>> ⓘ
A remote node is requesting agent activity from us.
source§fn validation_receipt_received(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
receipt: SerializedBytes
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
fn validation_receipt_received(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
receipt: SerializedBytes
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
A remote node has sent us a validation receipt.
source§fn query_op_hashes(
&self,
dna_hash: HoloHash<Dna>,
arc_set: DhtArcSet,
window: Range<Timestamp>,
max_ops: usize,
include_limbo: bool
) -> MustBoxFuture<'static, Result<Option<(Vec<HoloHash<DhtOp>, Global>, RangeInclusive<Timestamp>)>, HolochainP2pError>> ⓘ
fn query_op_hashes(
&self,
dna_hash: HoloHash<Dna>,
arc_set: DhtArcSet,
window: Range<Timestamp>,
max_ops: usize,
include_limbo: bool
) -> MustBoxFuture<'static, Result<Option<(Vec<HoloHash<DhtOp>, Global>, RangeInclusive<Timestamp>)>, HolochainP2pError>> ⓘ
The p2p module wishes to query our DhtOpHash store.
Gets all ops from a set of agents within a time window
and max number of ops.
Returns the actual time window of returned ops as well.
source§fn fetch_op_data(
&self,
dna_hash: HoloHash<Dna>,
query: FetchOpDataQuery
) -> MustBoxFuture<'static, Result<Vec<(HoloHash<DhtOp>, DhtOp), Global>, HolochainP2pError>> ⓘ
fn fetch_op_data(
&self,
dna_hash: HoloHash<Dna>,
query: FetchOpDataQuery
) -> MustBoxFuture<'static, Result<Vec<(HoloHash<DhtOp>, DhtOp), Global>, HolochainP2pError>> ⓘ
The p2p module needs access to the content for a given set of DhtOpHashes.
source§fn sign_network_data(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
data: Vec<u8, Global>
) -> MustBoxFuture<'static, Result<Signature, HolochainP2pError>> ⓘ
fn sign_network_data(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
data: Vec<u8, Global>
) -> MustBoxFuture<'static, Result<Signature, HolochainP2pError>> ⓘ
P2p operations require cryptographic signatures and validation.
source§fn countersigning_session_negotiation(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
message: CountersigningSessionNegotiationMessage
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
fn countersigning_session_negotiation(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
message: CountersigningSessionNegotiationMessage
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
Messages between agents that drive a countersigning session.
source§impl<S> HolochainP2pSender for Swhere
S: GhostChannelSender<HolochainP2p>,
impl<S> HolochainP2pSender for Swhere
S: GhostChannelSender<HolochainP2p>,
source§fn join(
&self,
dna_hash: HoloHash<Dna>,
agent_pub_key: HoloHash<Agent>,
initial_arc: Option<DhtArc>
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
fn join(
&self,
dna_hash: HoloHash<Dna>,
agent_pub_key: HoloHash<Agent>,
initial_arc: Option<DhtArc>
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
The p2p module must be informed at runtime which dna/agent pairs it should be tracking.
source§fn leave(
&self,
dna_hash: HoloHash<Dna>,
agent_pub_key: HoloHash<Agent>
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
fn leave(
&self,
dna_hash: HoloHash<Dna>,
agent_pub_key: HoloHash<Agent>
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
If a cell is disabled, we’ll need to "leave" the network module as well.
source§fn call_remote(
&self,
dna_hash: HoloHash<Dna>,
from_agent: HoloHash<Agent>,
signature: Signature,
to_agent: HoloHash<Agent>,
zome_name: ZomeName,
fn_name: FunctionName,
cap_secret: Option<CapSecret>,
payload: ExternIO,
nonce: Nonce256Bits,
expires_at: Timestamp
) -> MustBoxFuture<'static, Result<SerializedBytes, HolochainP2pError>> ⓘ
fn call_remote(
&self,
dna_hash: HoloHash<Dna>,
from_agent: HoloHash<Agent>,
signature: Signature,
to_agent: HoloHash<Agent>,
zome_name: ZomeName,
fn_name: FunctionName,
cap_secret: Option<CapSecret>,
payload: ExternIO,
nonce: Nonce256Bits,
expires_at: Timestamp
) -> MustBoxFuture<'static, Result<SerializedBytes, HolochainP2pError>> ⓘ
Invoke a zome function on a remote node (if you have been granted the capability).
source§fn remote_signal(
&self,
dna_hash: HoloHash<Dna>,
from_agent: HoloHash<Agent>,
to_agent_list: Vec<(Signature, HoloHash<Agent>), Global>,
zome_name: ZomeName,
fn_name: FunctionName,
cap: Option<CapSecret>,
payload: ExternIO,
nonce: Nonce256Bits,
expires_at: Timestamp
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
fn remote_signal(
&self,
dna_hash: HoloHash<Dna>,
from_agent: HoloHash<Agent>,
to_agent_list: Vec<(Signature, HoloHash<Agent>), Global>,
zome_name: ZomeName,
fn_name: FunctionName,
cap: Option<CapSecret>,
payload: ExternIO,
nonce: Nonce256Bits,
expires_at: Timestamp
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
Invoke a zome function on a remote node (if you have been granted the capability).
This is a fire-and-forget operation, a best effort will be made
to forward the signal, but if the conductor network is overworked
it may decide not to deliver some of the signals.
source§fn publish(
&self,
dna_hash: HoloHash<Dna>,
request_validation_receipt: bool,
countersigning_session: bool,
basis_hash: HoloHash<AnyLinkable>,
source: HoloHash<Agent>,
op_hash_list: Vec<RoughSized<Arc<KitsuneOpHash>>, Global>,
timeout_ms: Option<u64>,
reflect_ops: Option<Vec<DhtOp, Global>>
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
fn publish(
&self,
dna_hash: HoloHash<Dna>,
request_validation_receipt: bool,
countersigning_session: bool,
basis_hash: HoloHash<AnyLinkable>,
source: HoloHash<Agent>,
op_hash_list: Vec<RoughSized<Arc<KitsuneOpHash>>, Global>,
timeout_ms: Option<u64>,
reflect_ops: Option<Vec<DhtOp, Global>>
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
Publish data to the correct neighborhood.
source§fn publish_countersign(
&self,
dna_hash: HoloHash<Dna>,
flag: bool,
basis_hash: HoloHash<AnyLinkable>,
op: DhtOp
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
fn publish_countersign(
&self,
dna_hash: HoloHash<Dna>,
flag: bool,
basis_hash: HoloHash<AnyLinkable>,
op: DhtOp
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
Publish a countersigning op.
source§fn get(
&self,
dna_hash: HoloHash<Dna>,
dht_hash: HoloHash<AnyDht>,
options: GetOptions
) -> MustBoxFuture<'static, Result<Vec<WireOps, Global>, HolochainP2pError>> ⓘ
fn get(
&self,
dna_hash: HoloHash<Dna>,
dht_hash: HoloHash<AnyDht>,
options: GetOptions
) -> MustBoxFuture<'static, Result<Vec<WireOps, Global>, HolochainP2pError>> ⓘ
Get an entry from the DHT.
source§fn get_meta(
&self,
dna_hash: HoloHash<Dna>,
dht_hash: HoloHash<AnyDht>,
options: GetMetaOptions
) -> MustBoxFuture<'static, Result<Vec<MetadataSet, Global>, HolochainP2pError>> ⓘ
fn get_meta(
&self,
dna_hash: HoloHash<Dna>,
dht_hash: HoloHash<AnyDht>,
options: GetMetaOptions
) -> MustBoxFuture<'static, Result<Vec<MetadataSet, Global>, HolochainP2pError>> ⓘ
Get metadata from the DHT.
source§fn get_links(
&self,
dna_hash: HoloHash<Dna>,
link_key: WireLinkKey,
options: GetLinksOptions
) -> MustBoxFuture<'static, Result<Vec<WireLinkOps, Global>, HolochainP2pError>> ⓘ
fn get_links(
&self,
dna_hash: HoloHash<Dna>,
link_key: WireLinkKey,
options: GetLinksOptions
) -> MustBoxFuture<'static, Result<Vec<WireLinkOps, Global>, HolochainP2pError>> ⓘ
Get links from the DHT.
source§fn get_agent_activity(
&self,
dna_hash: HoloHash<Dna>,
agent: HoloHash<Agent>,
query: ChainQueryFilter,
options: GetActivityOptions
) -> MustBoxFuture<'static, Result<Vec<AgentActivityResponse<HoloHash<Action>>, Global>, HolochainP2pError>> ⓘ
fn get_agent_activity(
&self,
dna_hash: HoloHash<Dna>,
agent: HoloHash<Agent>,
query: ChainQueryFilter,
options: GetActivityOptions
) -> MustBoxFuture<'static, Result<Vec<AgentActivityResponse<HoloHash<Action>>, Global>, HolochainP2pError>> ⓘ
Get agent activity from the DHT.
source§fn must_get_agent_activity(
&self,
dna_hash: HoloHash<Dna>,
author: HoloHash<Agent>,
filter: ChainFilter<HoloHash<Action>>
) -> MustBoxFuture<'static, Result<Vec<MustGetAgentActivityResponse, Global>, HolochainP2pError>> ⓘ
fn must_get_agent_activity(
&self,
dna_hash: HoloHash<Dna>,
author: HoloHash<Agent>,
filter: ChainFilter<HoloHash<Action>>
) -> MustBoxFuture<'static, Result<Vec<MustGetAgentActivityResponse, Global>, HolochainP2pError>> ⓘ
A remote node is requesting agent activity from us.
source§fn send_validation_receipt(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
receipt: SerializedBytes
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
fn send_validation_receipt(
&self,
dna_hash: HoloHash<Dna>,
to_agent: HoloHash<Agent>,
receipt: SerializedBytes
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
Send a validation receipt to a remote node.
source§fn new_integrated_data(
&self,
dna_hash: HoloHash<Dna>
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
fn new_integrated_data(
&self,
dna_hash: HoloHash<Dna>
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
New data has been integrated and is ready for gossiping.
Check if any local agent in this space is an authority for a hash.
source§fn countersigning_session_negotiation(
&self,
dna_hash: HoloHash<Dna>,
agents: Vec<HoloHash<Agent>, Global>,
message: CountersigningSessionNegotiationMessage
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
fn countersigning_session_negotiation(
&self,
dna_hash: HoloHash<Dna>,
agents: Vec<HoloHash<Agent>, Global>,
message: CountersigningSessionNegotiationMessage
) -> MustBoxFuture<'static, Result<(), HolochainP2pError>> ⓘ
Messages between agents negotiation a countersigning session.
source§fn dump_network_metrics(
&self,
dna_hash: Option<HoloHash<Dna>>
) -> MustBoxFuture<'static, Result<String, HolochainP2pError>> ⓘ
fn dump_network_metrics(
&self,
dna_hash: Option<HoloHash<Dna>>
) -> MustBoxFuture<'static, Result<String, HolochainP2pError>> ⓘ
Dump network metrics.
source§fn get_diagnostics(
&self,
dna_hash: HoloHash<Dna>
) -> MustBoxFuture<'static, Result<KitsuneDiagnostics, HolochainP2pError>> ⓘ
fn get_diagnostics(
&self,
dna_hash: HoloHash<Dna>
) -> MustBoxFuture<'static, Result<KitsuneDiagnostics, HolochainP2pError>> ⓘ
Get struct for diagnostic data
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> ⓘ
source§impl<S> KitsuneP2pEventSender for Swhere
S: GhostChannelSender<KitsuneP2pEvent>,
impl<S> KitsuneP2pEventSender for Swhere
S: GhostChannelSender<KitsuneP2pEvent>,
source§fn put_agent_info_signed(
&self,
input: PutAgentInfoSignedEvt
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
fn put_agent_info_signed(
&self,
input: PutAgentInfoSignedEvt
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
We need to store signed agent info.
source§fn query_agents(
&self,
input: QueryAgentsEvt
) -> MustBoxFuture<'static, Result<Vec<AgentInfoSigned, Global>, KitsuneP2pError>> ⓘ
fn query_agents(
&self,
input: QueryAgentsEvt
) -> MustBoxFuture<'static, Result<Vec<AgentInfoSigned, Global>, KitsuneP2pError>> ⓘ
We need to get previously stored agent info.
source§fn query_peer_density(
&self,
space: Arc<KitsuneSpace>,
dht_arc: DhtArc
) -> MustBoxFuture<'static, Result<PeerView, KitsuneP2pError>> ⓘ
fn query_peer_density(
&self,
space: Arc<KitsuneSpace>,
dht_arc: DhtArc
) -> MustBoxFuture<'static, Result<PeerView, KitsuneP2pError>> ⓘ
Query the peer density of a space for a given [
DhtArc
].source§fn call(
&self,
space: Arc<KitsuneSpace>,
to_agent: Arc<KitsuneAgent>,
payload: Vec<u8, Global>
) -> MustBoxFuture<'static, Result<Vec<u8, Global>, KitsuneP2pError>> ⓘ
fn call(
&self,
space: Arc<KitsuneSpace>,
to_agent: Arc<KitsuneAgent>,
payload: Vec<u8, Global>
) -> MustBoxFuture<'static, Result<Vec<u8, Global>, KitsuneP2pError>> ⓘ
We are receiving a request from a remote node.
source§fn notify(
&self,
space: Arc<KitsuneSpace>,
to_agent: Arc<KitsuneAgent>,
payload: Vec<u8, Global>
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
fn notify(
&self,
space: Arc<KitsuneSpace>,
to_agent: Arc<KitsuneAgent>,
payload: Vec<u8, Global>
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
We are receiving a notification from a remote node.
source§fn receive_ops(
&self,
space: Arc<KitsuneSpace>,
ops: Vec<Arc<KitsuneOpData>, Global>,
context: Option<FetchContext>
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
fn receive_ops(
&self,
space: Arc<KitsuneSpace>,
ops: Vec<Arc<KitsuneOpData>, Global>,
context: Option<FetchContext>
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
We have received ops to be integrated,
either through gossip or publish.
source§fn query_op_hashes(
&self,
input: QueryOpHashesEvt
) -> MustBoxFuture<'static, Result<Option<(Vec<Arc<KitsuneOpHash>, Global>, RangeInclusive<Timestamp>)>, KitsuneP2pError>> ⓘ
fn query_op_hashes(
&self,
input: QueryOpHashesEvt
) -> MustBoxFuture<'static, Result<Option<(Vec<Arc<KitsuneOpHash>, Global>, RangeInclusive<Timestamp>)>, KitsuneP2pError>> ⓘ
Gather a list of op-hashes from our implementor that meet criteria.
Get the oldest and newest times for ops within a time window and max number of ops.
source§fn fetch_op_data(
&self,
input: FetchOpDataEvt
) -> MustBoxFuture<'static, Result<Vec<(Arc<KitsuneOpHash>, Arc<KitsuneOpData>), Global>, KitsuneP2pError>> ⓘ
fn fetch_op_data(
&self,
input: FetchOpDataEvt
) -> MustBoxFuture<'static, Result<Vec<(Arc<KitsuneOpHash>, Arc<KitsuneOpData>), Global>, KitsuneP2pError>> ⓘ
Gather all op-hash data for a list of op-hashes from our implementor.
source§fn sign_network_data(
&self,
input: SignNetworkDataEvt
) -> MustBoxFuture<'static, Result<KitsuneSignature, KitsuneP2pError>> ⓘ
fn sign_network_data(
&self,
input: SignNetworkDataEvt
) -> MustBoxFuture<'static, Result<KitsuneSignature, KitsuneP2pError>> ⓘ
Request that our implementor sign some data on behalf of an agent.
source§impl<S> KitsuneP2pSender for Swhere
S: GhostChannelSender<KitsuneP2p>,
impl<S> KitsuneP2pSender for Swhere
S: GhostChannelSender<KitsuneP2p>,
source§fn list_transport_bindings(
&self
) -> MustBoxFuture<'static, Result<Vec<Url2, Global>, KitsuneP2pError>> ⓘ
fn list_transport_bindings(
&self
) -> MustBoxFuture<'static, Result<Vec<Url2, Global>, KitsuneP2pError>> ⓘ
Get the calculated transport bindings.
source§fn join(
&self,
space: Arc<KitsuneSpace>,
agent: Arc<KitsuneAgent>,
initial_arc: Option<DhtArc>
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
fn join(
&self,
space: Arc<KitsuneSpace>,
agent: Arc<KitsuneAgent>,
initial_arc: Option<DhtArc>
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
Announce a space/agent pair on this network.
source§fn leave(
&self,
space: Arc<KitsuneSpace>,
agent: Arc<KitsuneAgent>
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
fn leave(
&self,
space: Arc<KitsuneSpace>,
agent: Arc<KitsuneAgent>
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
Withdraw this space/agent pair from this network.
source§fn rpc_single(
&self,
space: Arc<KitsuneSpace>,
to_agent: Arc<KitsuneAgent>,
payload: Vec<u8, Global>,
timeout_ms: Option<u64>
) -> MustBoxFuture<'static, Result<Vec<u8, Global>, KitsuneP2pError>> ⓘ
fn rpc_single(
&self,
space: Arc<KitsuneSpace>,
to_agent: Arc<KitsuneAgent>,
payload: Vec<u8, Global>,
timeout_ms: Option<u64>
) -> MustBoxFuture<'static, Result<Vec<u8, Global>, KitsuneP2pError>> ⓘ
Make a request of a single remote agent, expecting a response.
The remote side will receive a “Call” event.
source§fn rpc_multi(
&self,
input: RpcMulti
) -> MustBoxFuture<'static, Result<Vec<RpcMultiResponse, Global>, KitsuneP2pError>> ⓘ
fn rpc_multi(
&self,
input: RpcMulti
) -> MustBoxFuture<'static, Result<Vec<RpcMultiResponse, Global>, KitsuneP2pError>> ⓘ
Make a request to multiple destination agents - awaiting/aggregating the responses.
The remote sides will see these messages as “Call” events.
NOTE: We’ve currently disabled the “multi” part of this.
It will still pick appropriate peers by basis, but will only
make requests one at a time, returning the first success.
source§fn broadcast(
&self,
space: Arc<KitsuneSpace>,
basis: Arc<KitsuneBasis>,
timeout: KitsuneTimeout,
data: BroadcastData
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
fn broadcast(
&self,
space: Arc<KitsuneSpace>,
basis: Arc<KitsuneBasis>,
timeout: KitsuneTimeout,
data: BroadcastData
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
Publish data to a “neighborhood” of remote nodes surrounding the
“basis” hash. This is a multi-step fire-and-forget algorithm.
An Ok(()) result only means that we were able to establish at
least one connection with a node in the target neighborhood.
The remote sides will see these messages as “Notify” events.
source§fn targeted_broadcast(
&self,
space: Arc<KitsuneSpace>,
agents: Vec<Arc<KitsuneAgent>, Global>,
timeout: KitsuneTimeout,
payload: Vec<u8, Global>,
drop_at_limit: bool
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
fn targeted_broadcast(
&self,
space: Arc<KitsuneSpace>,
agents: Vec<Arc<KitsuneAgent>, Global>,
timeout: KitsuneTimeout,
payload: Vec<u8, Global>,
drop_at_limit: bool
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
Broadcast data to a specific set of agents without
expecting a response.
An Ok(()) result only means that we were able to establish at
least one connection with a node in the agent set.
source§fn new_integrated_data(
&self,
space: Arc<KitsuneSpace>
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
fn new_integrated_data(
&self,
space: Arc<KitsuneSpace>
) -> MustBoxFuture<'static, Result<(), KitsuneP2pError>> ⓘ
New data has been integrated and is ready for gossiping.
Check if an agent is an authority for a hash.
source§fn dump_network_metrics(
&self,
space: Option<Arc<KitsuneSpace>>
) -> MustBoxFuture<'static, Result<Value, KitsuneP2pError>> ⓘ
fn dump_network_metrics(
&self,
space: Option<Arc<KitsuneSpace>>
) -> MustBoxFuture<'static, Result<Value, KitsuneP2pError>> ⓘ
dump network metrics
source§fn get_diagnostics(
&self,
space: Arc<KitsuneSpace>
) -> MustBoxFuture<'static, Result<KitsuneDiagnostics, KitsuneP2pError>> ⓘ
fn get_diagnostics(
&self,
space: Arc<KitsuneSpace>
) -> MustBoxFuture<'static, Result<KitsuneDiagnostics, KitsuneP2pError>> ⓘ
Get data for diagnostics
§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>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.§impl<T> Upcastable for Twhere
T: 'static + Any + Send + Sync,
impl<T> Upcastable for Twhere
T: 'static + Any + Send + Sync,
§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