sipxtacklib  Version 3.3
SipXEventDispatcher.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2006 SIPfoundry Inc.
3 // Licensed by SIPfoundry under the LGPL license.
4 //
5 // Copyright (C) 2006 Robert J. Andreasen, Jr.
6 // Licensed to SIPfoundry under a Contributor Agreement.
7 //
8 // $$
10 
11 #ifndef _SIPXEVENTDISPATCHER_H_
12 #define _SIPXEVENTDISPATCHER_H_
13 
14 // SYSTEM INCLUDES
15 // APPLICATION INCLUDES
16 #include "os/OsServerTask.h"
17 #include "tapi/sipXtapi.h"
18 #include "tapi/sipXtapiEvents.h"
19 #include "utl/UtlHashMap.h"
20 #include "os/OsRWMutex.h"
21 
22 // DEFINES
23 // MACROS
24 // EXTERNAL FUNCTIONS
25 // CONSTANTS
26 // STRUCTS
27 // TYPEDEFS
28 typedef struct
29 {
32  void* pUserData ;
34 
35 // MACROS
36 
37 // FORWARD DECLARATIONS
38 class OsEventMsg ;
39 
62 class SipXEventDispatcher : public OsServerTask
63 {
64 public:
65 /* ============================ CREATORS ================================== */
66 
68 
69  virtual ~SipXEventDispatcher(void);
70 
71 /* ============================ MANIPULATORS ============================== */
72 
76  UtlBoolean handleMessage(OsMsg& rMsg);
77 
78  bool addListener(SIPX_EVENT_CALLBACK_PROC pCallbackProc,
79  void* pUserData) ;
80 
81  bool removeListener(SIPX_EVENT_CALLBACK_PROC pCallbackProc,
82  void* pUserData) ;
83 
84  void removeAllListeners() ;
85 
87  void* pInfo) ;
88 
89  void setInstanceHandle(SIPX_INST hNew) ;
90 
91 protected:
93  void* pInfo,
94  void* pUserData);
95 
96 private:
97  SIPX_INST mhInst ;
98  UtlHashMap mListeners ;
99  OsRWMutex mListenerLock;
100 };
101 
102 #endif // _SIPXEVENTDISPATCHER_H_
103 
bool removeListener(SIPX_EVENT_CALLBACK_PROC pCallbackProc, void *pUserData)
UtlBoolean handleMessage(OsMsg &rMsg)
Implementation of OsServerTask's pure virtual method.
SipXEventDispatcher(SIPX_INST hInst)
The SipXEventDispatcher adds a listener to sipXtapi and then redispatches all of the sipXtapi events ...
Definition: SipXEventDispatcher.h:62
SIPX_EVENT_CALLBACK_PROC pCallbackProc
Definition: SipXEventDispatcher.h:31
sipXtapi event declarations
bool(SIPX_CALLING_CONVENTION * SIPX_EVENT_CALLBACK_PROC)(SIPX_EVENT_CATEGORY category, void *pInfo, void *pUserData)
Signature for event callback/observer.
Definition: sipXtapiEvents.h:145
SIPX_EVENT_CATEGORY
Enum with all of the possible event types.
Definition: sipXtapiEvents.h:54
#define SIPX_CALLING_CONVENTION
The SIPX_CALLING_CONVENTION define controls the default calling convention.
Definition: sipXtapi.h:57
void serviceListeners(SIPX_EVENT_CATEGORY category, void *pInfo)
bool addListener(SIPX_EVENT_CALLBACK_PROC pCallbackProc, void *pUserData)
void * pUserData
Definition: SipXEventDispatcher.h:32
Definition: SipXEventDispatcher.h:28
virtual ~SipXEventDispatcher(void)
void * SIPX_INST
The SIPX_INST handle represents an instance of a user agent.
Definition: sipXtapi.h:811
SIPX_INST hInst
Definition: SipXEventDispatcher.h:30
sipXtapi main API declarations
static bool SIPX_CALLING_CONVENTION EventCallBack(SIPX_EVENT_CATEGORY category, void *pInfo, void *pUserData)
void setInstanceHandle(SIPX_INST hNew)

sipXtackLib home page