Exemplo n.º 1
0
        public (StateMachinePersisted <long, TestState, TestEvent, Context, string, Guid>, Context) CreateStateMachine()
        {
            var store        = A.Fake <IEventPersistedStore <long, TestState, TestEvent, string, Context, Guid> >();
            var retry        = A.Fake <IRetryService>();
            var stateMachine = new StateMachinePersisted <long, TestState, TestEvent, Context, string, Guid>(
                A.Fake <IEventPersistedStore <long, TestState, TestEvent, string, Context, Guid> >(),
                A.Fake <IRetryService>());

            stateMachine
            .Add(new StateA())
            .Add(new StateB())
            ;
            var newEventReceived = new NewEventReceived <long, TestState, TestEvent, Context, string, Guid>(
                stateMachine);
            var ctx = new Context(
                1,
                TestState.A,
                32,
                store,
                retry,
                newEventReceived);


            return(stateMachine, ctx);
        }
Exemplo n.º 2
0
 public Context(
     long stateMachineKey,
     TestState currentState,
     uint size,
     IEventPersistedStore <long, TestState, TestEvent, string, Context, Guid> eventPersistedStore,
     IRetryService retryService,
     NewEventReceived <long, TestState, TestEvent, Context, string, Guid> newEventReceived,
     int maxDelay = 600) : base(
         stateMachineKey,
         currentState,
         size,
         eventPersistedStore,
         retryService,
         newEventReceived,
         maxDelay)
 {
 }
Exemplo n.º 3
0
        public void Publish(IEvent ev)
        {
            lock (sourceLock)
            {
                var id = GenerateId();
                events.AddLast(new OrderedEvent(id, ev));
                LastEventId = id;
                counter++;

                if (counter >= MaxEventCount)
                {
                    events.RemoveFirst();
                    counter--;
                }
            }

            NewEventReceived?.Invoke(this, ev);
        }
Exemplo n.º 4
0
 public void SignalEventReceived(IEvent ev)
 {
     NewEventReceived?.Invoke(this, ev);
 }