예제 #1
0
 internal void AfterTableClientState(TableClientState triggerState, Action action)
 {
     OnTableClientState(triggerState, () => {
         PSharpRuntime.SendEvent(machineId, new GenericDispatchableEvent(), new ActionDispatchable(action));
         return(Task.CompletedTask);
     });
 }
 internal MTableConfiguration(TableClientState state)
 {
     this.state = state;
 }
예제 #3
0
        // Not the greatest naming.  OnTableClientState blocks the configuration
        // push until asyncAction completes, while AfterTableClientState does not.

        internal void OnTableClientState(TableClientState triggerState, Func <Task> asyncAction)
        {
            MTableConfiguration dummy;

            configService.Subscribe(new StateTriggeredActionSubscriber(this, triggerState, asyncAction), out dummy);
        }
예제 #4
0
 internal StateTriggeredActionSubscriber(ServiceMachineCore outer, TableClientState triggerState, Func <Task> asyncAction)
 {
     this.outer        = outer;
     this.triggerState = triggerState;
     this.asyncAction  = asyncAction;
 }