Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.016 c
8-28155
F8nikita
2002-08-12 01:01
2002.12.09
ПОМОГИТЕ !!!!


14-28200
KIR
2002-11-20 00:57
2002.12.09
Народ, где можно поискать инфу по FIBPlus?


4-28351
Stenkz
2002-10-22 06:47
2002.12.09
Вопрос - Kак преобразовать String в Pchar и обратно???


1-28015
First_May
2002-11-29 09:26
2002.12.09
Exports...


1-27978
jen_bond
2002-11-27 09:31
2002.12.09
индетификатор графического объекта




   Наверх