pub struct GetHostProcStates {
pub proc_mesh_id: ProcMeshId,
pub region: Region,
pub keepalive: Option<SystemTime>,
pub reply: PortRef<ValueOverlay<State<ProcState>>>,
}Expand description
Query the state of a proc mesh’s procs, cast to the host agents backing that
mesh. The caller casts ONE of these carrying the queried region (the mesh
may be sliced, so the region need not be a dense 0..n). The cast reaches
every routing host, but each rank’s proc lives on exactly one host, so each
HostAgent that owns at least one selected proc reports those procs in a
single batch. Hosts that own no selected procs do not reply.
The bound reply port is split by the cast tree, so replies reduce up the
tree (to cast actor 0) instead of every host dialing the caller directly.
One batched reply per owning host means the caller sees O(hosts) reply
messages instead of O(procs).
GetState<ProcState> cannot be cast this way because it carries a
fully-resolved id; this message resolves ids host-side instead.
If keepalive is Some, each proc’s expiry is extended (same
orphan-protection semantics as KeepaliveGetState).
Fields§
§proc_mesh_id: ProcMeshId§region: RegionThe (possibly sliced) region being queried. Each host keeps the procs it
owns for this mesh whose global rank lies in the region, tested with
Slice::contains (offset/stride-aware) — so a sliced or host-offset
region resolves correctly without relying on the recipient’s stamped rank.
keepalive: Option<SystemTime>§reply: PortRef<ValueOverlay<State<ProcState>>>Sparse overlay of the ranks this host owns for the mesh. The caller opens
an accumulator port seeded with a full-region template, so per-host
overlays reduce up the cast tree into the complete proc-state mesh (see
ProcMeshRef::states).
Trait Implementations§
Source§impl Clone for GetHostProcStates
impl Clone for GetHostProcStates
Source§fn clone(&self) -> GetHostProcStates
fn clone(&self) -> GetHostProcStates
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GetHostProcStates
impl Debug for GetHostProcStates
Source§impl<'de> Deserialize<'de> for GetHostProcStates
impl<'de> Deserialize<'de> for GetHostProcStates
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 Handler<GetHostProcStates> for HostAgent
impl Handler<GetHostProcStates> for HostAgent
Source§impl Named for GetHostProcStates
impl Named for GetHostProcStates
Source§fn typename() -> &'static str
fn typename() -> &'static str
Source§fn typehash() -> u64
fn typehash() -> u64
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
Source§impl Serialize for GetHostProcStates
impl Serialize for GetHostProcStates
impl Accepts<GetHostProcStates> for HostAgentwhere
GetHostProcStates: RemoteMessage,
impl RemoteHandles<GetHostProcStates> for HostAgentwhere
GetHostProcStates: RemoteMessage,
Auto Trait Implementations§
impl !Freeze for GetHostProcStates
impl RefUnwindSafe for GetHostProcStates
impl Send for GetHostProcStates
impl Sync for GetHostProcStates
impl Unpin for GetHostProcStates
impl UnsafeUnpin for GetHostProcStates
impl UnwindSafe for GetHostProcStates
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>
§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].