Struct RdmaManagerActor

Source
pub struct RdmaManagerActor { /* private fields */ }

Trait Implementations§

Source§

impl Actor for RdmaManagerActor

Source§

type Params = IbverbsConfig

The type of initialization parameters accepted by this actor.
Source§

fn new<'async_trait>( _params: Self::Params, ) -> Pin<Box<dyn Future<Output = Result<Self, Error>> + Send + 'async_trait>>
where Self: 'async_trait,

Creates a new actor instance given its instantiation parameters.
Source§

fn handle_supervision_event<'life0, 'life1, 'life2, 'async_trait>( &'life0 mut self, _cx: &'life1 Instance<Self>, _event: &'life2 ActorSupervisionEvent, ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Handle actor supervision event. Return `Ok(true)`` if the event is handled here.
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 'life0: 'async_trait, 'life1: 'async_trait, Self: '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 spawn<'life0, 'async_trait>( cap: &'life0 (impl CanSpawn + 'async_trait), params: Self::Params, ) -> Pin<Box<dyn Future<Output = Result<ActorHandle<Self>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

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_detached<'async_trait>( params: Self::Params, ) -> Pin<Box<dyn Future<Output = Result<ActorHandle<Self>, Error>> + Send + 'async_trait>>
where Self: 'async_trait,

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>
where F: Future + Send + 'static, <F as Future>::Output: Send + 'static,

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_undeliverable_message<'life0, 'life1, 'async_trait>( &'life0 mut self, cx: &'life1 Instance<Self>, __arg2: 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§

impl Binds<RdmaManagerActor> for RdmaManagerActor

Source§

fn bind(ports: &Ports<Self>)

Bind ports in this actor.
Source§

impl Debug for RdmaManagerActor

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Handler<RdmaManagerMessage> for RdmaManagerActor

Source§

fn handle<'life0, 'life1, 'async_trait>( &'life0 mut self, cx: &'life1 Context<'_, Self>, message: RdmaManagerMessage, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Handle the next M-typed message.
Source§

impl Named for RdmaManagerActor

Source§

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

A globally unique hash for this type. TODO: actually enforce perfect hashing
Source§

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

The globally unique port for this type. Typed ports are in the range of 1<<63..1<<64-1.
Source§

fn arm(&self) -> Option<&'static str>

If the named type is an enum, this returns the name of the arm of the value self.
Source§

unsafe fn arm_unchecked(self_: *const ()) -> Option<&'static str>

An unsafe version of ‘arm’, accepting a pointer to the value, for use in type-erased settings.
Source§

impl RdmaManagerMessageHandler for RdmaManagerActor

Source§

fn request_buffer<'life0, 'life1, 'async_trait>( &'life0 mut self, cx: &'life1 Context<'_, Self>, addr: usize, size: usize, ) -> Pin<Box<dyn Future<Output = Result<RdmaBuffer, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Requests a buffer to be registered with the RDMA domain.

This function registers a memory region with the RDMA domain and returns an RdmaBuffer that encapsulates the necessary information for RDMA operations.

§Arguments
  • this - The context of the actor requesting the buffer.
  • addr - The starting address of the memory region to be registered.
  • size - The size of the memory region to be registered.
§Returns
  • Result<RdmaBuffer, anyhow::Error> - On success, returns an RdmaBuffer containing the registered memory region’s details. On failure, returns an error.
Source§

fn release_buffer<'life0, 'life1, 'async_trait>( &'life0 mut self, _cx: &'life1 Context<'_, Self>, buffer: RdmaBuffer, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Deregisters a buffer from the RDMA domain.

This function removes the specified RdmaBuffer from the RDMA domain, effectively releasing the resources associated with it.

§Arguments
  • _this - The context of the actor releasing the buffer.
  • buffer - The RdmaBuffer to be deregistered.
§Returns
  • Result<(), anyhow::Error> - On success, returns Ok(()). On failure, returns an error.
Source§

fn request_queue_pair<'life0, 'life1, 'async_trait>( &'life0 mut self, cx: &'life1 Context<'_, Self>, remote: ActorRef<RdmaManagerActor>, ) -> Pin<Box<dyn Future<Output = Result<RdmaQueuePair, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Requests a queue pair for communication with a remote RDMA manager actor.

This function checks if a connection already exists with the specified remote actor. If not, it initializes a new queue pair and establishes a connection with the remote actor. It then retrieves the queue pair associated with the remote actor for communication.

§Arguments
  • this - The context of the actor requesting the queue pair.
  • remote - The ActorRef of the remote RDMA manager actor to communicate with.
§Returns
  • Result<RdmaQueuePair, anyhow::Error> - On success, returns the queue pair for communication. On failure, returns an error.
Source§

fn initialize_qp<'life0, 'life1, 'async_trait>( &'life0 mut self, _cx: &'life1 Context<'_, Self>, other: ActorRef<RdmaManagerActor>, ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Convenience utility to create a new RdmaQueuePair.

This function initializes a new RDMA connection with another actor if one doesn’t already exist. It creates a new RdmaQueuePair associated with the specified actor ID and adds it to the connection map.

§Arguments
  • other - The ActorRef of the remote actor to connect with
Source§

fn is_connected<'life0, 'life1, 'async_trait>( &'life0 mut self, _cx: &'life1 Context<'_, Self>, other: ActorRef<RdmaManagerActor>, ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Checks if a connection exists with another actor.

§Arguments
  • other - The ActorRef of the actor to check the connection with.
§Returns
  • bool - Returns true if connected, false otherwise.
Source§

fn connect<'life0, 'life1, 'async_trait>( &'life0 mut self, _cx: &'life1 Context<'_, Self>, other: ActorRef<RdmaManagerActor>, endpoint: RdmaQpInfo, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Establishes a connection with another actor

§Arguments
  • other - The ActorRef of the actor to connect to
  • endpoint - Connection information needed to establish the RDMA connection
Source§

fn connection_info<'life0, 'life1, 'async_trait>( &'life0 mut self, _cx: &'life1 Context<'_, Self>, other: ActorRef<RdmaManagerActor>, ) -> Pin<Box<dyn Future<Output = Result<RdmaQpInfo, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Gets connection information for establishing an RDMA connection

§Arguments
  • other - The ActorRef to get connection info for
§Returns
  • RdmaQpInfo - Connection information needed for the RDMA connection
Source§

fn handle<'life0, 'life1, 'async_trait>( &'life0 mut self, cx: &'life1 Context<'_, Self>, message: RdmaManagerMessage, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Handle the next message.
Source§

impl RemoteActor for RdmaManagerActor

Source§

impl RemoteHandles<RdmaManagerMessage> for RdmaManagerActor

Source§

impl RemoteHandles<Signal> for RdmaManagerActor

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<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.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<A, M> Handler<IndexedErasedUnbound<M>> for A
where A: Handler<M>, M: Castable,

Source§

fn handle<'life0, 'life1, 'async_trait>( &'life0 mut self, cx: &'life1 Context<'_, A>, msg: IndexedErasedUnbound<M>, ) -> 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.
Source§

impl<A> Handler<Signal> for A
where A: Actor,

Source§

fn handle<'life0, 'life1, 'async_trait>( &'life0 mut self, _cx: &'life1 Context<'_, A>, _message: Signal, ) -> 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.
Source§

impl<A> Handler<Undeliverable<MessageEnvelope>> for A
where 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,

Handle the next M-typed message.
§

impl<T> Instrument for T

§

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

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

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<A> RemotableActor for A
where A: Actor + RemoteActor + Binds<A>, <A as Actor>::Params: RemoteMessage,

Source§

fn gspawn( proc: &Proc, name: &str, serialized_params: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<ActorId, Error>> + Send>>

A type-erased entry point to spawn this actor. This is primarily used by Hyperactor’s remote actor registration mechanism.
Source§

fn get_type_id() -> TypeId

The type ID of this actor.
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<M> Message for M
where M: Debug + Send + Sync + 'static,