pub struct SubmitAgent { /* private fields */ }
Expand description
提交代理(SubmitAgent)是用户通过 ZeroCopyHandle::reserve_writer
成功预留空间后获得的对象。
它代表一个已确认的预留,包含预留 ID、偏移量和大小。
用户必须将此 Agent 转换为 SingleAgent
或 ChunkAgent
来实际提交数据,
或者直接 Drop 它以取消预留(这会通知 Manager 预留失败)。
注意: 直接 Drop SubmitAgent
会隐式地通知 Manager 该预留失败。
如果想成功提交数据,必须调用 into_single_agent
或 into_chunk_agent
。
Implementations§
Source§impl SubmitAgent
impl SubmitAgent
Sourcepub fn id(&self) -> ReservationId
pub fn id(&self) -> ReservationId
获取预留 ID
Sourcepub fn offset(&self) -> AbsoluteOffset
pub fn offset(&self) -> AbsoluteOffset
获取预留的起始偏移量
Sourcepub fn into_single_agent(self) -> SingleAgent
pub fn into_single_agent(self) -> SingleAgent
将 SubmitAgent
转换为 SingleAgent
,用于单次提交所有数据。
转换后,原 SubmitAgent
被消费,其 Drop 实现不会再发送失败通知。
如果转换后的 SingleAgent
被 Drop 而未成功提交数据,则由 SingleAgent
的 Drop 实现负责通知 Manager 失败。
Sourcepub fn into_chunk_agent(self) -> ChunkAgent
pub fn into_chunk_agent(self) -> ChunkAgent
将 SubmitAgent
转换为 ChunkAgent
,用于分块提交数据。
转换后,原 SubmitAgent
被消费,其 Drop 实现不会再发送失败通知。
如果转换后的 ChunkAgent
被 Drop 而未成功提交数据,则由 ChunkAgent
的 Drop 实现负责通知 Manager 失败。
Trait Implementations§
Source§impl Debug for SubmitAgent
impl Debug for SubmitAgent
Auto Trait Implementations§
impl Freeze for SubmitAgent
impl RefUnwindSafe for SubmitAgent
impl Send for SubmitAgent
impl Sync for SubmitAgent
impl Unpin for SubmitAgent
impl UnwindSafe for SubmitAgent
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