Skip to main content

StreamRegistry

Struct StreamRegistry 

Source
pub struct StreamRegistry { /* private fields */ }
Expand description

Registry for L4 stream services

Maps listen ports to services for both TCP and UDP protocols.

Implementations§

Source§

impl StreamRegistry

Source

pub fn new() -> Self

Create a new empty registry

Source

pub fn register_tcp(&self, port: u16, service: StreamService)

Register a TCP service for a port

Source

pub fn register_udp(&self, port: u16, service: StreamService)

Register a UDP service for a port

Source

pub fn resolve_tcp(&self, port: u16) -> Option<StreamService>

Resolve TCP service for a port

Source

pub fn resolve_udp(&self, port: u16) -> Option<StreamService>

Resolve UDP service for a port

Source

pub fn update_tcp_backends(&self, port: u16, backends: Vec<SocketAddr>)

Update backends for a TCP service

Source

pub fn update_udp_backends(&self, port: u16, backends: Vec<SocketAddr>)

Update backends for a UDP service

Source

pub fn unregister_tcp(&self, port: u16) -> Option<StreamService>

Remove a TCP service

Source

pub fn unregister_udp(&self, port: u16) -> Option<StreamService>

Remove a UDP service

Source

pub fn tcp_count(&self) -> usize

Get count of registered TCP services

Source

pub fn udp_count(&self) -> usize

Get count of registered UDP services

Source

pub fn tcp_ports(&self) -> Vec<u16>

List all registered TCP ports

Source

pub fn udp_ports(&self) -> Vec<u16>

List all registered UDP ports

Source

pub fn list_tcp_services(&self) -> Vec<(u16, StreamService)>

List all registered TCP services with their listen ports.

Source

pub fn list_udp_services(&self) -> Vec<(u16, StreamService)>

List all registered UDP services with their listen ports.

Source

pub fn spawn_health_checker( self: &Arc<Self>, interval: Duration, timeout: Duration, ) -> JoinHandle<()>

Spawn a background health checker that periodically probes all registered TCP backends with a connect-only health check.

UDP backends are not probed (there is no reliable connectionless health check). They remain Unknown and are always considered usable.

The task runs every interval and uses timeout for each probe. Returns a JoinHandle that can be used to cancel the checker.

Trait Implementations§

Source§

impl Default for StreamRegistry

Source§

fn default() -> StreamRegistry

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more