qfsm.h

来自「这是状态机的一个框架结构的例子,可以作为状态机的基本架构」· C头文件 代码 · 共 35 行

H
35
字号
/******************************************************************** 
 * Quantum Finite State Machine declarations ("C+" version)
 * Copyright (c) 2002 Miro Samek, Palo Alto, CA.
 * All Rights Reserved.
 *******************************************************************/
#ifndef qfsm_h
#define qfsm_h

#ifndef qevent_h
   #include "qevent.h"
#endif

typedef void (*QFsmState)(struct QFsm *, QEvent const *);

SUBCLASS(QFsm, Object)  /* Quantum Finite State Machine base class */
   QFsmState state__;                          /* the active state */
VTABLE(QFsm, Object)
METHODS
/* public methods */
   #define QFsmInit(me_, e_) ((*(me_)->state__)((me_), (e_))) 
                                               /* "inline" methods */
   #define QFsmDispatch(me_, e_) (*(me_)->state__)((me_), (e_))
   #define QFsmGetState(me_) ((me_)->state__)

/* protected methods */
   QFsm *QFsmCtor_(QFsm *me, QFsmState initial);           /* Ctor */
   void QFsmXtor_(QFsm *me);                               /* Xtor */
   #define QFSM_TRAN(target_) \
      (((QFsm *)me)->state__ = (QFsmState)(target_))
                               /* static methods (no "me" pointer) */
   char const *QFsmGetVersion(void);
END_CLASS 

#endif                                                   /* qfsm_h */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?