Всем привет!
Пишу некое приложение, своего рода IDE. Логика не из простых. Вот возникла задумка реализовать логику этого приложения на КА.
Но, поскольку не слишком силен в метапрограммировании, возникла проблемка, которую хочется решить как-нть по-изящнее. А именно:
Допустим, есть два КА — один отвечает за логику работы окон приложения (ну, там, открыть/закрыть, очистить/заполнить и т.д.), а другой КА отвечает за логику внутренних данных (например, восстановить из файла или обновить в файле, проверить и пр.). Так вот, как можно изящно передать event из одного КА в другой?
Попробую проиллюстрировать:
//...
class SFSM1 : public fsm::Builder< STT1, STATE1, EVENT1 > {}
class SFSM2 : public fsm::Builder< STT2, STATE2, EVENT2 > {}
int main() {
SFSM1 sfsm1;
SFSM2 sfsm2;
sfsm1.postEvent( E_SOMEEVENT ); // <-- например, вот тут
// хотелось бы состояние sfsm2 на другое, отличное от начального
Возможно ли это сделать из функции контекста?
Некромант? =)
... << RSDN@Home 1.2.0 alpha rev. 787>>