Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удаленный вызов. детали, реализация, архитектура, у темы новое название! 
:(
    Опции темы
boostcoder
Дата 18.12.2010, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  18.12.2010,  00:17 Найти цитируемый пост)
ну синтаксис операторов нужно будет подобрать потщательней..

помоему, нормально..
PM WWW   Вверх
mes
Дата 18.12.2010, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



с отправкой на данный момент в голове устаканилось.. 
оставляем пока этот вариант.. 
терь нужно поэксперементировать с приемкой и добиться симметричной свободы.. 



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 18.12.2010, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  18.12.2010,  00:08 Найти цитируемый пост)
которого будут возбуждать сигналы

 smile 

PM WWW   Вверх
mes
Дата 18.12.2010, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  17.12.2010,  23:24 Найти цитируемый пост)
 smile  

что есть то и грю smile именно эту концепцию и вычерчиваю smile
не зря же имя пакета поменял на импульс  smile

Добавлено через 1 минуту и 34 секунды
у нас наверно уже за 1000 ..пойду гляну .. smile

Добавлено через 2 минуты и 19 секунд
уже 1008.. знаменательную дату пропустил.. 

Это сообщение отредактировал(а) mes - 18.12.2010, 00:26


--------------------
PM MAIL WWW   Вверх
mes
Дата 18.12.2010, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



чего то никак картина с получением не обрисовывается :(


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 18.12.2010, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  18.12.2010,  01:55 Найти цитируемый пост)
чего то никак картина с получением не обрисовывается :( 

устройте выходной. утром лучше думается smile

Добавлено через 2 минуты и 2 секунды
Цитата(mes @  18.12.2010,  00:25 Найти цитируемый пост)
уже 1008.. знаменательную дату пропустил.. 

нужно попросить модераторов чтоб удалили нужное кол-во постов. благо, флуда хватает.

PM WWW   Вверх
mes
Дата 18.12.2010, 02:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  18.12.2010,  00:57 Найти цитируемый пост)
нужно попросить модераторов чтоб удалили нужное кол-во постов. благо, флуда хватает.

чего они Вам плохого сделали ?  smile легче новую тему завести.. 

 



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 18.12.2010, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  18.12.2010,  02:05 Найти цитируемый пост)
легче новую тему завести..

ну да. чего там..1000 постов - раз плюнуть.

PM WWW   Вверх
mes
Дата 18.12.2010, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



интересно, а как насчет такого синтаксиса :
Код

struct C
{
    void handle (impulse1 const& im)
   {
          DY_EXTRACT(im, s1, s2);

          std::cout << s1 << s2;
   }

    void handle (impulse2 const& im)
   {
          DY_EXTRACT(im, i);

          std::cout << i+1;
   }
};



--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 18.12.2010, 02:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  18.12.2010,  02:11 Найти цитируемый пост)
а как насчет такого синтаксиса

для чего? почему?
PM WWW   Вверх
mes
Дата 18.12.2010, 02:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(boostcoder @  18.12.2010,  01:19 Найти цитируемый пост)
для чего? почему? 


ну вот есть у вас impulse _im;
напишите как по Вашему  должна выглядить строчка его инвокинга  конкретному методу.. .

Добавлено через 32 секунды
чисто синтаксис.. без реализации..

Добавлено через 3 минуты и 40 секунд
Цитата(boostcoder @  18.12.2010,  00:57 Найти цитируемый пост)
нужно попросить модераторов чтоб удалили нужное кол-во постов. 

Цитата(boostcoder @  18.12.2010,  01:07 Найти цитируемый пост)
ну да. чего там..1000 постов - раз плюнуть

а.. имелось ввиду для ровного счета ? я думал Вы предлагали модераторам весь флуд убрать smile


Добавлено через 11 минут и 55 секунд
можно так :
Код

class C
{
  void mtd (int , int) {}
};

_impulse.invoke (C::mtd, c);


Добавлено через 13 минут и 44 секунды
тогда нужна будет карта, состоящая из пары<тип импульса, адрес метода>

Добавлено через 14 минут и 29 секунд
так как карта составляется пользователем, проблема перегруженных функций(каст) ложится на его плечи..



--------------------
PM MAIL WWW   Вверх
mes
Дата 18.12.2010, 02:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



в примере не хватает таблицы соответсвий и отсутствует симметрия с отправкой..

Добавлено через 3 минуты и 38 секунд
напрашивается такое :
Код

dy::dispather<C::table> _in(_obj);

_impulse =>> _in;


Добавлено через 4 минуты и 53 секунды
а отправка тогда будет выглядить так :
Код

_impulse =>> _out;


Добавлено через 7 минут и 13 секунд
симметрия вроде соблюдена.. 
и даже можно оправлять один импульс сразу в разные стороны :
в сеть, классу обработчику и логгеру :
Код

_impulse =>> _out =>> _in =>> _log;



--------------------
PM MAIL WWW   Вверх
mes
Дата 18.12.2010, 03:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



ну тут ладно..с инвокингом вроде разъяснилось.. и проблема вроде локализована..

нужны средства, чтоб составить карту соответствий
  типа импульса  к  адресу либо имени метода..

при классическом подходе много повторений..вначале указывается тип каждого метода, потом второй раз уже передается адрес..

Добавлено @ 03:11
добавим ограничение, что метод обязан принимать аргументы импульса по константной ссылке..
тогда мы можем генерить тип принимающего метода по данным импульса..

Добавлено @ 03:15
Код

// для списка типов импульсов
typedef mpl::list<..> impulses;

//и типа класса обработчика (C) нужно определить тип карты :
dy::table<C, impulses> _table 
// и инициализировать его адресами
= make_list (C::on_imp1, C::on_imp2, C::on_imp3)


получается не очень- красиво.. так как нет контроля совпадения импульса методу.. 

Это сообщение отредактировал(а) mes - 18.12.2010, 03:17


--------------------
PM MAIL WWW   Вверх
mes
Дата 18.12.2010, 03:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



мы можем попытаться делать не таблицей, а отдельно..
примерно так :
Код

struct C
{
  void on_imp1 ();
  void on_imp2 ();

  struct dy_on_imp1
  {
       dy::metod<imp1> _mtd;
       dy_on_imp1 () : _mtd(C::on_imp1)   {}
  };
};

структуру dy_on_imp можно задефайнить до
DY_PROXY(imp1, C, dy_on_imp1)

но все равно в конце нужен будет список этих структур.. или можно как то хитро запрепроцессорить ?

Добавлено через 2 минуты и 1 секунду
т.е.можно ли составить препроцессор, который все структуры "sub"-дефайна поместит в список?
тогда он (макрос) должен сделать два круга по параметрам..

Добавлено через 3 минуты и 56 секунд
ну на сегодня хватит.. 
еще раз повторю вопрос для раздумий : нужно легкое составление карты соответствий импульса к адресу/имени метода..






--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 18.12.2010, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(mes @  18.12.2010,  02:24 Найти цитируемый пост)
ну вот есть у вас impulse _im;
напишите как по Вашему  должна выглядить строчка его инвокинга  конкретному методу.. .
чисто синтаксис.. без реализации..


Цитата(mes @  18.12.2010,  02:24 Найти цитируемый пост)
_impulse.invoke (C::mtd, c);

может при помощи operator[] ?
Код

_impulse[class_type](class_type::method);


Цитата(mes @  18.12.2010,  02:24 Найти цитируемый пост)
тогда нужна будет карта, состоящая из пары<тип импульса, адрес метода>

ага.

Цитата(mes @  18.12.2010,  02:24 Найти цитируемый пост)
так как карта составляется пользователем, проблема перегруженных функций(каст) ложится на его плечи..

почему пользователем?
она разве не генерируемая?

Цитата(mes @  18.12.2010,  02:41 Найти цитируемый пост)
в примере не хватает таблицы соответсвий и отсутствует симметрия с отправкой..

Добавлено через 3 минуты и 38 секунд
напрашивается такое :
dy::dispather<C::table> _in(_obj);
_impulse =>> _in;


Добавлено через 4 минуты и 53 секунды
а отправка тогда будет выглядить так :
_impulse =>> _out;


Добавлено через 7 минут и 13 секунд
симметрия вроде соблюдена.. 
и даже можно оправлять один импульс сразу в разные стороны :
в сеть, классу обработчику и логгеру :
_impulse =>> _out =>> _in =>> _log;

может так?
Код

_in << _impulse;
_out << _impulse;

_in и _out, объекты одного типа?

я тут посмотрел на Ваши "мысли в слух", и представил, каково будут смотреться "=>>". может я что-то не правильно понял, но тут "operator<<" логичнее. разве нет?

Цитата(mes @  18.12.2010,  03:27 Найти цитируемый пост)
но все равно в конце нужен будет список этих структур.. или можно как то хитро запрепроцессорить ?
т.е.можно ли составить препроцессор, который все структуры "sub"-дефайна поместит в список?
тогда он (макрос) должен сделать два круга по параметрам..

можно.

минутку..
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0810 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.