[LCS]深入了解SipSnoop—委托篇

l         SipSnoop中的三个委托:
一、委托DisconnectListener
       public delegate void DisconnectListener(string reason);
       声明一个委托类型DisconnectListener,这个委托类型的描述参数是string类型reason
二、委托StateChangeListener
       public delegate void StateChangeListener(EventArgs args);
       声明一个委托类型StateChangeListener,这个委托类型的描述参数是EventArgs类型的args
三、委托ConnectionDroppedEventHandler

        声明事件委托:public delegate void ConnectionDroppedEventHandler(object sender, ConnectionDroppedEventArgs e);        ConnectionDroppedEventHandler位于Sip命名空间内,当一个SereverAgent对象从Live Communications Server断开时该委托句柄ServerAgent.ConnectionDropped事件触发。

 
l         SipSnoop中委托的几个要素:
1          在委托StateChangeListener中:
1.1         激发事件的对象:sessionManager
1.2         处理对象事件的对象:Form1
1.3         委托监视:sessionManager.StateChangeListeners += new SessionManager.StateChangeListener(this.StateChangeListener);
1.4         场景描述: Form1对象监视sessionManager,如果sessionManager对象发现StateChangeListeners的改变时,执行StateChangeListener方法。其间,判断StateChangeListeners是否改变是通过RequestHandler的得到的(关于RequestHandler可参考[LCS]深入了解SipSnoop—事件篇 )。
2          在委托DisconnectListener中:
2.1         激发事件的对象:sessionManager
2.2         处理事件的对象:Form1
2.3         委托监视:sessionManager.DisconnectListeners += new SessionManager.DisconnectListener(this.DisconnectListener);
2.4         场景描述:Form1对象监视sessionManager,如果sessionManager对象发现DisconnectListeners改变时,执行DisconnectListener方法。其间,判断DisconnectListeners是否改变是通过ConnectionDroppedHandler得到的。
3          在委托ConnectionDroppedEventHandler中:
3.1         激发事件的对象:serverAgent
3.2         处理对象事件的对象:SessionManager
3.3         委托监视:serverAgent.ConnectionDropped += new ConnectionDroppedEventHandler(this.ConnectionDroppedHandler);
3.4         场景描述:SessionManager对象监视Serveragnet,如果Serveragent因某种原因与LCS连接断开时,执行SessionManagerConnectionDroppedHandler方法。



Created by MyXQ
2005-6-10
原文地址:https://www.cnblogs.com/MyXQ/p/172139.html