コード例 #1
0
        private ResultSignal dispatch(SignalFrame signalFrame)
        {
            lockProcess(signalFrame.PID.ID);
            try
            {
                ProcessFrame processFrame = m_ProcessStore.GetByPID(signalFrame.PID);

                var process = processFrame.Materialize(AgniSystem.ProcessManager.ProcessTypeResolver);
                var signal  = signalFrame.Materialize(AgniSystem.ProcessManager.SignalTypeResolver);
                if (process == null || signal == null)//safeguard
                {
                    throw new WorkersException("TODO");
                }

                return(process.Accept(this, signal));
            }
            finally
            {
                releaseProcess(signalFrame.PID.ID);
            }
        }
コード例 #2
0
 public SignalFrame Dispatch(SignalFrame signal) => Dispatch(signal);
コード例 #3
0
 public SignalFrame Dispatch(SignalFrame signalFrame)
 {
     return(new SignalFrame(dispatch(signalFrame)));
 }
コード例 #4
0
 public SignalFrame Dispatch(SignalFrame signal)
 {
     return(ProcessControllerService.Instance.Dispatch(signal));
 }