Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.09;
Скачать: CL | DM;

Вниз

Что лучше использовать ConnectionPoint или Callback Interfaces   Найти похожие ветки 

 
----   (2002-11-28 18:22) [0]



 
asmith   (2002-11-28 19:24) [1]

Можно руководствоваться такими принципами:
1. IConnectionPoint строятся на основе IDispatch и поэтому требуют больших накладных расходов при работе, если клиент обращается к серверу, нужны такие вызовы:
a) Server.QueryInterface (IConnectionPointContainer)
b) IConnectionPointContainer.FindConnectionPoint (CP)
c) IConnectionPoint.Advise (IUnknown),
последний вызов требует еще один QueryInterface от сервера клиенту. Отсоединение ивента снова потребует 3 вызова:
a) Server.QueryInterface (IConnectionPointContainer)
b) IConnectionPointContainer.FindConnectionPoint (CP)
c) IConnectionPoint.Unadvise (Cookie)
т.е. акт обмена м-ду сервером и клиентом требует 7 прямых вызовов. Для in-process сервера или локального out-of-process это не страшно, но плохо для удаленного out-of-process.
2. Connection points устроены так, что приконнектившихся клиентов трудно различить. Трудно или даже невозможно их фильтровать для выполнения разных действий для них.


 
Fantasist ©   (2002-11-29 03:23) [2]


> IConnectionPoint строятся на основе IDispatch


При чем тут IDispatch? Если описание интерфейсов известны, методы IDispatch использовать вовсе не обязательно. Из-за того, что он часто используется - это не является обязаловкой.


> т.е. акт обмена м-ду сервером и клиентом требует 7 прямых
> вызовов. Для in-process сервера или локального out-of-process
> это не страшно, но плохо для удаленного out-of-process.


Ну это не акт обмена. Соеденение, положим, 4 вызова. Если клиент не дурак, то он сохранит указатели на интерфейсы, и не будет второй раз у сервера их запрашивать, так что для рассоеденения достадочно одного вызова. Потом, соедениться и отсоедениться надо, чаще всего, только один раз. Чтобы "послать событие", как раз нужен только один вызов.



> 2. Connection points устроены так, что приконнектившихся
> клиентов трудно различить. Трудно или даже невозможно их
> фильтровать для выполнения разных действий для них.

Енто верно. С другой стороны - это стандарт, значит каждый кому ты покажешь IDL сможет к тебе присоедениться. С callback интерфейсами придется еще и объяснять всем как это callback интерфейс передать.

P.S. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/cmi_c_5h2q.asp



Страницы: 1 вся ветка

Текущий архив: 2002.12.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
14-28278
deep.1
2002-11-18 00:49
2002.12.09
Люди кто юзал SAPI?


14-28228
Suprime
2002-11-14 21:34
2002.12.09
Нужно обойти


1-27974
George3
2002-11-29 15:59
2002.12.09
DBGrid


14-28245
Nico1a
2002-11-18 14:02
2002.12.09
ОГРОМНАЯ просьба ко всем, кто кроме Дельфи разбирается в химии !!


1-27983
Ag2002
2002-11-29 16:04
2002.12.09
списки