pub struct MessageHandler { /* private fields */ }Expand description
Shared message-handler handle.
Clone law: cloning duplicates Arc handles to the same transport, DHT
state, and callback. It never forks protocol state or transfers ownership.
Implementations§
Source§impl MessageHandler
impl MessageHandler
Sourcepub fn new(
transport: Arc<SwarmTransport>,
swarm_callback: Arc<dyn SwarmCallback + Sync + Send>,
) -> MessageHandler
pub fn new( transport: Arc<SwarmTransport>, swarm_callback: Arc<dyn SwarmCallback + Sync + Send>, ) -> MessageHandler
Create a new MessageHandler instance.
Trait Implementations§
Source§impl Clone for MessageHandler
impl Clone for MessageHandler
Source§fn clone(&self) -> MessageHandler
fn clone(&self) -> MessageHandler
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl HandleMsg<ConnectNodeReport> for MessageHandler
impl HandleMsg<ConnectNodeReport> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 ConnectNodeReport,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 ConnectNodeReport,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<ConnectNodeSend> for MessageHandler
impl HandleMsg<ConnectNodeSend> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 ConnectNodeSend,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 ConnectNodeSend,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<CustomMessage> for MessageHandler
impl HandleMsg<CustomMessage> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
_: &'life2 CustomMessage,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
_: &'life2 CustomMessage,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<E2eHandshakeRequest> for MessageHandler
impl HandleMsg<E2eHandshakeRequest> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 E2eHandshakeRequest,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 E2eHandshakeRequest,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<E2eHandshakeResponse> for MessageHandler
impl HandleMsg<E2eHandshakeResponse> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 E2eHandshakeResponse,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 E2eHandshakeResponse,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<E2eStreamFrame> for MessageHandler
impl HandleMsg<E2eStreamFrame> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 E2eStreamFrame,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 E2eStreamFrame,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<FindSuccessorReport> for MessageHandler
impl HandleMsg<FindSuccessorReport> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 FindSuccessorReport,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 FindSuccessorReport,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<FindSuccessorSend> for MessageHandler
impl HandleMsg<FindSuccessorSend> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 FindSuccessorSend,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 FindSuccessorSend,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<FoundEntry> for MessageHandler
impl HandleMsg<FoundEntry> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 FoundEntry,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 FoundEntry,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<NotifyPredecessorReport> for MessageHandler
impl HandleMsg<NotifyPredecessorReport> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 MessagePayload,
msg: &'life2 NotifyPredecessorReport,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 MessagePayload,
msg: &'life2 NotifyPredecessorReport,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<NotifyPredecessorSend> for MessageHandler
impl HandleMsg<NotifyPredecessorSend> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 NotifyPredecessorSend,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 NotifyPredecessorSend,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<PeerLivenessProbe> for MessageHandler
PeerLivenessProbe is a direct overlay liveness probe.
impl HandleMsg<PeerLivenessProbe> for MessageHandler
PeerLivenessProbe is a direct overlay liveness probe.
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 PeerLivenessProbe,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 PeerLivenessProbe,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<PeerLivenessReport> for MessageHandler
PeerLivenessReport is handled by the callback’s verified-inbound liveness update.
impl HandleMsg<PeerLivenessReport> for MessageHandler
PeerLivenessReport is handled by the callback’s verified-inbound liveness update.
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 MessagePayload,
_msg: &'life2 PeerLivenessReport,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 MessagePayload,
_msg: &'life2 PeerLivenessReport,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<PlacedEntryOperation> for MessageHandler
impl HandleMsg<PlacedEntryOperation> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 PlacedEntryOperation,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 PlacedEntryOperation,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<QueryForTopoInfoReport> for MessageHandler
Try join received node into DHT after received from TopoInfo.
impl HandleMsg<QueryForTopoInfoReport> for MessageHandler
Try join received node into DHT after received from TopoInfo.
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 MessagePayload,
msg: &'life2 QueryForTopoInfoReport,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_ctx: &'life1 MessagePayload,
msg: &'life2 QueryForTopoInfoReport,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<QueryForTopoInfoSend> for MessageHandler
QueryForTopoInfoSend is direct message
impl HandleMsg<QueryForTopoInfoSend> for MessageHandler
QueryForTopoInfoSend is direct message
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 QueryForTopoInfoSend,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 QueryForTopoInfoSend,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<SearchEntry> for MessageHandler
impl HandleMsg<SearchEntry> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 SearchEntry,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 SearchEntry,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Search Entry via successor If a Entry is storead local, it will response immediately.(See Chordstorageinterface::storage_fetch)
Source§impl HandleMsg<SyncEntriesWithSuccessor> for MessageHandler
impl HandleMsg<SyncEntriesWithSuccessor> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 SyncEntriesWithSuccessor,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 SyncEntriesWithSuccessor,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Source§impl HandleMsg<SyncEntriesWithSuccessorReport> for MessageHandler
impl HandleMsg<SyncEntriesWithSuccessorReport> for MessageHandler
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 SyncEntriesWithSuccessorReport,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 MessagePayload,
msg: &'life2 SyncEntriesWithSuccessorReport,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
MessageHandler: 'async_trait,
Message handler.
Auto Trait Implementations§
impl !RefUnwindSafe for MessageHandler
impl !UnwindSafe for MessageHandler
impl Freeze for MessageHandler
impl Send for MessageHandler
impl Sync for MessageHandler
impl Unpin for MessageHandler
impl UnsafeUnpin for MessageHandler
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§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.
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
impl<T> MaybeSend for T
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.