pub struct OverlayAdvertPayloadV0 {
pub overlay: OverlayId,
pub session: SessionId,
pub seq: u64,
pub publishers: Vec<PublisherAdvert>,
pub previous_session: Option<SessionId>,
pub peer: DirectPeerId,
}
Expand description
Overlay Advert Payload V0
Fields§
§overlay: OverlayId
the target Overlay ID (cannot be an Outer overlay)
session: SessionId
the newly generated session ID the peer will use in this overlay All the revoked sessionIDs are kept locally by their initiator.
seq: u64
Current sequence number. For a new session, must be zero.
publishers: Vec<PublisherAdvert>
list of publisher currently registered on the peer. flooded in overlay (with this overlayAdvert) when first joining an overlay, so that subscription routing tables can be updated or sent in an OverlayAdvertMarker, to a specific new peer that just joined the overlay (in the point of view of the emitter) it can be left empty when a CoreBrokerConnect is made on a broker that is known to be already part of the overlay.
previous_session: Option<SessionId>
the previous session ID the peer was using in this overlay. Used to cleanup seq counters maintained in each other peer if the previous session is empty (because it is the first time broker joins this overlay) or if a remote peer doesn’t find this session kept locally, it is not an error. In the later case (if broker missed some intermediary sessions), the remote peer can ask the initiator peer if the last known session can be locally revoked with a ConfirmRevokedSession message (answered with yes or no)
peer: DirectPeerId
peer ID of the broker issuing this Advert
Trait Implementations§
Source§impl Clone for OverlayAdvertPayloadV0
impl Clone for OverlayAdvertPayloadV0
Source§fn clone(&self) -> OverlayAdvertPayloadV0
fn clone(&self) -> OverlayAdvertPayloadV0
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for OverlayAdvertPayloadV0
impl Debug for OverlayAdvertPayloadV0
Source§impl<'de> Deserialize<'de> for OverlayAdvertPayloadV0
impl<'de> Deserialize<'de> for OverlayAdvertPayloadV0
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for OverlayAdvertPayloadV0
impl RefUnwindSafe for OverlayAdvertPayloadV0
impl Send for OverlayAdvertPayloadV0
impl Sync for OverlayAdvertPayloadV0
impl Unpin for OverlayAdvertPayloadV0
impl UnwindSafe for OverlayAdvertPayloadV0
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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 more