Re: [Asio-samples-users] добавление API записи чтения в echo_server
Status: Beta
Brought to you by:
mabrarov
From: Marat A. <ab...@gm...> - 2012-05-07 10:15:06
|
> 1. с чего начать С session::continue_work(). > 2. что изменять Вводить новые состояния/флаги/КА (через тот же user_context) и учитывать их в session::continue_work(). > 3. на что обратить внимание На то, что есть несколько КА: 1. Общий внешний КА, наблюдаемый извне класса session. Он, по сути, повторяет следующий, но с запозданием. 2. Внутренний общий КА а-ла session's lifecycle. 3. (Внутренний) КА для таймера. 4. (Внутренний) КА для отправки данных через сокет. 5. (Внутренний) КА для приема данных из сокета. Все КА влияют друг на друга своими событиями. Например, "Внутренний общий КА" не перейдет в состояние intern_state::stopped, пока есть pending_operations_, т.е. пока все остальные "внутренние КА" не перейдут в состояние stopped. > 4. какая последовательность вызовов+логика > etc... > > не могли бы Вы выразить это в псевдокоде+словах, пожалуйста. Как я писал ранее - надо переварить (нужно время). После того, как нарисую диаграммы для КА (UML state machine), Ваши вопросы, полагаю, отпадут сами собой. Вообще будет здорово, если удастся перевести на Boost.MSM.... хотя бы для примера. Regards, Marat Abrarov. |