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