![]() |
|
Модераторы: Daevaorn Страницы: (89) « Первая ... 34 35 [36] 37 38 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]()
|
|
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
представьте ситуацию, когда у клиента и сервера есть некоторый набор действий..т.е. клиент послал серверу какую-то команду, и тут, получает от сервера дисконнект, хотя ожидает получить ответ. как быть? нет, не к дисколи. это именно сервис предоставляемый net_client`ом и net_server`ом. он может быть включен/выключен/приостановлен/уделен/создан_заново. но Вы наверное не смотрели еще исходники, и не вникли в реализацию сервисов? |
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
теперь попробуем набросать чат для двух клиентов gui_client и bot_client
для начала представим взаимодействие окошка с клиентом :
Добавлено через 1 минуту и 34 секунды при дисконнекте возбуждать событие (например reset) и передовать его агентам.. Добавлено через 2 минуты и 42 секунды
еще нет.. для начала я хочу почувствовать по какому пути пошел бы я.. чем сейчас и занимаюсь Это сообщение отредактировал(а) mes - 23.11.2010, 03:31 |
||||
|
|||||
| boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
нет...это понятно. но серверу что делать, если агенты все еще ждут от него некоторых данных/действий ?
ага. понял. |
||||
|
|||||
| mes |
|
||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
тогда класс клиент состоит из трех агентов
Добавлено @ 03:40
сбросить состояние и ждать нового подключения клиента.. Добавлено @ 03:44 различное поведение между клиентами обусловнено различной обработкой результата.. т.е. если предполагаются более одного типа клиента, то result должен быть полиморфным.. Добавлено @ 03:49
Это сообщение отредактировал(а) mes - 23.11.2010, 03:50 |
||||||
|
|||||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
| mes |
|
||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
Добавлено @ 04:00 result все таки нехорошо вытягивать наверх.. так как его интерфейс важен для junction значит нужен еще eventer который будет сообщать об изменении.. в итого получилось три уровня : 1. набор путешествующих структур (передача данных) 2. набор агентов состояния, представляющих клиент 3. и реакция пользователя.. для gui_clienta эти три уровня выливаются в 1. client 2. client_evt 3. form Добавлено @ 04:02 П.С полиморфность eventera (ту что мы приписывали resultу) может быть в принципе статической.. т.е. в разных приложениях подставлять разную реализацию.. Добавлено @ 04:03 теперь главный вопрос, что мне требуется от дисколи ? Это сообщение отредактировал(а) mes - 23.11.2010, 04:04 |
||||||
|
|||||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
вот и мне интересно, т.к. не видел вопроса |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
например для простейшего приложения, мне не нужны агенты...
Добавлено через 5 минут и 9 секунд итого мне нужно.. чтоб отправленная структура была доставлена нужному методу зарегистрированного объекта.. хотелось бы чтоб регистрация была шаблоная и основывалась на списке типов обрабатываемых событий... Это сообщение отредактировал(а) mes - 23.11.2010, 04:13 |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
каждый из этих методов должен вызываться противоположной стороной?
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
допустим у нас есть struct ident_ok и struct ident_err.. и обработчик принимающий их..
мы можем конечно зарезервировать имя и перегрузить в обработчике методы для обработки этих структур..нуа при регистрации указать какие типы поддерживаются.. но не хотелось бы такой жесткой связи.. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
к примеру on_init() и on_start() не могут вызываться противоположной стороной. это не в их юрисдикции.
|
|||
|
||||
| mes |
|
||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
кем будет вызываться не важно. зависит от "среза" он может быть замкнут сам на себя.. Добавлено через 2 минуты и 35 секунд
естественно... там три "разных типа" методов ..
|
||||||
|
|||||||
| boostcoder |
|
||||||||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
в общем, в дисколи это реализуется так:
1. пишем метаправило:
далее..дисколиген из него сгенерирует код, к примеру в файл bot.hpp. 2. Вам нужно в своем коде сделать следующее:
реализация методов за вами. 3. нужно добавить этот класс в список реализаций:
4. передать этот тип в клиент или сервер:
тогда сервер сможет вызывать ваши методы так:
все. Это сообщение отредактировал(а) boostcoder - 23.11.2010, 04:34 |
||||||||||
|
|||||||||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
можно сделать proxy класс который будет описывать отношение сообщения к методу обработйчику : http://liveworkspace.org/code/d12a9c8578db...ca5c7e65a093805 Добавлено через 4 минуты и 21 секунду
с чего это дисколиген позарился на моего бота ? не его это дело.. он должен организовать вызов только тех методов что находятся в его юриспреденции и больше ничего не трогать .. |
||||
|
|||||
| 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. |