Search Results for

    Show / Hide Table of Contents

    Class PersistentFSM<TState, TData, TEvent>

    Finite state machine (FSM) persistent actor.

    Inheritance
    object
    ActorBase
    Eventsourced
    PersistentActor
    PersistentFSMBase<TState, TData, TEvent>
    PersistentFSM<TState, TData, TEvent>
    Implements
    IInternalActor
    IPersistentIdentity
    IPersistenceStash
    IWithUnboundedStash
    IWithUnrestrictedStash
    IActorStash
    IRequiresMessageQueue<IUnboundedDequeBasedMessageQueueSemantics>
    IPersistenceRecovery
    IListeners
    Inherited Members
    PersistentFSMBase<TState, TData, TEvent>.When(TState, PersistentFSMBase<TState, TData, TEvent>.StateFunction, TimeSpan?)
    PersistentFSMBase<TState, TData, TEvent>.StartWith(TState, TData, TimeSpan?)
    PersistentFSMBase<TState, TData, TEvent>.GoTo(TState)
    PersistentFSMBase<TState, TData, TEvent>.Stay()
    PersistentFSMBase<TState, TData, TEvent>.Stop()
    PersistentFSMBase<TState, TData, TEvent>.Stop(FSMBase.Reason)
    PersistentFSMBase<TState, TData, TEvent>.Stop(FSMBase.Reason, TData)
    PersistentFSMBase<TState, TData, TEvent>.Transform(PersistentFSMBase<TState, TData, TEvent>.StateFunction)
    PersistentFSMBase<TState, TData, TEvent>.SetTimer(string, object, TimeSpan, bool)
    PersistentFSMBase<TState, TData, TEvent>.CancelTimer(string)
    PersistentFSMBase<TState, TData, TEvent>.IsTimerActive(string)
    PersistentFSMBase<TState, TData, TEvent>.SetStateTimeout(TState, TimeSpan?)
    PersistentFSMBase<TState, TData, TEvent>.OnTransition(PersistentFSMBase<TState, TData, TEvent>.TransitionHandler)
    PersistentFSMBase<TState, TData, TEvent>.OnTermination(Action<FSMBase.StopEvent<TState, TData>>)
    PersistentFSMBase<TState, TData, TEvent>.WhenUnhandled(PersistentFSMBase<TState, TData, TEvent>.StateFunction)
    PersistentFSMBase<TState, TData, TEvent>.StateName
    PersistentFSMBase<TState, TData, TEvent>.StateData
    PersistentFSMBase<TState, TData, TEvent>.StateNames
    PersistentFSMBase<TState, TData, TEvent>.NextStateData
    PersistentFSMBase<TState, TData, TEvent>.Listeners
    PersistentFSMBase<TState, TData, TEvent>.ReceiveCommand(object)
    PersistentFSMBase<TState, TData, TEvent>.ApplyState(PersistentFSM.State<TState, TData, TEvent>)
    PersistentFSMBase<TState, TData, TEvent>.PostStop()
    PersistentFSMBase<TState, TData, TEvent>.LogTermination(FSMBase.Reason)
    PersistentActor.Receive(object)
    Eventsourced.Extension
    Eventsourced.Log
    Eventsourced.PersistenceId
    Eventsourced.Recovery
    Eventsourced.InternalStashOverflowStrategy
    Eventsourced.Stash
    Eventsourced.JournalPluginId
    Eventsourced.SnapshotPluginId
    Eventsourced.Journal
    Eventsourced.SnapshotStore
    Eventsourced.SnapshotterId
    Eventsourced.IsRecovering
    Eventsourced.IsRecoveryFinished
    Eventsourced.LastSequenceNr
    Eventsourced.SnapshotSequenceNr
    Eventsourced.LoadSnapshot(string, SnapshotSelectionCriteria, long)
    Eventsourced.SaveSnapshot(object)
    Eventsourced.DeleteSnapshot(long)
    Eventsourced.DeleteSnapshots(SnapshotSelectionCriteria)
    Eventsourced.ReceiveCommand(object)
    Eventsourced.Persist<TEvent>(TEvent, Action<TEvent>)
    Eventsourced.PersistAll<TEvent>(IEnumerable<TEvent>, Action<TEvent>)
    Eventsourced.PersistAsync<TEvent>(TEvent, Action<TEvent>)
    Eventsourced.PersistAllAsync<TEvent>(IEnumerable<TEvent>, Action<TEvent>)
    Eventsourced.DeferAsync<TEvent>(TEvent, Action<TEvent>)
    Eventsourced.DeleteMessages(long)
    Eventsourced.OnReplaySuccess()
    Eventsourced.OnRecoveryFailure(Exception, object)
    Eventsourced.OnPersistFailure(Exception, object, long)
    Eventsourced.OnPersistRejected(Exception, object, long)
    Eventsourced.RunTask(Func<Task>)
    Eventsourced.UnstashFilterPredicate
    Eventsourced.AroundReceive(Receive, object)
    Eventsourced.AroundPreStart()
    Eventsourced.AroundPreRestart(Exception, object)
    Eventsourced.AroundPostRestart(Exception, object)
    Eventsourced.AroundPostStop()
    Eventsourced.Unhandled(object)
    ActorBase.Sender
    ActorBase.Self
    ActorBase.Context
    ActorBase.EmptyReceive
    ActorBase.Become(Receive)
    ActorBase.BecomeStacked(Receive)
    ActorBase.UnbecomeStacked()
    ActorBase.SetReceiveTimeout(TimeSpan?)
    ActorBase.PreStart()
    ActorBase.PreRestart(Exception, object)
    ActorBase.PostRestart(Exception)
    ActorBase.PostStop()
    ActorBase.SupervisorStrategy()
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Akka.Persistence.Fsm
    Assembly: Akka.Persistence.dll
    Syntax
    public abstract class PersistentFSM<TState, TData, TEvent> : PersistentFSMBase<TState, TData, TEvent>, IInternalActor, IPersistentIdentity, IPersistenceStash, IWithUnboundedStash, IWithUnrestrictedStash, IActorStash, IRequiresMessageQueue<IUnboundedDequeBasedMessageQueueSemantics>, IPersistenceRecovery, IListeners where TState : PersistentFSM.IFsmState
    Type Parameters
    Name Description
    TState

    The state name type

    TData

    The state data type

    TEvent

    The event data type

    Methods

    | Edit this page View Source

    ApplyEvent(TEvent, TData)

    Override this handler to define the action on Domain Event

    Declaration
    protected abstract TData ApplyEvent(TEvent domainEvent, TData currentData)
    Parameters
    Type Name Description
    TEvent domainEvent

    Domain event to apply.

    TData currentData

    State data of the previous state.

    Returns
    Type Description
    TData

    Updated state data

    | Edit this page View Source

    ApplyState(State<TState, TData, TEvent>)

    Persist FSM State and FSM State Data

    Declaration
    protected override void ApplyState(PersistentFSM.State<TState, TData, TEvent> nextState)
    Parameters
    Type Name Description
    PersistentFSM.State<TState, TData, TEvent> nextState

    TBD

    Overrides
    PersistentFSMBase<TState, TData, TEvent>.ApplyState(PersistentFSM.State<TState, TData, TEvent>)
    | Edit this page View Source

    OnRecoveryCompleted()

    Override this handler to define the action on recovery completion

    Declaration
    protected virtual void OnRecoveryCompleted()
    | Edit this page View Source

    ReceiveRecover(object)

    Recovery handler that receives persistent events during recovery. If a state snapshot has been captured and saved, this handler will receive a SnapshotOffer message followed by events that are younger than offer itself.

    This handler must not have side-effects other than changing persistent actor state i.e. it should not perform actions that may fail, such as interacting with external services, for example.

    If there is a problem with recovering the state of the actor from the journal, the error will be logged and the actor will be stopped.

    Declaration
    protected override bool ReceiveRecover(object message)
    Parameters
    Type Name Description
    object message

    TBD

    Returns
    Type Description
    bool

    TBD

    Overrides
    Eventsourced.ReceiveRecover(object)
    | Edit this page View Source

    SaveStateSnapshot()

    Save the current state as a snapshot

    Declaration
    public void SaveStateSnapshot()

    Implements

    IInternalActor
    IPersistentIdentity
    IPersistenceStash
    IWithUnboundedStash
    IWithUnrestrictedStash
    IActorStash
    IRequiresMessageQueue<T>
    IPersistenceRecovery
    IListeners

    Extension Methods

    ObjectExtensions.IsDefaultForType<T>(T)
    ObjectExtensions.AsOption<T>(T)
    Extensions.AsInstanceOf<T>(object)
    In this article
    • githubEdit this page
    • View Source
    Back to top
    Contribute
    • Project Chat
    • Discussion Forum
    • Source Code
    Support
    • Akka.NET Support Plans
    • Akka.NET Observability Tools
    • Akka.NET Training & Consulting
    Maintained By
    • Petabridge - The Akka.NET Company
    • Learn Akka.NET