pub trait CKBProtocolContext: Send {
Show 25 methods fn set_notify<'life0, 'async_trait>(
        &'life0 self,
        interval: Duration,
        token: u64
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
   where
        'life0: 'async_trait,
        Self: 'async_trait
; fn remove_notify<'life0, 'async_trait>(
        &'life0 self,
        token: u64
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
   where
        'life0: 'async_trait,
        Self: '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
        'life0: 'async_trait,
        Self: '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
        'life0: 'async_trait,
        Self: '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
        'life0: 'async_trait,
        Self: '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
        'life0: 'async_trait,
        Self: '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
        'life0: 'async_trait,
        Self: '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
        'life0: 'async_trait,
        Self: '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
        'life0: 'async_trait,
        Self: '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
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: '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>Notable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
    A: Allocator,
; 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; fn p2p_control(&self) -> Option<&ServiceControl> { ... }
}
Expand description

Abstract protocol context

Required Methods

Set notify to tentacle

Remove notify

Send message through quick queue

Send message through quick queue

Filter broadcast message through quick queue

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

Send message

Send message

Filter broadcast message

Disconnect session

Send message through quick queue

Send message through quick queue

Filter broadcast message through quick queue

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

Send message

Send message

Filter broadcast message

Disconnect session

Get peer info

Modify peer info

Get all session id

Report peer behavior

Ban peer

current protocol id

Provided Methods

Raw tentacle controller

Implementors