| olegenty | 
| Отправлено: 18.08.2005, 13:51 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 вопрос: кто чем пользуется, организуя "минимальную" связь модулей? интересуют ваши за и против (и какими ещё методами пользуетесь)?
 | 
  | 
| Vlad | 
| Отправлено: 18.08.2005, 16:05 | 
 
 
 | 
  
Машинист паровоза 
 
Группа: Участник 
Сообщений: 231 
  
  
 | 
 в каждом конкретном случае — по разному. Однозначно, трудно сказать. 
Нужно подумать, проанализировать.    | 
  | 
| olegenty | 
| Отправлено: 18.08.2005, 16:18 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 вот я собственно за анализом обратился  
 | 
  | 
| Gedeon | 
| Отправлено: 18.08.2005, 18:10 | 
 
 
 | 
 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 1742 
  
  
 | 
 Да и мне интерсно было бы, в основном делаю Send/Post, колбэки применял только раз и то для эксперимента.
 | 
  | 
| olegenty | 
| Отправлено: 19.08.2005, 17:23 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 вот я тоже send/post, но когда работаешь в одном потоке, они встают в очередь, гады, и поэтому приходится пользоваться callback — чтобы вызвать там, где надо, и реакция была мгновенной.
 | 
  | 
| Георгий | 
| Отправлено: 20.08.2005, 16:29 | 
 
 
 | 
  
Почетный железнодорожник 
 
Группа: Модератор 
Сообщений: 874 
  
  
 | 
 а я наоборот callback люблю. одно время использовал абстрактные интерфейсы, а теперь boost::bind. 
если же модули оп своей архитектуре работают параллельно, то те же callback за которыми скрывается либо функция сериализации, либо проблемно-ориентированная очередь.
  
у callback, как их не оформляй — хоть вызов функци по указателю, хоть метода по абстрактному интерфейсу, хоть boost::bind очень высокий КПД. и проще программирование — не надо писать всякие while( есть сообщение) или if (есть сообщение), что упрощает дальнейшую поддержку кода  | 
  | 
| olegenty | 
| Отправлено: 22.08.2005, 07:50 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 угу, вот я из-за поддержки в основном. пришлось как-то на днях попотеть с отладкой: забыл про собственную мессагу, и никак понять не мог, ну ОТКУДА, мать его, эффект. а с Callback всё просто и понятно.
 | 
  | 
| Sergey Boyko | 
| Отправлено: 22.09.2005, 14:29 | 
 
 
 | 
 
  
Ученик-кочегар 
 
Группа: Участник 
Сообщений: 4 
  
  
 | 
 "PostMessage" использую в основном для асинхронной связи между потоками (при отображении данных и т.п.). 
А так — "в бою callback надежней". 
Особенно, если не забывать, что использование send/post привязывает ваш код к определенной платформе.
  
Отредактировано Sergey Boyko — 22/09/2005, 14:30
 | 
  | 
| olegenty | 
| Отправлено: 22.09.2005, 14:37 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 ну я уже тоже определился — перепишу (благо не очень много) всё на импользование того класса CSDICallback, что выложил тут и на borland.xportal.ru. вроде достаточно гибко получается, и сопровождать одно удовольствие. главное — функции не забывать регистрировать.
 | 
  | 
| RVN | 
   Отправлено: 21.10.2005, 07:54 | 
 
 
 | 
  
Ученик-кочегар 
 
Группа: Участник 
Сообщений: 17 
  
  
 | 
 Прошу прощения, что вмешиваюсь в разговор мастеров, но тема для меня интересная. 
Работаю с базой PARADOX и BDE. Использую BCB6. 
Основное приложение (не мое) использует DbiRegisterCallBack. 
Мое приложение на локальной машине с базой работает нормально. 
Т.е. если я своим приложением изменил данные, основная программа их видит и обновляет отображаемую информацию.И наоборот. 
При работе по локальной сети все не так. 
Изменения, сделанные моей программой, обновляются через пень-колоду. 
Спрашивал на форумах описание DbiRegisterCallBack, просмотров много,но ответов нет. 
По моему, класс CSDICallback поможет решить мою проблемму. 
Большая просьба: дайте ссылки, где можно черпнуть информацию по этой теме.  | 
  | 
| olegenty | 
| Отправлено: 24.10.2005, 10:56 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 подожди пару дней — выложу последний вариант. причёсываю как раз, в простенькие классы организоваываю. а то, по прошествии времени, неудобно разбирать first, second и пр.
 | 
  | 
| olegenty | 
| Отправлено: 19.12.2005, 16:48 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 вот теперь думаю, выкладывать, или нет? 
разбил всё на пакеты, классы превратил в шаблоны, чтобы в будущем можно было всего лишь делать специализацию... для меня всё это стало удобнее, а вот для не меня — придётся очень долго разбираться.
  
выкладывать?
 | 
  | 
| Георгий | 
| Отправлено: 19.12.2005, 22:08 | 
 
 
 | 
  
Почетный железнодорожник 
 
Группа: Модератор 
Сообщений: 874 
  
  
 | 
 а документация есть?    | 
  | 
| Gedeon | 
| Отправлено: 20.12.2005, 09:10 | 
 
 
 | 
 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 1742 
  
  
 | 
| QUOTE (Георгий @ 19/12/2005, 22:08) |  а документация есть?   |  
  
Зря, Георгий, смеетесь, куча проделанной работы, без документации, как правило, ничего не стоит.
 | 
  | 
| avc* | 
| Отправлено: 20.12.2005, 09:51 | 
 
 
 | 
  
Не зарегистрирован
 
 
 
 
 
  
  
 | 
 | QUOTE  |   
куча проделанной работы, без документации, как правило, ничего не стоит 
 |  
  
Это конечно так, но как редко доходит до нормальной документации. Обычно работа останавливается на этапе "заметки на полях".    | 
  | 
| Gedeon | 
| Отправлено: 20.12.2005, 09:54 | 
 
 
 | 
 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 1742 
  
  
 | 
| QUOTE (avc* @ 20/12/2005, 09:51) |  Это конечно так, но как редко доходит до нормальной документации. Обычно работа останавливается на этапе "заметки на полях".   |  
  
А с этим-то я как раз и не спорю, сам такой же, раз в три месяца посещает желание, привести все в порядок, хватает, обычно, на день (1 раз на 2, вот тогда и был написан хэлп к библиотеке, которой до сих пор пользуюсь не только я), все остальное используется только мной и то не уверенно.
 | 
  | 
| olegenty | 
| Отправлено: 20.12.2005, 12:36 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 где-то есть, где-то нет... 
но критики хочется, так что, кто разберётся — критикуйте...
  
ставить пакеты в том порядке, что они приложены...
  
пакет 1 (OUtils), мелкий, ещё развивающийся, свои тулзы туда пока не слил, но он всё же используется в других пакетах.
  
  
 | 
  | 
| olegenty | 
| Отправлено: 20.12.2005, 12:38 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 Пакет 2 (OAdapterUtils) — шаблоны вспомогательных классов для использования в шаблонах адаптеров.
 
  
  
 | 
  | 
| olegenty | 
| Отправлено: 20.12.2005, 12:40 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 Пакет 3 (OAdapter) — шаблон адаптера
 
  
  
 | 
  | 
| olegenty | 
| Отправлено: 20.12.2005, 12:43 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 Пакет 4 (OPlugin) — шаблон плагина на базе адаптера (эти плагины у меня находятся в DLL, а с главной формой и между собой общаются посредством адаптера. единственное исключение — событие завершения инициализации, посылаемое главной формой плагину, и событие закрытия плагина, посылаемое плагином главной форме).
  
  
 | 
  | 
| olegenty | 
| Отправлено: 20.12.2005, 14:22 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 Смотрю кто-то качнул только один пакет (последний). А качать надо все. И разбирать в порядке, в котором я их опубликовал.
 | 
  | 
| olegenty | 
| Отправлено: 20.12.2005, 18:35 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 да, и я вот только вчера вышел на работу из отпуска, который просидел с сыном. это я к тому, что там есть ошибки, вот уже четвёртый час не могу один AV отловить...
 | 
  | 
| olegenty | 
| Отправлено: 21.12.2005, 16:26 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 AV отловил — CTable надо порождать от vector, тогда наступает счастье.
 | 
  | 
| olegenty | 
| Отправлено: 17.01.2006, 07:54 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 версия, в которой не наблюдается никаких ошибок, ушедшая в опытную эксплуатацию (в составе реального проекта). Пакеты ставить в порядке: 
1. OUtils 
2. OAdapterUtils 
3. OAdapter 
3.1 (для работы с ADO, а вообще — пример потомка, для установки не обязателен) OADOAdapter 
4. OPlugin 
4.1 (для работы с ADO, а вообще — пример потомка, для установки не обязателен, требует OADOAdapter) OADOPlugin
 
 
  
  
 | 
  | 
| Gedeon | 
| Отправлено: 17.01.2006, 09:48 | 
 
 
 | 
 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 1742 
  
  
 | 
 2olegenty Вы уж озаботьтесь написанием хоть минимальной документации, или на худой конец демо проектом, тогда получите и тестирование и критику, в том числе и от меня.   . 
Успехов.
 | 
  | 
| olegenty | 
| Отправлено: 17.01.2006, 12:38 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 ок, следующее сообщение будет с примером использования.
 | 
  |