pub trait StatefulServiceReplica:
Send
+ Sync
+ 'static
+ Send {
// Required methods
fn open(
&self,
openmode: OpenMode,
partition: &StatefulServicePartition,
cancellation_token: BoxedCancelToken,
) -> impl Future<Output = Result<impl PrimaryReplicator>> + Send;
fn change_role(
&self,
newrole: ReplicaRole,
cancellation_token: BoxedCancelToken,
) -> impl Future<Output = Result<WString>> + Send;
fn close(
&self,
cancellation_token: BoxedCancelToken,
) -> impl Future<Output = Result<()>> + Send;
fn abort(&self);
}
Expand description
Defines behavior that governs the lifecycle of a replica, such as startup, initialization, role changes, and shutdown. Remarks: Stateful service types must implement this interface. The logic of a stateful service type includes behavior that is invoked on primary replicas and behavior that is invoked on secondary replicas.
Required Methods§
Sourcefn open(
&self,
openmode: OpenMode,
partition: &StatefulServicePartition,
cancellation_token: BoxedCancelToken,
) -> impl Future<Output = Result<impl PrimaryReplicator>> + Send
fn open( &self, openmode: OpenMode, partition: &StatefulServicePartition, cancellation_token: BoxedCancelToken, ) -> impl Future<Output = Result<impl PrimaryReplicator>> + Send
Opens an initialized service replica so that additional actions can be taken. Returns PrimaryReplicator that is used by the stateful service. Note: Most user calls IFabricStatefulServicePartition.CreateReplicator instead of writing their own replicator (TODO: not supported in mssf yet), or use FabricCreateKeyValueStoreReplica.
Sourcefn change_role(
&self,
newrole: ReplicaRole,
cancellation_token: BoxedCancelToken,
) -> impl Future<Output = Result<WString>> + Send
fn change_role( &self, newrole: ReplicaRole, cancellation_token: BoxedCancelToken, ) -> impl Future<Output = Result<WString>> + Send
Changes the role of the service replica to one of the ReplicaRole. Returns the service’s new connection address that is to be associated with the replica via Service Fabric Naming. Remarks: The new role is indicated as a parameter. When the service transitions to the new role, the service has a chance to update its current listening address. The listening address is the address where clients connect to it and the one returned via the ResolveAsync API. This enables the service when it is a primary replica to only claim some resources such as ports when communication from clients is expected.
Sourcefn close(
&self,
cancellation_token: BoxedCancelToken,
) -> impl Future<Output = Result<()>> + Send
fn close( &self, cancellation_token: BoxedCancelToken, ) -> impl Future<Output = Result<()>> + Send
Closes the service replica gracefully when it is being shut down.
Sourcefn abort(&self)
fn abort(&self)
Ungracefully terminates the service replica. Remarks: Network issues resulting in Service Fabric process shutdown and the use of ReportFault(FaultType) to report a Permanent fault are examples of ungraceful termination. When this method is invoked, the service replica should immediately release and clean up all references and return.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.