例えば、HomeHeatingSystem の例の Furnace の作動状態用に生成された dispatchEvent() 操作は、 おおよそ以下のような switch ステートメントを使用して、作動直交状態のサブ状態 idle (アイドル)、shutting (遮断中)、working (作動中)、および starting (開始中) からのアウト遷移を処理します。
static int operating_dispatchEvent(Furnace* const me,
short id) {
int res = eventNotConsumed;
switch (me->operating_active) {
case Furnace_idle:
{
/* process out transitions from idle state */
res = eventConsumed;
break;
};
case Furnace_shutting:
{
/* process out transitions from shutting
state */
res = eventConsumed;
break;
};
case Furnace_starting:
{
/* process out transitions from starting
state */
res = eventConsumed;
break;
};
case Furnace_working:
{
/* process out transitions from working
state */
res = eventConsumed;
break;
};
default:
break;
};
return res;
}