pub struct IbvManagerActor { /* private fields */ }Expand description
Manages all ibverbs-specific RDMA resources and operations.
This struct handles memory registration, queue pair management, and connection establishment using the ibverbs API.
Implementations§
Source§impl IbvManagerActor
impl IbvManagerActor
Sourcepub async fn local_handle(
client: &(impl Actor + Send + Sync),
) -> Result<ActorHandle<Self>, Error>
pub async fn local_handle( client: &(impl Actor + Send + Sync), ) -> Result<ActorHandle<Self>, Error>
Construct an ActorHandle for the IbvManagerActor co-located
with the caller by querying the local RdmaManagerActor.
Trait Implementations§
Source§impl Actor for IbvManagerActor
impl Actor for IbvManagerActor
Source§fn init<'life0, 'life1, 'async_trait>(
&'life0 mut self,
this: &'life1 Instance<Self>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn init<'life0, 'life1, 'async_trait>(
&'life0 mut self,
this: &'life1 Instance<Self>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Initialize the actor, after the runtime has been fully initialized.
Init thus provides a mechanism by which an actor can reliably and always
receive some initial event that can be used to kick off further
(potentially delayed) processing.
Source§fn cleanup<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_this: &'life1 Instance<Self>,
_err: Option<&'life2 ActorError>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn cleanup<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_this: &'life1 Instance<Self>,
_err: Option<&'life2 ActorError>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Cleanup things used by this actor before shutting down. Notably this function
is async and allows more complex cleanup. Simpler cleanup can be handled
by the impl Drop for this Actor.
If err is not None, it is the error that this actor is failing with. Any
errors returned by this function will be logged and ignored.
If err is None, any errors returned by this function will be propagated
as an ActorError.
This function is not called if there is a panic in the actor, as the
actor may be in an indeterminate state. It is also not called if the
process is killed, there is no atexit handler or signal handler.
Source§fn spawn(self, cx: &impl Actor) -> Result<ActorHandle<Self>, Error>
fn spawn(self, cx: &impl Actor) -> Result<ActorHandle<Self>, Error>
Spawn a child actor, given a spawning capability (usually given by
Instance).
The spawned actor will be supervised by the parent (spawning) actor.Source§fn spawn_with_name(
self,
cx: &impl Actor,
name: &str,
) -> Result<ActorHandle<Self>, Error>
fn spawn_with_name( self, cx: &impl Actor, name: &str, ) -> Result<ActorHandle<Self>, Error>
Spawn a named child actor. Same supervision semantics as
spawn, but the child gets name in its ActorId.Source§fn spawn_detached(self) -> Result<ActorHandle<Self>, Error>
fn spawn_detached(self) -> Result<ActorHandle<Self>, Error>
Spawns this actor in a detached state, handling its messages
in a background task. The returned handle is used to control
the actor’s lifecycle and to interact with it. Read more
Source§fn spawn_server_task<F>(future: F) -> JoinHandle<<F as Future>::Output>
fn spawn_server_task<F>(future: F) -> JoinHandle<<F as Future>::Output>
This method is used by the runtime to spawn the actor server. It can be
used by actors that require customized runtime setups
(e.g., dedicated actor threads), or want to use a custom tokio runtime.
Source§fn handle_supervision_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_this: &'life1 Instance<Self>,
_event: &'life2 ActorSupervisionEvent,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn handle_supervision_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
_this: &'life1 Instance<Self>,
_event: &'life2 ActorSupervisionEvent,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Handle actor supervision event. Return `Ok(true)`` if the event is handled here.
Source§fn handle_undeliverable_message<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Instance<Self>,
envelope: Undeliverable<MessageEnvelope>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn handle_undeliverable_message<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Instance<Self>,
envelope: Undeliverable<MessageEnvelope>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Default undeliverable message handling behavior.
Source§fn display_name(&self) -> Option<String>
fn display_name(&self) -> Option<String>
If overridden, we will use this name in place of the
ActorId for talking about this actor in supervision error
messages.
Source§impl Binds<IbvManagerActor> for IbvManagerActor
impl Binds<IbvManagerActor> for IbvManagerActor
Source§impl Debug for IbvManagerActor
impl Debug for IbvManagerActor
Source§impl Drop for IbvManagerActor
impl Drop for IbvManagerActor
Source§impl Handler<IbvManagerMessage> for IbvManagerActor
impl Handler<IbvManagerMessage> for IbvManagerActor
Source§impl Handler<IbvSubmit> for IbvManagerActor
impl Handler<IbvSubmit> for IbvManagerActor
Source§impl IbvManagerMessageHandler for IbvManagerActor
impl IbvManagerMessageHandler for IbvManagerActor
Source§fn request_buffer<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
remote_buf_id: usize,
) -> Pin<Box<dyn Future<Output = Result<Option<IbvBuffer>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn request_buffer<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
remote_buf_id: usize,
) -> Pin<Box<dyn Future<Output = Result<Option<IbvBuffer>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Source§fn release_buffer<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
remote_buf_id: usize,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn release_buffer<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
remote_buf_id: usize,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Source§fn request_queue_pair<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
other: ActorRef<IbvManagerActor>,
self_device: String,
other_device: String,
) -> Pin<Box<dyn Future<Output = Result<IbvQueuePair, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn request_queue_pair<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
other: ActorRef<IbvManagerActor>,
self_device: String,
other_device: String,
) -> Pin<Box<dyn Future<Output = Result<IbvQueuePair, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Source§fn connect<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
other: ActorRef<IbvManagerActor>,
self_device: String,
other_device: String,
endpoint: IbvQpInfo,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn connect<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
other: ActorRef<IbvManagerActor>,
self_device: String,
other_device: String,
endpoint: IbvQpInfo,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Source§fn initialize_qp<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
other: ActorRef<IbvManagerActor>,
self_device: String,
other_device: String,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn initialize_qp<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
other: ActorRef<IbvManagerActor>,
self_device: String,
other_device: String,
) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Source§fn connection_info<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
other: ActorRef<IbvManagerActor>,
self_device: String,
other_device: String,
) -> Pin<Box<dyn Future<Output = Result<IbvQpInfo, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn connection_info<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
other: ActorRef<IbvManagerActor>,
self_device: String,
other_device: String,
) -> Pin<Box<dyn Future<Output = Result<IbvQpInfo, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Source§fn release_queue_pair<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
_other: ActorRef<IbvManagerActor>,
_self_device: String,
_other_device: String,
_qp: IbvQueuePair,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn release_queue_pair<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
_other: ActorRef<IbvManagerActor>,
_self_device: String,
_other_device: String,
_qp: IbvQueuePair,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Source§fn get_qp_state<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
other: ActorRef<IbvManagerActor>,
self_device: String,
other_device: String,
) -> Pin<Box<dyn Future<Output = Result<u32, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_qp_state<'life0, 'life1, 'async_trait>(
&'life0 mut self,
_cx: &'life1 Context<'_, Self>,
other: ActorRef<IbvManagerActor>,
self_device: String,
other_device: String,
) -> Pin<Box<dyn Future<Output = Result<u32, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Source§impl IbvSubmitHandler for IbvManagerActor
impl IbvSubmitHandler for IbvManagerActor
Source§fn ibv_submit<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
ops: Vec<IbvOp>,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Result<(), String>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn ibv_submit<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, Self>,
ops: Vec<IbvOp>,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Result<(), String>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
The generated handler method for this enum variant.
Source§impl Named for IbvManagerActor
impl Named for IbvManagerActor
Source§fn typename() -> &'static str
fn typename() -> &'static str
The globally unique type name for the type.
This should typically be the fully qualified Rust name of the type.
Source§fn typehash() -> u64
fn typehash() -> u64
A globally unique hash for this type.
TODO: actually enforce perfect hashing
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
The TypeId for this type. TypeIds are unique only within a binary,
and should not be used for global identification.
Source§fn port() -> u64
fn port() -> u64
The globally unique port for this type. Typed ports are in the range
of 1<<63..1<<64-1.
impl Accepts<IbvManagerMessage> for IbvManagerActor
impl Accepts<IntrospectMessage> for IbvManagerActor
impl Accepts<Signal> for IbvManagerActor
impl Referable for IbvManagerActor
impl RemoteHandles<IbvManagerMessage> for IbvManagerActor
impl RemoteHandles<IntrospectMessage> for IbvManagerActor
impl RemoteHandles<Signal> for IbvManagerActor
Auto Trait Implementations§
impl !Freeze for IbvManagerActor
impl !RefUnwindSafe for IbvManagerActor
impl Send for IbvManagerActor
impl Sync for IbvManagerActor
impl Unpin for IbvManagerActor
impl !UnwindSafe for IbvManagerActor
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
Mutably borrows from an owned value. Read more
§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
Source§impl<A> Handler<Undeliverable<MessageEnvelope>> for Awhere
A: Actor,
impl<A> Handler<Undeliverable<MessageEnvelope>> for Awhere
A: Actor,
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, A>,
message: Undeliverable<MessageEnvelope>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
A: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 mut self,
cx: &'life1 Context<'_, A>,
message: Undeliverable<MessageEnvelope>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
A: 'async_trait,
Handle the next M-typed message.
§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>
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 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>
Wrap the input message
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>,
Applies the layer to a service and wraps it in [
Layered].