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

Поиск:

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


pattern`щик
****


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

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



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


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


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

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



Цитата(boostcoder @  18.12.2010,  07:30 Найти цитируемый пост)
почему пользователем?
она разве не генерируемая?

ну имена методов по идеи знает только пользователь.. можно конечно чтоб протокол их определял, но не желательно..
а о том как будет составлять пользователь генератором или вручную речь пока не шла...
точнее сказать сейчас и ищем способ, как позволить пользователю легко составить карту ассоциаций..

Добавлено @ 12:12
Цитата(boostcoder @  18.12.2010,  07:30 Найти цитируемый пост)
_in и _out, объекты одного типа?

нет..

Добавлено @ 12:14
Цитата(boostcoder @  18.12.2010,  07:30 Найти цитируемый пост)
может так?
Код

_in << _impulse;
_out << _impulse;
 

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

Добавлено @ 12:17
какой из операторов сейчас не суть важно.. главное что уставлено как должна быть связь..

Добавлено @ 12:18
Цитата(boostcoder @  18.12.2010,  07:30 Найти цитируемый пост)
разве нет?


Цитата(boostcoder @  18.12.2010,  07:30 Найти цитируемый пост)
я тут посмотрел на Ваши "мысли в слух", и представил, каково будут смотреться "=>>". может я что-то не правильно понял, но тут "operator<<" логичнее. разве нет?

да"=" там лишнее, просто эта елочка, так больше похожа на стрелку..

Добавлено через 12 минут и 31 секунду
Цитата(boostcoder @  18.12.2010,  08:26 Найти цитируемый пост)
ем мы сейчас занимаемся? потерялся я 

Цитата(mes @  18.12.2010,  02:27 Найти цитируемый пост)
нужно легкое составление карты соответствий импульса к адресу/имени метода..

по идеи можно так
Код

auto table = dy::make_clstable<C>
(
   dy::method<impulse1>(&C::on_impulse1) 
,  dy::method<impulse2>(&C::on_impulse2)
);

но не хотелось бы auto.. да и запись не наглядная.. 





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


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


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


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

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



можно так :
Код

typedef dy::clstable<C, mpl::list<impulse1, impulse2, impulse3 > > C_table;

C_table _table;

_table
  .on<impulse1>() = &C::on_impulse1;
  .on<impulse2>() = &C::on_impulse2;
  .on<impulse3>() = &C::on_impulse3;


Добавлено @ 12:32
тогда шаблон карты можетбыть на стороне протокола.. и пользовательская часть будет выглядить так :
Код

auth_table<auth_agent> _auth_table;

auth_table
 .on<user>() = &C::on_user;
 .on<quit>() = &C::on_quit;


Добавлено @ 12:35
тогда мы можем указать поле хранения.. 
например boost::function или boost::signal

Код

auth_table<auth_agent, std::function> _auth_table;
auth_table
 .on<user>() = &C::on_user;
 .on<quit>()  = bind(&C::on_quit, _1, _2);



 

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


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


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


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

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



итого нам нужны две таблицы 
 objtable, которая берет сигнатуру переданную импульсу,..
 clstable, которая добавляет лишний параметр That.. 

генерация таблицы должна происходить из mpl набора импульсов, 
путем приватного линейного наследования враппера типизированного элементом последовательности..
враппер может быть тоже параметром шаблона таблицы.. 

таблица  должна иметь шаблонный метод on позволяющий доступ к врапперу..

Добавлено через 3 минуты и 50 секунд
пример подобной таблицы уже был, только там у него было другое назначение.. 



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


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


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

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



вот условный (грязный) набросок :
Код

template <typename C, typename Im, template <typename, typename> class Apl >
struct item 
{
  typedef Apl<C, typename Im::invoker_t>::type  type;
  type value;
};

template <typename C, typename Seq, template <typename, typename> class Apl>
struct clstable : item<C, im1, Apl>, item<C, im2, Apl>, item<C, im3, Apl>
{
   template <typename Im>
   typename item<Im>::type& on() { return item<Im>::value; }
};

теперь нужно это автоматизировать.. 
Apl это класс превращающий цепочку аргументов импульса в указатель на метод.. 
C - это класс реализация
im1,2,3 - типы импульсов составляющие Seq..

все сейчас убегаю..скорей всего то что написал опять не понятно.. 


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


pattern`щик
****


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

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



я вот одно хочу уточнить: зачем нам думать об удобности посылки импульсов, если импульсы посылаются при помощи интерфейсов?
что-то не въезжаю..

Добавлено через 50 секунд

Цитата(mes @  18.12.2010,  16:28 Найти цитируемый пост)
все сейчас убегаю.

ок

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


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


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

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



Цитата(boostcoder @  18.12.2010,  15:29 Найти цитируемый пост)
 если импульсы посылаются при помощи интерфейсов?

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


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


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


pattern`щик
****


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

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



Цитата(mes @  18.12.2010,  16:30 Найти цитируемый пост)
во первых не посылаются

возбуждаются? испускаются?

Цитата(mes @  18.12.2010,  16:30 Найти цитируемый пост)
во вторых даже если посылались то куда ?

при получении интерфейса, его можно получать уже ориентированным на локальные и/или реализации.

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

это понятно.

Добавлено через 7 минут и 56 секунд
Цитата(mes @  18.12.2010,  16:30 Найти цитируемый пост)
сейчас нас интересует только таблица, все остальное не важно..

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


pattern`щик
****


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

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



Цитата(mes @  18.12.2010,  02:24 Найти цитируемый пост)
я думал Вы предлагали модераторам весь флуд убрать

кстати, это тоже полезное занятие! двойную пользу оно приносит, если такое занятие применяется в качестве наказания за неадекватность модератора! ...идею записал.. smile 

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


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


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

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



Цитата(boostcoder @  18.12.2010,  15:33 Найти цитируемый пост)
возбуждаются? испускаются?

имелось в виду не интерфейсами ... smile


Цитата(boostcoder @  18.12.2010,  15:33 Найти цитируемый пост)
при получении интерфейса, его можно получать уже ориентированным на локальные и/или реализации.

интерфейсы будут "генерируемые" на основе мпл-колекции импульсов.. 
пользователю будет свобода самому решать что надо делать или воспользоваться стандартными...

Добавлено @ 20:48
Цитата(boostcoder @  18.12.2010,  15:33 Найти цитируемый пост)
я просто хотел уяснить момент с импульсами. 

есть объекты, но не классические у которых вызывается метод, а распределенные, которые возбуждаются импульсом.. 
т.е. classic_object.user ("..","..")  == dy_object << user ("..","..");
интерфейс ди объекта генерируется на основе mpl последовательности типов.. 
реализация же определяется пользователем, но есть предопределенные стандартные классы объектов.. 
ди_объект создается на стороне пользователя, на основе данные переданных пользователем, если такие требуется.. 



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


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


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


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

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



вот еще один примерчик, для понимания что есть "таблица" и для чего она нужна.. http://liveworkspace.org/code/25b2a50eaacb...5a0a44e045c3858

при сетевом взаимодействии, вместо вызовы, те что сейчас в main() ,
 будут вызываться в switcher`е в зависимости от ид
 и передавать аргументы хранимые в импульсе..

Добавлено @ 23:36
P.S детали кроме таблицы приведены только для лучшего представления.. 
так что на них не обращать внимание.. 



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


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


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


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

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



затемплатил таблицу : http://liveworkspace.org/code/5c2b82cbf50e...e79ef079cd07b0f



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


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


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

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



вот еще чуть чуть подправил : http://liveworkspace.org/code/b872d4e0c8b9...90c1d05bc98d688
добавил прообраз инвокера..

Добавлено @ 00:15
вот следующий шаг : http://liveworkspace.org/code/413200a6ec27...9fa8c424c316c2d
 косвенный вызов метода локального объекта, посредством импульса..

Добавлено @ 00:18
конечный вид использования:
Код

   cls _obj;
   dy::object<cls> _out(_obj);
   
   _out << cls::im1(2,4);
   _out << cls::im2(2,4);


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


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


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


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


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

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



boostcoder, если будет время, нужны две структуры (с придуманными именами)
одна превращает аргументы функции в mpl_list нормализовав (убрав все константности и ссылки) аргументы
другая - наоборот добавляет const_ref для каждого аргумента.. 



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


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


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

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



вот неполный пример (без диспатчеризации импульса обработчику) удаленного общения : http://liveworkspace.org/code/c76453b89e92...1dfeccde6edd23c
подправлено

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


--------------------
PM MAIL 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.0864 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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