pub struct RdmaBuffer {
pub owner: ActorRef<RdmaManagerActor>,
pub mr_id: usize,
pub lkey: u32,
pub rkey: u32,
pub addr: usize,
pub size: usize,
}
Fields§
§owner: ActorRef<RdmaManagerActor>
§mr_id: usize
§lkey: u32
§rkey: u32
§addr: usize
§size: usize
Implementations§
Source§impl RdmaBuffer
impl RdmaBuffer
Sourcepub async fn read_into(
&self,
client: &impl Actor,
remote: RdmaBuffer,
timeout: u64,
) -> Result<bool, Error>
pub async fn read_into( &self, client: &impl Actor, remote: RdmaBuffer, timeout: u64, ) -> Result<bool, Error>
Read from the RdmaBuffer into the provided memory.
This method transfers data from the buffer into the local memory region provided over RDMA.
This involves calling a Put
operation on the RdmaBuffer’s actor side.
§Arguments
client
- The actor who is reading.remote
- RdmaBuffer representing the remote memory regiontimeout
- Timeout in seconds for the RDMA operation to complete.
§Returns
Ok(bool)
indicating if the operation completed successfully.
Sourcepub async fn write_from(
&self,
client: &impl Actor,
remote: RdmaBuffer,
timeout: u64,
) -> Result<bool, Error>
pub async fn write_from( &self, client: &impl Actor, remote: RdmaBuffer, timeout: u64, ) -> Result<bool, Error>
Write from the provided memory into the RdmaBuffer.
This method performs an RDMA write operation, transferring data from the caller’s
memory region to this buffer.
This involves calling a Fetch
operation on the RdmaBuffer’s actor side.
§Arguments
client
- The actor who is writing.remote
- RdmaBuffer representing the remote memory regiontimeout
- Timeout in seconds for the RDMA operation to complete.
§Returns
Ok(bool)
indicating if the operation completed successfully.
Sourcepub async fn drop_buffer(&self, client: &impl Actor) -> Result<(), Error>
pub async fn drop_buffer(&self, client: &impl Actor) -> Result<(), Error>
Drop the buffer and release remote handles.
This method calls the owning RdmaManagerActor to release the buffer and clean up associated memory regions. This is typically called when the buffer is no longer needed and resources should be freed.
§Arguments
client
- Mailbox used for communication
§Returns
Ok(())
if the operation completed successfully.
Trait Implementations§
Source§impl Clone for RdmaBuffer
impl Clone for RdmaBuffer
Source§fn clone(&self) -> RdmaBuffer
fn clone(&self) -> RdmaBuffer
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for RdmaBuffer
impl Debug for RdmaBuffer
Source§impl<'de> Deserialize<'de> for RdmaBuffer
impl<'de> Deserialize<'de> for RdmaBuffer
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>,
Source§impl Named for RdmaBuffer
impl Named for RdmaBuffer
Source§fn typename() -> &'static str
fn typename() -> &'static str
Source§fn typehash() -> u64
fn typehash() -> u64
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
Source§fn port() -> u64
fn port() -> u64
Auto Trait Implementations§
impl Freeze for RdmaBuffer
impl RefUnwindSafe for RdmaBuffer
impl Send for RdmaBuffer
impl Sync for RdmaBuffer
impl Unpin for RdmaBuffer
impl UnwindSafe for RdmaBuffer
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> Checkpointable for Twhere
T: RemoteMessage + Clone,
impl<T> Checkpointable for Twhere
T: RemoteMessage + Clone,
Source§type State = T
type State = 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