После долгий мучений (который были больше размышлениями, код не большой) мню была сделана библиотека, которая должна сильно упростить программирование с использование асинхронных callback'ов
Фактически она ползволяет строить последовательность из синхронных и спецаильных асинхронных (не сильно отличающихся по стилю работы от сихронных) вызовов, с опредлением обработчика исключений (возможно не одного) и блоков finalize
Это все очень похоже на deferred из twisted python'а, но местами может иметь куда большие возможности.
Это только основа, дальше надо развивать.
Что есть:
- Сам код. Небольшой. Но шаблон на шаблоне шаблоном погоняет. С небольшими артифактами.
- Очень поверхностное тестирование
Под это все надо сделать хорошее тестирование (с проверкой памати), выправить синтаксис и написать документация (а с английским у меня плохо).
Где мне искать единомышеников?
Пример кода:
using namespace sequence;
_void f1(); // асинхронно возращаем void
int f2(); // синхронно возращаем int
_int f3(int); // асинхронно возращаем int
void f4(int);
_void catch1(exception); // асинхронно обработываем исключение
void catch2(exception); // синхронно обрабоатываем исключение
...
header<void> h; // объявляем последовательность
h. // задаем последовательность
dtry_<void>(&f1).
try_<void>(&f2).
dtry_<int>(&f3).
try_<void>(&f4).
dcatch_(&catch1).
catch_(&catch2);
h.toResult(); // Запускаем ее