pub struct ActorMeshRef<A: Referable> { /* private fields */ }Expand description
A reference to a stable snapshot of an ActorMesh.
Implementations§
Source§impl<A: Referable> ActorMeshRef<A>
impl<A: Referable> ActorMeshRef<A>
Sourcepub fn cast<M>(&self, cx: &impl Actor, message: M) -> Result<()>where
A: RemoteHandles<M> + RemoteHandles<IndexedErasedUnbound<M>>,
M: Castable + RemoteMessage + Clone,
pub fn cast<M>(&self, cx: &impl Actor, message: M) -> Result<()>where
A: RemoteHandles<M> + RemoteHandles<IndexedErasedUnbound<M>>,
M: Castable + RemoteMessage + Clone,
Cast a message to all the actors in this mesh
Sourcepub fn cast_with_headers<M>(
&self,
cx: &impl Actor,
caller_headers: &Flattrs,
message: M,
) -> Result<()>where
A: RemoteHandles<M> + RemoteHandles<IndexedErasedUnbound<M>>,
M: Castable + RemoteMessage + Clone,
pub fn cast_with_headers<M>(
&self,
cx: &impl Actor,
caller_headers: &Flattrs,
message: M,
) -> Result<()>where
A: RemoteHandles<M> + RemoteHandles<IndexedErasedUnbound<M>>,
M: Castable + RemoteMessage + Clone,
Cast a message to all the actors in this mesh, merging
caller-supplied caller_headers into the per-rank envelope
headers before send. Used to propagate caller-known context
(e.g. operation-context keys marked with OPERATION_CONTEXT_HEADER)
onto the outgoing request so receivers can project it back
onto replies.
Sourcepub fn cast_for_tensor_engine_only_do_not_use<M>(
&self,
cx: &impl Actor,
sel: Selection,
message: M,
) -> Result<()>where
A: RemoteHandles<M> + RemoteHandles<IndexedErasedUnbound<M>>,
M: Castable + RemoteMessage + Clone,
pub fn cast_for_tensor_engine_only_do_not_use<M>(
&self,
cx: &impl Actor,
sel: Selection,
message: M,
) -> Result<()>where
A: RemoteHandles<M> + RemoteHandles<IndexedErasedUnbound<M>>,
M: Castable + RemoteMessage + Clone,
Cast a message to the actors in this mesh according to the provided selection. This should only be used for temporary support for selections in the tensor engine. If you use this for anything else, you will be fired (you too, OSS contributor).
Sourcepub async fn actor_states(
&self,
cx: &impl Actor,
) -> Result<ValueMesh<State<ActorState>>>
pub async fn actor_states( &self, cx: &impl Actor, ) -> Result<ValueMesh<State<ActorState>>>
Query the state of all actors in this mesh. If keepalive is Some, use a message that indicates to the recipient that the owner of the mesh is still alive, along with the expiry time after which the actor should be considered orphaned. Else, use a normal state query.
pub fn id(&self) -> &ActorMeshId
pub fn proc_mesh(&self) -> &ProcMeshRef
pub fn controller(&self) -> &Option<ActorRef<ActorMeshController<A>>>
Sourcepub async fn next_supervision_event(
&self,
cx: &impl Actor,
) -> Result<MeshFailure, Error>
pub async fn next_supervision_event( &self, cx: &impl Actor, ) -> Result<MeshFailure, Error>
Returns the next supervision event occurring on this mesh. Await this simultaneously with the return result of a message (such as awaiting a reply after a cast) to get back a message that indicates the actor that failed, instead of waiting forever for a reply. If there are multiple simultaneous awaits of next_supervision_event, all of them will receive the same event.
Sourcepub fn clone_with_supervision_receiver(&self) -> Self
pub fn clone_with_supervision_receiver(&self) -> Self
Same as Clone, but includes a shared supervision receiver. This copy will share the same health state and get the same supervision events. Will have a separate cache.
Trait Implementations§
Source§impl<A: Referable> Clone for ActorMeshRef<A>
impl<A: Referable> Clone for ActorMeshRef<A>
Source§impl<A: Referable> Controlled for ActorMeshRef<A>
Controlled implementation for an actor mesh.
impl<A: Referable> Controlled for ActorMeshRef<A>
Controlled implementation for an actor mesh.
Source§type StateInner = ActorState
type StateInner = ActorState
resource::State<Self::StateInner>.Source§fn stall_counter() -> &'static Counter<u64>
fn stall_counter() -> &'static Counter<u64>
Source§fn id(&self) -> &ResourceId
fn id(&self) -> &ResourceId
Source§fn subscribe_to_stream(
&self,
cx: &impl Actor,
subscriber: PortRef<State<ActorState>>,
) -> Result<()>
fn subscribe_to_stream( &self, cx: &impl Actor, subscriber: PortRef<State<ActorState>>, ) -> Result<()>
StreamState<StateInner> updates from
the underlying agents.Source§fn forward_wait_rank_status(
&self,
cx: &impl Actor,
msg: WaitRankStatus,
) -> Result<()>
fn forward_wait_rank_status( &self, cx: &impl Actor, msg: WaitRankStatus, ) -> Result<()>
WaitRankStatus message to the underlying agents.Source§fn poll_states<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
cx: &'life1 (impl 'async_trait + Actor),
supervision_display_name: &'life2 str,
health_state: &'life3 mut HealthState,
) -> Pin<Box<dyn Future<Output = PollResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn poll_states<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
cx: &'life1 (impl 'async_trait + Actor),
supervision_display_name: &'life2 str,
health_state: &'life3 mut HealthState,
) -> Pin<Box<dyn Future<Output = PollResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
health_state happen
in-place. supervision_display_name is used for synthesised
supervision events (e.g., when a proc dies).Source§fn process_state(
&self,
cx: &impl Actor,
state: State<ActorState>,
health_state: &mut HealthState,
) -> bool
fn process_state( &self, cx: &impl Actor, state: State<ActorState>, health_state: &mut HealthState, ) -> bool
true if a
notification was emitted (used to suppress heartbeats).Source§fn handle_stop_request<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
cx: &'life1 (impl 'async_trait + Actor),
_supervision_display_name: &'life2 str,
reason: String,
health_state: &'life3 mut HealthState,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn handle_stop_request<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
cx: &'life1 (impl 'async_trait + Actor),
_supervision_display_name: &'life2 str,
reason: String,
health_state: &'life3 mut HealthState,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
health_state and notify
subscribers. The caller has already taken the monitor and logged.Source§fn cleanup_stop<'life0, 'life1, 'async_trait>(
&'life0 self,
cx: &'life1 (impl 'async_trait + Actor),
reason: String,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn cleanup_stop<'life0, 'life1, 'async_trait>(
&'life0 self,
cx: &'life1 (impl 'async_trait + Actor),
reason: String,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Stop was not received
but the actor is shutting down).Source§impl<A: Referable> Debug for ActorMeshRef<A>
impl<A: Referable> Debug for ActorMeshRef<A>
Source§impl<'de, A: Referable> Deserialize<'de> for ActorMeshRef<A>
impl<'de, A: Referable> Deserialize<'de> for ActorMeshRef<A>
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<A: Referable> Display for ActorMeshRef<A>
impl<A: Referable> Display for ActorMeshRef<A>
Source§impl<A: Referable> Hash for ActorMeshRef<A>
impl<A: Referable> Hash for ActorMeshRef<A>
Source§impl<A: Referable + Named> Named for ActorMeshRef<A>
impl<A: Referable + Named> Named for ActorMeshRef<A>
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
Source§impl<A: Referable> PartialEq for ActorMeshRef<A>
impl<A: Referable> PartialEq for ActorMeshRef<A>
Source§impl<A: Referable> Ranked for ActorMeshRef<A>
impl<A: Referable> Ranked for ActorMeshRef<A>
Source§impl<A: Referable> RankedSliceable for ActorMeshRef<A>
impl<A: Referable> RankedSliceable for ActorMeshRef<A>
Source§impl<A: Referable> Serialize for ActorMeshRef<A>
impl<A: Referable> Serialize for ActorMeshRef<A>
impl<A: Referable> Eq for ActorMeshRef<A>
Auto Trait Implementations§
impl<A> !Freeze for ActorMeshRef<A>
impl<A> RefUnwindSafe for ActorMeshRef<A>
impl<A> Send for ActorMeshRef<A>
impl<A> Sync for ActorMeshRef<A>
impl<A> Unpin for ActorMeshRef<A>
impl<A> UnsafeUnpin for ActorMeshRef<A>
impl<A> UnwindSafe for ActorMeshRef<A>
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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§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].Source§impl<T> MapIntoExt for Twhere
T: Ranked,
impl<T> MapIntoExt for Twhere
T: Ranked,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> QuoteExt for Twhere
T: ?Sized,
impl<T> QuoteExt for Twhere
T: ?Sized,
fn push_quoted<'q, Q, S>(&mut self, _q: Q, s: S)where
Q: QuoteInto<T>,
S: Into<Quotable<'q>>,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>
fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>
§impl<T> ToSmolStr for T
impl<T> ToSmolStr for T
fn to_smolstr(&self) -> SmolStr
Source§impl<T> ViewExt for Twhere
T: View,
impl<T> ViewExt for Twhere
T: View,
Source§fn range<R>(&self, dim: &str, range: R) -> Result<<T as View>::View, ViewError>
fn range<R>(&self, dim: &str, range: R) -> Result<<T as View>::View, ViewError>
Source§fn group_by(
&self,
dim: &str,
) -> Result<impl Iterator<Item = <T as View>::View>, ViewError>
fn group_by( &self, dim: &str, ) -> Result<impl Iterator<Item = <T as View>::View>, ViewError>
dim. The returned iterator enumerates all groups
as views in the extent of dim to the last dimension of the view. Read more