Здравствуйте, kov_serg, Вы писали:
_>_>int fn_setup(context *ctx,int event_code);
_>int fn_loop(context *ctx) {
_> switch(ctx->line) { default:
_> case 0: /* code 1 */ ctx->line=1; return 1;
_> case 1: /* code 2 формируем запрос */ ctx->line=2; return 2; // предываемся и просми обработать запрос rc=2 (hint)
_> case 2: /* code 3 анализируем ответ и был ли он вообще обработан */ ctx->line=3; return 1;
_> case 3: /* code 4 */ ctx->line=4; return 1;
_> /*...*/
_> }
_> return 0;
_>}
_>
Спасибо! Примерно то, что меня интересует но такой подход слишком низкоуровневый получается. Если рассматривать такой автомат как корутину, то придется хранить в состоянии всё, в том числе все локальные переменные и руками следить за их временем жизни, если они нужны только нескольким промежуточным состояниям. Больше С++ тут нельзя задействовать как-то?