вторник, 22 марта 2011 г.

async_basics2

Наконец-то! Свершилось! :)

Представлен новый проект "async_basics2", который реализует все тоже самое, что и проект "async_basics", но почти без шаблонов (т.е. совсем без шаблонов в публичной части).

Я давно планировал свести работу с Boost.Asio к традиционным вариантам с интерфейсами и реализацией (неудачные "echo_server2" и "echo_server3").

Теперь (проект "async_basics2") completion callback - это интерфейс (без шаблонов!), async_object - тоже простой интерфейс, не использующий шаблонов. Это дает больше возможностей по разделению кода и несомненно поможет многим, кто по той или иной причине не может использовать шаблоны в публичной части активного объекта.
Поддержка asio custom memory allocation никуда не исчезла - см. код "async_basics2" (main.cpp и класс do_something_handler). Гарантии asio для completion handler и возможность в completion handler "удерживать" сам активный объект тоже "на месте" (это тоже отражено в "async_basics2").

P.S. Вoзможно скорое появление аналогичного проекта "echo_server2".

Комментариев нет: