Trait holochain_p2p::HolochainP2pDnaT

source ·
pub trait HolochainP2pDnaT: Send + Sync {
Show 18 methods // Required methods fn dna_hash(&self) -> DnaHash; fn join<'life0, 'async_trait>( &'life0 self, agent: AgentPubKey, maybe_agent_info: Option<AgentInfoSigned>, initial_arc: Option<DhtArc> ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn leave<'life0, 'async_trait>( &'life0 self, agent: AgentPubKey ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn call_remote<'life0, 'async_trait>( &'life0 self, from_agent: AgentPubKey, from_signature: Signature, to_agent: AgentPubKey, zome_name: ZomeName, fn_name: FunctionName, cap_secret: Option<CapSecret>, payload: ExternIO, nonce: Nonce256Bits, expires_at: Timestamp ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<SerializedBytes>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn remote_signal<'life0, 'async_trait>( &'life0 self, from_agent: AgentPubKey, to_agent_list: Vec<(Signature, AgentPubKey)>, zome_name: ZomeName, fn_name: FunctionName, cap: Option<CapSecret>, payload: ExternIO, nonce: Nonce256Bits, expires_at: Timestamp ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn publish<'life0, 'async_trait>( &'life0 self, request_validation_receipt: bool, countersigning_session: bool, basis_hash: OpBasis, source: AgentPubKey, op_hash_list: Vec<OpHashSized>, timeout_ms: Option<u64>, reflect_ops: Option<Vec<DhtOp>> ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn publish_countersign<'life0, 'async_trait>( &'life0 self, flag: bool, basis_hash: OpBasis, op: DhtOp ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get<'life0, 'async_trait>( &'life0 self, dht_hash: AnyDhtHash, options: GetOptions ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<Vec<WireOps>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_meta<'life0, 'async_trait>( &'life0 self, dht_hash: AnyDhtHash, options: GetMetaOptions ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<Vec<MetadataSet>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_links<'life0, 'async_trait>( &'life0 self, link_key: WireLinkKey, options: GetLinksOptions ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<Vec<WireLinkOps>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn count_links<'life0, 'async_trait>( &'life0 self, query: WireLinkQuery ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<CountLinksResponse>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_agent_activity<'life0, 'async_trait>( &'life0 self, agent: AgentPubKey, query: ChainQueryFilter, options: GetActivityOptions ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<Vec<AgentActivityResponse<ActionHash>>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn must_get_agent_activity<'life0, 'async_trait>( &'life0 self, author: AgentPubKey, filter: ChainFilter ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<Vec<MustGetAgentActivityResponse>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn send_validation_receipts<'life0, 'async_trait>( &'life0 self, to_agent: AgentPubKey, receipts: ValidationReceiptBundle ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn authority_for_hash<'life0, 'async_trait>( &'life0 self, basis: OpBasis ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn countersigning_session_negotiation<'life0, 'async_trait>( &'life0 self, agents: Vec<AgentPubKey>, message: CountersigningSessionNegotiationMessage ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn new_integrated_data<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn chc(&self) -> Option<ChcImpl>;
}
Expand description

A wrapper around HolochainP2pSender that partially applies the dna_hash / agent_pub_key. I.e. a sender that is tied to a specific cell.

Required Methods§

source

fn dna_hash(&self) -> DnaHash

owned getter

source

fn join<'life0, 'async_trait>( &'life0 self, agent: AgentPubKey, maybe_agent_info: Option<AgentInfoSigned>, initial_arc: Option<DhtArc> ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

The p2p module must be informed at runtime which dna/agent pairs it should be tracking.

source

fn leave<'life0, 'async_trait>( &'life0 self, agent: AgentPubKey ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

If a cell is disabled, we’ll need to "leave" the network module as well.

source

fn call_remote<'life0, 'async_trait>( &'life0 self, from_agent: AgentPubKey, from_signature: Signature, to_agent: AgentPubKey, zome_name: ZomeName, fn_name: FunctionName, cap_secret: Option<CapSecret>, payload: ExternIO, nonce: Nonce256Bits, expires_at: Timestamp ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<SerializedBytes>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Invoke a zome function on a remote node (if you have been granted the capability).

source

fn remote_signal<'life0, 'async_trait>( &'life0 self, from_agent: AgentPubKey, to_agent_list: Vec<(Signature, AgentPubKey)>, zome_name: ZomeName, fn_name: FunctionName, cap: Option<CapSecret>, payload: ExternIO, nonce: Nonce256Bits, expires_at: Timestamp ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

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<'life0, 'async_trait>( &'life0 self, request_validation_receipt: bool, countersigning_session: bool, basis_hash: OpBasis, source: AgentPubKey, op_hash_list: Vec<OpHashSized>, timeout_ms: Option<u64>, reflect_ops: Option<Vec<DhtOp>> ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Publish data to the correct neighborhood.

source

fn publish_countersign<'life0, 'async_trait>( &'life0 self, flag: bool, basis_hash: OpBasis, op: DhtOp ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Publish a countersigning op.

source

fn get<'life0, 'async_trait>( &'life0 self, dht_hash: AnyDhtHash, options: GetOptions ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<Vec<WireOps>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get an entry from the DHT.

source

fn get_meta<'life0, 'async_trait>( &'life0 self, dht_hash: AnyDhtHash, options: GetMetaOptions ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<Vec<MetadataSet>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get metadata from the DHT.

Get links from the DHT.

Get a count of links from the DHT.

source

fn get_agent_activity<'life0, 'async_trait>( &'life0 self, agent: AgentPubKey, query: ChainQueryFilter, options: GetActivityOptions ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<Vec<AgentActivityResponse<ActionHash>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get agent activity from the DHT.

source

fn must_get_agent_activity<'life0, 'async_trait>( &'life0 self, author: AgentPubKey, filter: ChainFilter ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<Vec<MustGetAgentActivityResponse>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get agent deterministic activity from the DHT.

source

fn send_validation_receipts<'life0, 'async_trait>( &'life0 self, to_agent: AgentPubKey, receipts: ValidationReceiptBundle ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Send a validation receipt to a remote node.

source

fn authority_for_hash<'life0, 'async_trait>( &'life0 self, basis: OpBasis ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Check if an agent is an authority for a hash.

source

fn countersigning_session_negotiation<'life0, 'async_trait>( &'life0 self, agents: Vec<AgentPubKey>, message: CountersigningSessionNegotiationMessage ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Messages between agents driving a countersigning session.

source

fn new_integrated_data<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

New data has been integrated and is ready for gossiping.

source

fn chc(&self) -> Option<ChcImpl>

Access to the specified CHC

Implementors§