pub trait CKBProtocolContext: Send {
Show 26 methods // Required methods fn ckb2023(&self) -> bool; fn set_notify<'life0, 'async_trait>( &'life0 self, interval: Duration, token: u64 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn remove_notify<'life0, 'async_trait>( &'life0 self, token: u64 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn async_quick_send_message<'life0, 'async_trait>( &'life0 self, proto_id: ProtocolId, peer_index: PeerIndex, data: Bytes ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn async_quick_send_message_to<'life0, 'async_trait>( &'life0 self, peer_index: PeerIndex, data: Bytes ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn async_quick_filter_broadcast<'life0, 'async_trait>( &'life0 self, target: TargetSession, data: Bytes ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn async_future_task<'life0, 'async_trait>( &'life0 self, task: Pin<Box<dyn Future<Output = ()> + Send + 'static>>, blocking: bool ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn async_send_message<'life0, 'async_trait>( &'life0 self, proto_id: ProtocolId, peer_index: PeerIndex, data: Bytes ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn async_send_message_to<'life0, 'async_trait>( &'life0 self, peer_index: PeerIndex, data: Bytes ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn async_filter_broadcast<'life0, 'async_trait>( &'life0 self, target: TargetSession, data: Bytes ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn async_disconnect<'life0, 'life1, 'async_trait>( &'life0 self, peer_index: PeerIndex, message: &'life1 str ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn quick_send_message( &self, proto_id: ProtocolId, peer_index: PeerIndex, data: Bytes ) -> Result<(), Error>; fn quick_send_message_to( &self, peer_index: PeerIndex, data: Bytes ) -> Result<(), Error>; fn quick_filter_broadcast( &self, target: TargetSession, data: Bytes ) -> Result<(), Error>; fn future_task( &self, task: Pin<Box<dyn Future<Output = ()> + Send + 'static>>, blocking: bool ) -> Result<(), Error>; fn send_message( &self, proto_id: ProtocolId, peer_index: PeerIndex, data: Bytes ) -> Result<(), Error>; fn send_message_to( &self, peer_index: PeerIndex, data: Bytes ) -> Result<(), Error>; fn filter_broadcast( &self, target: TargetSession, data: Bytes ) -> Result<(), Error>; fn disconnect( &self, peer_index: PeerIndex, message: &str ) -> Result<(), Error>; fn get_peer(&self, peer_index: PeerIndex) -> Option<Peer>; fn with_peer_mut( &self, peer_index: PeerIndex, f: Box<dyn FnOnce(&mut Peer)> ); fn connected_peers(&self) -> Vec<PeerIndex>; fn report_peer(&self, peer_index: PeerIndex, behaviour: Behaviour); fn ban_peer( &self, peer_index: PeerIndex, duration: Duration, reason: String ); fn protocol_id(&self) -> ProtocolId; // Provided method fn p2p_control(&self) -> Option<&ServiceControl> { ... }
}
Expand description

Abstract protocol context

Required Methods§

source

fn ckb2023(&self) -> bool

Get ckb2023 flag

source

fn set_notify<'life0, 'async_trait>( &'life0 self, interval: Duration, token: u64 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Set notify to tentacle

source

fn remove_notify<'life0, 'async_trait>( &'life0 self, token: u64 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Remove notify

source

fn async_quick_send_message<'life0, 'async_trait>( &'life0 self, proto_id: ProtocolId, peer_index: PeerIndex, data: Bytes ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Send message through quick queue

source

fn async_quick_send_message_to<'life0, 'async_trait>( &'life0 self, peer_index: PeerIndex, data: Bytes ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Send message through quick queue

source

fn async_quick_filter_broadcast<'life0, 'async_trait>( &'life0 self, target: TargetSession, data: Bytes ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Filter broadcast message through quick queue

source

fn async_future_task<'life0, 'async_trait>( &'life0 self, task: Pin<Box<dyn Future<Output = ()> + Send + 'static>>, blocking: bool ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

spawn a future task, if blocking is true we use tokio_threadpool::blocking to handle the task.

source

fn async_send_message<'life0, 'async_trait>( &'life0 self, proto_id: ProtocolId, peer_index: PeerIndex, data: Bytes ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Send message

source

fn async_send_message_to<'life0, 'async_trait>( &'life0 self, peer_index: PeerIndex, data: Bytes ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Send message

source

fn async_filter_broadcast<'life0, 'async_trait>( &'life0 self, target: TargetSession, data: Bytes ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Filter broadcast message

source

fn async_disconnect<'life0, 'life1, 'async_trait>( &'life0 self, peer_index: PeerIndex, message: &'life1 str ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Disconnect session

source

fn quick_send_message( &self, proto_id: ProtocolId, peer_index: PeerIndex, data: Bytes ) -> Result<(), Error>

Send message through quick queue

source

fn quick_send_message_to( &self, peer_index: PeerIndex, data: Bytes ) -> Result<(), Error>

Send message through quick queue

source

fn quick_filter_broadcast( &self, target: TargetSession, data: Bytes ) -> Result<(), Error>

Filter broadcast message through quick queue

source

fn future_task( &self, task: Pin<Box<dyn Future<Output = ()> + Send + 'static>>, blocking: bool ) -> Result<(), Error>

spawn a future task, if blocking is true we use tokio_threadpool::blocking to handle the task.

source

fn send_message( &self, proto_id: ProtocolId, peer_index: PeerIndex, data: Bytes ) -> Result<(), Error>

Send message

source

fn send_message_to( &self, peer_index: PeerIndex, data: Bytes ) -> Result<(), Error>

Send message

source

fn filter_broadcast( &self, target: TargetSession, data: Bytes ) -> Result<(), Error>

Filter broadcast message

source

fn disconnect(&self, peer_index: PeerIndex, message: &str) -> Result<(), Error>

Disconnect session

source

fn get_peer(&self, peer_index: PeerIndex) -> Option<Peer>

Get peer info

source

fn with_peer_mut(&self, peer_index: PeerIndex, f: Box<dyn FnOnce(&mut Peer)>)

Modify peer info

source

fn connected_peers(&self) -> Vec<PeerIndex>

Get all session id

source

fn report_peer(&self, peer_index: PeerIndex, behaviour: Behaviour)

Report peer behavior

source

fn ban_peer(&self, peer_index: PeerIndex, duration: Duration, reason: String)

Ban peer

source

fn protocol_id(&self) -> ProtocolId

current protocol id

Provided Methods§

source

fn p2p_control(&self) -> Option<&ServiceControl>

Raw tentacle controller

Implementors§