![]() |
|
Модераторы: Daevaorn Страницы: (89) « Первая ... 40 41 [42] 43 44 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]()
|
|
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
первое - основная проблема у меня в том, что мне приходится адаптировать ваше видение принципов, с моим. тут два варианта: 1)переписать discoly полностью в соответствии с вашим видением, 2)"уговорить" Вас изменить ваше видение, на мое но я пойду первым способом. второе - сейчас, я из всего что есть, создам локальный проект так как я понял. и закомичу его на SVN. будем от этого опираться. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
облегчил Вам задачу и закоммител уже временный проект..
есть одно но... у меня нет под рукой нормального компилятора и не могу проверить на правильность..делал на ощупь.. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
приятно слышать Это сообщение отредактировал(а) mes - 25.11.2010, 17:34 |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
сейчас поизучаю Ваш код, и задам кучу вопросов..
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
1. почему у client_side::client такой набор методов? т.е. предполагается что клиент и сервер имеют только такой функционал и набор команд? если нет - то как расширять набор команд, если они в классе клиента? не писать же клиента для каждого проекта.
2. в client_side::client есть такое:
это, как я понимаю, должен быть список типов поддерживаемых(обрабатываемых) команд? 3. функция discoly::reg<> имеет такое тело:
хотя, по сути, тут должен быть типа boost::mpl::for_each<> который будет работать со списком типов(пункт 2)? |
||||
|
|||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
общий ответ - наследовать и добавлять нужные определения.. но для хороший расширяемости, нужно делать клиент сборный из составляющих (из агентов) но это позже.. и к самой дисколи отношения не имеет.. Добавлено через 3 минуты и 15 секунд
да, typedef mpl::vector<M1,M2,M3> discoly_accepted_msglist; Добавлено через 4 минуты и 45 секунд по идеи один объект может содержать несколько таких списков, для регистрации в разных соедениниях.. Добавлено через 5 минут но это тоже позже.. Добавлено через 5 минут и 47 секунд
да.. оставил Вам для доработки (мне лень) Добавлено через 11 минут и 30 секунд чтоб лучше понять как работает статический полиморфизм советую ознакомиться с реализацией паттерна CRTP.. |
||||
|
|||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
какбы читал, использовал..сейчас еще раз полистаю.. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
тут есть один нюанс.. если регистрация происходит в конструкторе, то добавлять команды можно, а перенаправлять старые уже не получится.. но эта проблема как раз решается разбиением клиента на агенты.. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
еще один момент, что регистрироваться агенты должны не обязательно в том соединение, в которое отправляют сообщения..
вот тут как раз надо подумать.. вроде подходит измененная ваша идея с получением интерфейсов.. Добавлено через 2 минуты и 45 секунд например есть два агента.. они хотят говорить с другом.. но они имеют одинаковый набор команд.. если поставить их на одно соединение, то каждый будет получать также и свои команды.. тут надо разгружать через сервер, или делать многоканальность.. Добавлено через 3 минуты и 32 секунды вот о втором варианте можно как раз и подумать.. |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
вот решение на основе уже ранее используемоего "трюка" по перекрестному биндингу сендера и ресивера.. http://liveworkspace.org/code/d440a552e507...ca7dbc5de9ffe21 терь надо это все как-то красиво разрулить... |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
mes, я сейчас тупо перечитываю Ваш код чтоб избавится от ассоциаций
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
от тех, каким путем я шел до сих пор. и какой я видел реализацию/результат.. ...даже не знаю как объяснить...мешанина в голове. сейчас я просто изучаю Ваш код..экспериментирую...с отдельными частями.. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |