pub struct TcpBackend(pub ActorHandle<TcpManagerActor>);Expand description
Wrapper around ActorHandle<TcpManagerActor> that moves the TCP
data-plane (chunked reads/writes) off the actor loop while keeping
buffer resolution serialized through actor messages.
Because submit logic now runs outside the actor loop, same-process
messages no longer deadlock — the actor loop is free to handle
WriteChunk/ReadChunk messages.
Tuple Fields§
§0: ActorHandle<TcpManagerActor>Methods from Deref<Target = ActorHandle<TcpManagerActor>>§
Sourcepub fn actor_addr(&self) -> &ActorAddr
pub fn actor_addr(&self) -> &ActorAddr
The ActorAddr of the actor represented by this handle.
Sourcepub fn drain_and_stop(&self, reason: &str) -> Result<(), ActorError>
pub fn drain_and_stop(&self, reason: &str) -> Result<(), ActorError>
Signal the actor to drain its current messages and then stop.
Sourcepub fn stop(&self, reason: &str) -> Result<(), ActorError>
pub fn stop(&self, reason: &str) -> Result<(), ActorError>
Signal the actor to stop without draining ordinary queued work first.
Sourcepub fn kill(&self, reason: &str) -> Result<(), ActorError>
pub fn kill(&self, reason: &str) -> Result<(), ActorError>
Signal the actor to terminate immediately.
Sourcepub fn status(&self) -> Receiver<ActorStatus>
pub fn status(&self) -> Receiver<ActorStatus>
A watch that observes the lifecycle state of the actor.
Sourcepub fn port<M>(&self) -> PortHandle<M>
pub fn port<M>(&self) -> PortHandle<M>
Return a port for the provided message type handled by the actor.
Trait Implementations§
Source§impl Clone for TcpBackend
impl Clone for TcpBackend
Source§fn clone(&self) -> TcpBackend
fn clone(&self) -> TcpBackend
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TcpBackend
impl Debug for TcpBackend
Source§impl Deref for TcpBackend
impl Deref for TcpBackend
Source§type Target = ActorHandle<TcpManagerActor>
type Target = ActorHandle<TcpManagerActor>
Source§impl RdmaBackend for TcpBackend
impl RdmaBackend for TcpBackend
Source§fn submit<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 (impl 'async_trait + Actor + Send + Sync),
ops: Vec<RdmaOp>,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn submit<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 (impl 'async_trait + Actor + Send + Sync),
ops: Vec<RdmaOp>,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Submit a batch of RDMA operations over TCP.
Each operation’s remote buffer is resolved to its TCP backend
context, then executed directly — sending chunked write/read
messages to the remote TcpManagerActor.
Source§type TransportInfo = ()
type TransportInfo = ()
Source§fn transport_level(&self) -> RdmaTransportLevel
fn transport_level(&self) -> RdmaTransportLevel
Source§fn transport_info(&self) -> Option<Self::TransportInfo>
fn transport_info(&self) -> Option<Self::TransportInfo>
Auto Trait Implementations§
impl Freeze for TcpBackend
impl !RefUnwindSafe for TcpBackend
impl Send for TcpBackend
impl Sync for TcpBackend
impl Unpin for TcpBackend
impl UnsafeUnpin for TcpBackend
impl !UnwindSafe for TcpBackend
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<A, M> Handler<IndexedErasedUnbound<M>> for A
impl<A, M> Handler<IndexedErasedUnbound<M>> for A
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].