![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
trupca |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 22.7.2008 Репутация: нет Всего: нет |
у меня есть класс с проверенным временем интерфейсом, который возбраняется менять:
и передо мной стоит задача не добавляя ничего нового в public часть, кроме деструктора конечно (если он понадобится), переписать класс с использованием boost asio. сам же вопрос весьма наивный: как такое кодить? меня посетило уже о-о-очень много идей как это можно было бы сделать, но проверив их уже с целую дюжину, я пришёл к тому что я просто не понимаю как в таком случае работать с бустом. я конечно изучил примеры из документации по asio, не все разумеется (мб там это и есть), но не нашёл там ни одной подобной реализации чего либо. поэтому, если вы знаете где можно посмотреть как нужно работают с библиотекой в таком случае, дайте, пожалуйста, ссылку. |
|||
|
||||
ChipNDale |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 11.6.2010 Репутация: 1 Всего: 1 |
Постановка задачи... странная.
Сразу вопрос: почему нельзя менять интерфейс? Он используется где-то в других частях программы? В таком случае пишем настоящий интерфейс с чисто виртуальными функциями и в клиентском коде пользуемся объектами через него. boost::asio... А на чем уже было написано и почему потребовалось переписать? Класс foo - говорящее, блин, название, но выглядит это все как клиентское подключение. В общем случае сделать нужно следующее: 1. Создать объект io_service. 2. Создать сокет. Нюанс: в качестве аргумента сокет принимает io_service. 3. Вызвать волшебную функцию connect (синхронную или асинхронную). 4. Сказать io_service.run() Из этого напрашивается вывод, что сам сокет можно сделать полем класса, а вот io_service уже не нужно - клиентов может быть много. Все это я расписываю ради одной мысли: в конструктор просится дополнительный параметр io_service&. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |