| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Диспетчер сообщений |
| Автор: bel_nikita 12.11.2004, 19:51 |
| Может у кого есть готовый диспетчер сообщений с базовым классом? Динамический. Т.е. в некоторый момент времени нужно создавать до 1500 объектов и все должны обмениваться между собой сообщениями. Писать самому не то, что лень, а просто не хватит сил отладить его. Т.к. надо придумывать алгоритмы генерации уникальных ID объектов, критические секции и .... З.Ы.: я то написал, но никак не могу толково его отладить... |
| Автор: Mad 13.11.2004, 13:34 |
| bel_nikita Каких именно сообщений ? |
| Автор: bel_nikita 13.11.2004, 14:45 |
| Mad Своих Например, первый объект детектировал, что абонент поднял трубку и начал набирать номер, он должен дать сигнал другому объекту, который отвечает за детекцию номера. Этот второй, когда детектировал номер, должен разослать его по другим объектам и дать комманду объекту, отвечаещему, за сетевуху, чтобы он отослал эти данные(номер и время) на сервер и т.д.... Типа Boost/signal, Chain of Responsibility. Но что-то не пойму как-там все завязано.... |
| Автор: Mad 13.11.2004, 15:10 |
| bel_nikita Проблемма, по моему мнению, заключается в том, что все эти сообщения надо обрабатывать не скопом, а по видам У меня примерно такаяже задача недавно была. Решил так: Каждый вид сообщения выделил в отдельный диспетчер. Тогда отладка стала не такой гиморной. Например: Сообщение о поднятии трубки. Его, допустим, надо доставить тока обьектам детектирования номера. Вот и делаеш отдельный диспетчер, который понимает тока это сообщение. Каждый обьект слежения за положением трубки И так далее, скорей всего часть сообщений вообще вывалиться (получится что у них всегда тока один источник и тока один приемник, зачем же тогда диспетчер |
| Автор: bel_nikita 13.11.2004, 18:16 |
| Mad не совсем то. а если у меня 1000 типов собщений? тогда получается создавать тысячи диспетчеров? Диспетчер мне кажется должен быть один для всех. Мне надо каркас, чтобы в любой момент я мог добавить или удалить класс при проектировании софта. А можно пример какой-нить З.Ы.: Я уже написал, что-то подобное и похожее на диспетчер, но вот еще хочу класс сообщения сделать более менее нормальный, чтобы можно было данные прикреплять/откреплять при посылке и получении Как-нить выложу на критику и поиск недочетов |
| Автор: Mad 13.11.2004, 18:56 | ||||
| bel_nikita Это конечно не готовый код, а только чтоб проэлюстрировать мысль.
теперь пример реализации
Самое удобное в такой схеме, что потом (если конечно реализовать глобальный пул диспетчеров динамическим), ты сможеш добавлять новые сообщения (и соответственно диспетчеров под них) уже в готовый проект (хоть в виде дллекок) не миняя имеющийся код |