| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- namespace Aitex.Core.RT.Fsm
 
- {
 
-     public delegate bool FsmFunc(object[] param);
 
-     public interface IStateMachine
 
-     {
 
-         string Name { get; set; }
 
-         int ElapsedTime { get; }
 
-         int EnterTime { set; }
 
-         int State { get; }
 
-         int LastMsg { get; }
 
-         int PrevState { get; }
 
-         void Init(int initState, int interval);
 
-         void Start();
 
-         void Loop();
 
-         void Stop();
 
-         void EnableRepeatedMsg(bool enable);
 
-         void Transition(int state, int msg, FsmFunc func, int next);
 
-         void AnyStateTransition(int msg, FsmFunc func, int next);
 
-         void EnterExitTransition(int state, FsmFunc enter, int msg, FsmFunc exit);
 
-         void PostMsg(int msg, object[] args);
 
-         void PostMsgWithoutLock(int msg, object[] args);
 
-         void MapState(int state, string stringState);
 
-         void MapMessage(int message, string stringMessage);
 
-         bool FindTransition(int state, int msg);
 
-         bool CheckExecuted();
 
-         bool CheckExecuted(int msg);
 
-         bool CheckExecuted(int msg, out int currentMsg, out List<int> msgQueue);
 
-     }
 
- }
 
 
  |