Author: rco
Date: 2010-05-02 14:55:26 +0200 (Sun, 02 May 2010)
New Revision: 1886

Modified:
   trunk/core/AmSession.cpp
   trunk/core/AmSession.h
   trunk/core/AmSessionEventHandler.cpp
   trunk/core/AmSessionEventHandler.h
   trunk/core/AmSipEvent.h
   trunk/core/plug-in/session_timer/SessionTimer.cpp
   trunk/core/plug-in/session_timer/SessionTimer.h
Log:
- removed onSipEvent (not used anywhere...)
- simplified the SIP event handling code in AmSession.


Modified: trunk/core/AmSession.cpp
===================================================================
--- trunk/core/AmSession.cpp    2010-05-02 11:07:09 UTC (rev 1885)
+++ trunk/core/AmSession.cpp    2010-05-02 12:55:26 UTC (rev 1886)
@@ -629,9 +629,8 @@
   }
 
   AmSipEvent* sip_ev = dynamic_cast<AmSipEvent*>(ev);
-  if(sip_ev){  
-    DBG("Session received SIP Event\n");
-    onSipEvent(sip_ev);
+  if(sip_ev){
+    (*sip_ev)(&dlg);
     return;
   }
 
@@ -664,32 +663,6 @@
 #endif
 }
 
-
-void AmSession::onSipEvent(AmSipEvent* sip_ev)
-{
-  CALL_EVENT_H(onSipEvent,sip_ev);
-
-  AmSipRequestEvent* req_ev = dynamic_cast<AmSipRequestEvent*>(sip_ev);
-  if(req_ev) {
-    dlg.updateStatus(req_ev->req);
-    return;
-  }
-
-  AmSipReplyEvent* reply_ev = dynamic_cast<AmSipReplyEvent*>(sip_ev);
-  if(reply_ev) {
-    dlg.updateStatus(reply_ev->reply);
-    return;
-  }
-
-  AmSipTimeoutEvent* to_ev = dynamic_cast<AmSipTimeoutEvent*>(sip_ev);
-  if(to_ev) {
-    dlg.uasTimeout(to_ev);
-    return;
-  }
-
-  ERROR("Unknown SIP Event");
-}
-
 void AmSession::onSipRequest(const AmSipRequest& req)
 {
   CALL_EVENT_H(onSipRequest,req);

Modified: trunk/core/AmSession.h
===================================================================
--- trunk/core/AmSession.h      2010-05-02 11:07:09 UTC (rev 1885)
+++ trunk/core/AmSession.h      2010-05-02 12:55:26 UTC (rev 1886)
@@ -456,14 +456,10 @@
   virtual void onRinging(const AmSipReply& reply){}
 
   /**
-   * @see AmDialogState
+   * onBye is called whenever a BYE request is received. 
    */
   virtual void onBye(const AmSipRequest& req);
 
-  /**
-   * Entry point for SIP events
-   */
-  virtual void onSipEvent(AmSipEvent* sip_ev);
   /** Entry point for SIP Requests   */
   virtual void onSipRequest(const AmSipRequest& req);
   /** Entry point for SIP Replies   */

Modified: trunk/core/AmSessionEventHandler.cpp
===================================================================
--- trunk/core/AmSessionEventHandler.cpp        2010-05-02 11:07:09 UTC (rev 
1885)
+++ trunk/core/AmSessionEventHandler.cpp        2010-05-02 12:55:26 UTC (rev 
1886)
@@ -38,11 +38,6 @@
   return false;
 }
 
-bool AmSessionEventHandler::onSipEvent(AmSipEvent*)
-{
-  return false;
-}
-
 bool AmSessionEventHandler::onSipRequest(const AmSipRequest&)
 {
   return false;

Modified: trunk/core/AmSessionEventHandler.h
===================================================================
--- trunk/core/AmSessionEventHandler.h  2010-05-02 11:07:09 UTC (rev 1885)
+++ trunk/core/AmSessionEventHandler.h  2010-05-02 12:55:26 UTC (rev 1886)
@@ -65,7 +65,6 @@
    */
   virtual bool process(AmEvent*);
 
-  virtual bool onSipEvent(AmSipEvent*);
   virtual bool onSipRequest(const AmSipRequest&);
   virtual bool onSipReply(const AmSipReply&);
 

Modified: trunk/core/AmSipEvent.h
===================================================================
--- trunk/core/AmSipEvent.h     2010-05-02 11:07:09 UTC (rev 1885)
+++ trunk/core/AmSipEvent.h     2010-05-02 12:55:26 UTC (rev 1886)
@@ -31,19 +31,24 @@
 #include "AmEvent.h"
 #include "AmSipMsg.h"
 
-/** \brief SIP event */
+class AmSipDialog;
+
+/** \brief base class for SIP events */
 class AmSipEvent: public AmEvent
 {
  public:
-  AmSipEvent(int id = -1)
-    : AmEvent(id)
+  AmSipEvent()
+    : AmEvent(-1)
     {}
 
   AmSipEvent(const AmSipEvent& ev)
     : AmEvent(ev)
     {}
+
+  virtual void operator() (AmSipDialog* dlg)=0;
 };
 
+/** \brief UAS reply re-transmission timeout event */
 class AmSipTimeoutEvent: public AmSipEvent
 {
  public:
@@ -60,9 +65,11 @@
   unsigned int cseq_num;
   string       cseq_method;
 
- AmSipTimeoutEvent(EvType t, unsigned int cseq_num, const string& cseq_method)
-    : AmSipEvent(-1), type(t)
-  {}
+  AmSipTimeoutEvent(EvType t, unsigned int cseq_num, const string& cseq_method)
+    : AmSipEvent(), type(t)
+   {}
+
+  virtual void operator() (AmSipDialog* dlg);
 };
 
 /** \brief SIP request event */
@@ -72,8 +79,10 @@
   AmSipRequest req;
     
   AmSipRequestEvent(const AmSipRequest& r)
-    : AmSipEvent(-1), req(r)
+    : AmSipEvent(), req(r)
     {}
+
+  virtual void operator() (AmSipDialog* dlg);
 };
 
 /** \brief SIP reply event */
@@ -84,6 +93,8 @@
 
   AmSipReplyEvent(const AmSipReply& r) 
     : AmSipEvent(),reply(r) {}
+
+  virtual void operator() (AmSipDialog* dlg);
 };
 
 

Modified: trunk/core/plug-in/session_timer/SessionTimer.cpp
===================================================================
--- trunk/core/plug-in/session_timer/SessionTimer.cpp   2010-05-02 11:07:09 UTC 
(rev 1885)
+++ trunk/core/plug-in/session_timer/SessionTimer.cpp   2010-05-02 12:55:26 UTC 
(rev 1886)
@@ -71,11 +71,6 @@
   return false;
 }
 
-bool SessionTimer::onSipEvent(AmSipEvent* ev)
-{
-  return false;
-}
-
 bool SessionTimer::onSipRequest(const AmSipRequest& req)
 {
   updateTimer(s,req);

Modified: trunk/core/plug-in/session_timer/SessionTimer.h
===================================================================
--- trunk/core/plug-in/session_timer/SessionTimer.h     2010-05-02 11:07:09 UTC 
(rev 1885)
+++ trunk/core/plug-in/session_timer/SessionTimer.h     2010-05-02 12:55:26 UTC 
(rev 1886)
@@ -137,7 +137,7 @@
   /* @see AmSessionEventHandler */
   virtual int  configure(AmConfigReader& conf); 
   virtual bool process(AmEvent*);
-  virtual bool onSipEvent(AmSipEvent*);
+
   virtual bool onSipRequest(const AmSipRequest&);
   virtual bool onSipReply(const AmSipReply&);
 

_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to