Я очень долго не решался приобрести второй том серии "Программирование сетевых приложений на C++", и как оказалось ошибался...
Прочитав десять раз от корки и до корки первый том я был уверен, что вся прелесть этого промежуточного слоя в ОС-независимых повседневных, для сетевых программистов, классов (очереди, создание потоков, процессов, управление демультиплексированием). Но оказывается мудрость создателя АСЕ - Д. Шмидта на этом не исчерпалась, поэтому он решил реализовать все то, что раньше многократно делалось другими разработчиками.
Каждый день миллионы программистов "вытачивали" детали для велосипедов, ломали голову над чертежами этих двухколесных монстров.
"Почему бы не создать Базу однотипных, проверенных временем и опытом деталей, что бы можно было создавать велосипеды не занимаясь рутиной?" - спросил он себя и открыл миру каркасы на любой вкус.
Одним оператором new вы можете создать объект, который сам выбрет стратегию демультиплексирования в зависимости от ОС, для которой компилировалась АСЕ (select, poll, WaitForMultipleObject...) и будет обрабатывать события пользуясь вашими hook-методами, вы можете создать объект, который сам возьмет на себя проблемы организации многопоточной обработки, работы с очередью, лишь потребовав от вас функцию обработки задачи, можете создавать объект для работы с асинхронным вводом/выводом и АСЕ сама разберется когда работать с Completiton Ports, а если подобной опции у ОС нету, то предоставит вариант ее эмуляции...
Вобщем такой вкусной начинки я никак не ожидал. Осталось только разложить кирпичики и получить дом.