Trait holochain_p2p::HolochainP2pDnaT
source · [−]pub trait HolochainP2pDnaT {
Show 15 methods
fn dna_hash(&self) -> DnaHash;
fn join<'life0, 'async_trait>(
&'life0 self,
agent: AgentPubKey
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn leave<'life0, 'async_trait>(
&'life0 self,
agent: AgentPubKey
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn call_remote<'life0, 'async_trait>(
&'life0 self,
from_agent: AgentPubKey,
to_agent: AgentPubKey,
zome_name: ZomeName,
fn_name: FunctionName,
cap_secret: Option<CapSecret>,
payload: ExternIO
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<SerializedBytes>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn remote_signal<'life0, 'async_trait>(
&'life0 self,
from_agent: AgentPubKey,
to_agent_list: Vec<AgentPubKey>,
zome_name: ZomeName,
fn_name: FunctionName,
cap: Option<CapSecret>,
payload: ExternIO
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn publish<'life0, 'async_trait>(
&'life0 self,
request_validation_receipt: bool,
countersigning_session: bool,
dht_hash: AnyDhtHash,
ops: Vec<DhtOp>,
timeout_ms: Option<u64>
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn get_validation_package<'life0, 'async_trait>(
&'life0 self,
request_from: AgentPubKey,
header_hash: HeaderHash
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<ValidationPackageResponse>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: '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
'life0: 'async_trait,
Self: '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
'life0: 'async_trait,
Self: '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
'life0: 'async_trait,
Self: '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<HeaderHash>>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn send_validation_receipt<'life0, 'async_trait>(
&'life0 self,
to_agent: AgentPubKey,
receipt: SerializedBytes
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn authority_for_hash<'life0, 'async_trait>(
&'life0 self,
dht_hash: AnyDhtHash
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<bool>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn countersigning_authority_response<'life0, 'async_trait>(
&'life0 self,
agents: Vec<AgentPubKey>,
response: Vec<SignedHeader>
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn new_integrated_data<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
}
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
fn join<'life0, 'async_trait>(
&'life0 self,
agent: AgentPubKey
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn join<'life0, 'async_trait>(
&'life0 self,
agent: AgentPubKey
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
The p2p module must be informed at runtime which dna/agent pairs it should be tracking.
fn leave<'life0, 'async_trait>(
&'life0 self,
agent: AgentPubKey
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn leave<'life0, 'async_trait>(
&'life0 self,
agent: AgentPubKey
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
If a cell is disabled, we’ll need to "leave" the network module as well.
fn call_remote<'life0, 'async_trait>(
&'life0 self,
from_agent: AgentPubKey,
to_agent: AgentPubKey,
zome_name: ZomeName,
fn_name: FunctionName,
cap_secret: Option<CapSecret>,
payload: ExternIO
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<SerializedBytes>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn call_remote<'life0, 'async_trait>(
&'life0 self,
from_agent: AgentPubKey,
to_agent: AgentPubKey,
zome_name: ZomeName,
fn_name: FunctionName,
cap_secret: Option<CapSecret>,
payload: ExternIO
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<SerializedBytes>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Invoke a zome function on a remote node (if you have been granted the capability).
fn remote_signal<'life0, 'async_trait>(
&'life0 self,
from_agent: AgentPubKey,
to_agent_list: Vec<AgentPubKey>,
zome_name: ZomeName,
fn_name: FunctionName,
cap: Option<CapSecret>,
payload: ExternIO
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn remote_signal<'life0, 'async_trait>(
&'life0 self,
from_agent: AgentPubKey,
to_agent_list: Vec<AgentPubKey>,
zome_name: ZomeName,
fn_name: FunctionName,
cap: Option<CapSecret>,
payload: ExternIO
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: '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.
fn publish<'life0, 'async_trait>(
&'life0 self,
request_validation_receipt: bool,
countersigning_session: bool,
dht_hash: AnyDhtHash,
ops: Vec<DhtOp>,
timeout_ms: Option<u64>
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn publish<'life0, 'async_trait>(
&'life0 self,
request_validation_receipt: bool,
countersigning_session: bool,
dht_hash: AnyDhtHash,
ops: Vec<DhtOp>,
timeout_ms: Option<u64>
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Publish data to the correct neighborhood.
fn get_validation_package<'life0, 'async_trait>(
&'life0 self,
request_from: AgentPubKey,
header_hash: HeaderHash
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<ValidationPackageResponse>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn get_validation_package<'life0, 'async_trait>(
&'life0 self,
request_from: AgentPubKey,
header_hash: HeaderHash
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<ValidationPackageResponse>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Request a validation package.
fn get<'life0, 'async_trait>(
&'life0 self,
dht_hash: AnyDhtHash,
options: GetOptions
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<Vec<WireOps>>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: '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
'life0: 'async_trait,
Self: 'async_trait,
Get an entry from the DHT.
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
'life0: 'async_trait,
Self: '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
'life0: 'async_trait,
Self: 'async_trait,
Get metadata from the DHT.
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
'life0: 'async_trait,
Self: '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
'life0: 'async_trait,
Self: 'async_trait,
Get links from the DHT.
fn get_agent_activity<'life0, 'async_trait>(
&'life0 self,
agent: AgentPubKey,
query: ChainQueryFilter,
options: GetActivityOptions
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<Vec<AgentActivityResponse<HeaderHash>>>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: '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<HeaderHash>>>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Get agent activity from the DHT.
fn send_validation_receipt<'life0, 'async_trait>(
&'life0 self,
to_agent: AgentPubKey,
receipt: SerializedBytes
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn send_validation_receipt<'life0, 'async_trait>(
&'life0 self,
to_agent: AgentPubKey,
receipt: SerializedBytes
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
Send a validation receipt to a remote node.
Check if an agent is an authority for a hash.
Response from an authority to agents that are part of a session.
fn new_integrated_data<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
fn new_integrated_data<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = HolochainP2pResult<()>> + Send + 'async_trait>> where
'life0: 'async_trait,
Self: 'async_trait,
New data has been integrated and is ready for gossiping.
Implementors
impl HolochainP2pDnaT for HolochainP2pDna
impl HolochainP2pDnaT for MockHolochainP2pDnaT
A wrapper around HolochainP2pSender that partially applies the dna_hash / agent_pub_key. I.e. a sender that is tied to a specific cell.