例如,在 HomeHeatingSystem 範例中針對 Furnace 的作業狀態產生的 dispatchEvent() 作業大致上會使用下列 switch 陳述式,以處理來自作業正交狀態之閒置、關閉中、工作中及啟動中狀態的對外轉移:
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;
}