21 #ifndef _XN_EVENT_T_H_ 22 #define _XN_EVENT_T_H_ 40 template<
typename FuncPtr>
54 template<
typename FuncPtr>
74 TCallback* pCallback = NULL;
81 nRetVal = m_toAdd.AddLast(pCallback);
100 TCallback* pCallback = (TCallback*)hCallback;
108 if (!RemoveCallback(m_toAdd, pCallback))
111 nRetVal = m_toRemove.AddLast(pCallback);
157 for (
typename CallbackPtrList::ConstIterator it = m_callbacks.Begin(); it != m_callbacks.End(); ++it)
159 TCallback* pCallback = *it;
174 for (
typename CallbackPtrList::ConstIterator it = m_toAdd.Begin(); it != m_toAdd.End(); ++it)
176 m_callbacks.AddLast(*it);
181 for (
typename CallbackPtrList::ConstIterator it = m_toRemove.Begin(); it != m_toRemove.End(); ++it)
183 TCallback* pCallback = *it;
184 RemoveCallback(m_callbacks, pCallback);
193 typename CallbackPtrList::Iterator it = list.
Find(pCallback);
194 if (it != list.
End())
224 typedef void (XN_CALLBACK_TYPE* FuncPtr)(
void*
pCookie);
227 template<
class TArg1>
230 typedef void (XN_CALLBACK_TYPE* FuncPtr)(TArg1 arg1,
void*
pCookie);
233 template<
class TArg1,
class TArg2>
236 typedef void (XN_CALLBACK_TYPE* FuncPtr)(TArg1 arg1, TArg2 arg2,
void*
pCookie);
239 template<
class TArg1,
class TArg2,
class TArg3>
242 typedef void (XN_CALLBACK_TYPE* FuncPtr)(TArg1 arg1, TArg2 arg2, TArg3 arg3,
void*
pCookie);
245 template<
class TArg1,
class TArg2,
class TArg3,
class TArg4>
248 typedef void (XN_CALLBACK_TYPE* FuncPtr)(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4,
void*
pCookie);
251 template<
class TArg1,
class TArg2,
class TArg3,
class TArg4,
class TArg5>
254 typedef void (XN_CALLBACK_TYPE* FuncPtr)(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5,
void*
pCookie);
266 for (CallbackPtrList::ConstIterator it = m_callbacks.Begin(); it != m_callbacks.End(); ++it)
278 template<
class TArg1>
287 this->ApplyListChanges();
289 for (
typename Base::CallbackPtrList::ConstIterator it = this->m_callbacks.Begin(); it != this->m_callbacks.End(); ++it)
295 this->ApplyListChanges();
300 template<
class TEventArgs>
304 template<
class TArg1,
class TArg2>
313 this->ApplyListChanges();
315 for (
typename Base::CallbackPtrList::ConstIterator it = this->m_callbacks.Begin(); it != this->m_callbacks.End(); ++it)
321 this->ApplyListChanges();
326 template<
class TArg1,
class TArg2,
class TArg3>
335 this->ApplyListChanges();
337 for (
typename Base::CallbackPtrList::ConstIterator it = this->m_callbacks.Begin(); it != this->m_callbacks.End(); ++it)
343 this->ApplyListChanges();
348 template<
class TArg1,
class TArg2,
class TArg3,
class TArg4>
357 this->ApplyListChanges();
359 for (
typename Base::CallbackPtrList::ConstIterator it = this->m_callbacks.Begin(); it != this->m_callbacks.End(); ++it)
362 pCallback->
pFunc(arg1, arg2, arg3, arg4, pCallback->
pCookie);
365 this->ApplyListChanges();
370 template<
class TArg1,
class TArg2,
class TArg3,
class TArg4,
class TArg5>
379 this->ApplyListChanges();
381 for (
typename Base::CallbackPtrList::ConstIterator it = this->m_callbacks.Begin(); it != this->m_callbacks.End(); ++it)
384 pCallback->
pFunc(arg1, arg2, arg3, arg4, arg5, pCallback->
pCookie);
387 this->ApplyListChanges();
392 #endif // _XN_EVENT_T_H_ XnEventInterfaceT TInterface
Definition: XnEventT.h:60
Definition: XnEventT.h:252
XnStatus Raise(TArg1 arg1, TArg2 arg2)
Definition: XnEventT.h:310
XnListT< TCallback * > CallbackPtrList
Definition: XnEventT.h:120
CallbackPtrList m_toAdd
Definition: XnEventT.h:206
ConstIterator Find(T const &value) const
Definition: XnListT.h:415
XN_CRITICAL_SECTION_HANDLE m_hLock
Definition: XnEventT.h:204
~XnEventInterfaceT()
Definition: XnEventT.h:62
#define XN_IS_STATUS_OK(x)
Definition: XnMacros.h:59
Definition: XnEventT.h:234
XnStatus ApplyListChanges()
Definition: XnEventT.h:169
XnEventInterfaceT & operator=(const XnEventInterfaceT &other)
Definition: XnEventT.h:134
Definition: XnEventT.h:301
FuncPtr pFunc
Definition: XnEventT.h:45
#define XN_STATUS_OK
Definition: XnStatus.h:36
XnCallbackT(FuncPtr func, void *cookie)
Definition: XnEventT.h:43
CallbackPtrList m_toRemove
Definition: XnEventT.h:207
CallbackPtrList m_callbacks
Definition: XnEventT.h:205
XnStatus Raise(TArg1 arg1, TArg2 arg2, TArg3 arg3)
Definition: XnEventT.h:332
#define XN_VALIDATE_NEW(ptr, type,...)
Definition: XnOS.h:171
XnUInt32 XnStatus
Definition: XnStatus.h:33
Definition: XnEventT.h:228
XnBool RemoveCallback(CallbackPtrList &list, TCallback *pCallback)
Definition: XnEventT.h:191
void * pCookie
Definition: XnEventT.h:46
Definition: XnEventT.h:327
Definition: XnEventT.h:305
XnStatus Raise()
Definition: XnEventT.h:261
XnStatus Register(FuncPtr pFunc, void *pCookie, XnCallbackHandle &hCallback)
Definition: XnEventT.h:68
XnStatus Clear()
Definition: XnEventT.h:152
void * XnCallbackHandle
Definition: XnTypes.h:270
Definition: XnEventT.h:246
XN_C_API XnStatus XN_C_DECL xnOSCloseCriticalSection(XN_CRITICAL_SECTION_HANDLE *pCriticalSectionHandle)
XnEventInterfaceT()
Definition: XnEventT.h:123
#define XN_VALIDATE_INPUT_PTR(x)
Definition: XnOS.h:126
Definition: XnEventT.h:258
#define XN_DELETE(p)
Definition: XnOS.h:339
XnStatus Raise(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5)
Definition: XnEventT.h:376
XnCallbackT< FuncPtr > TCallback
Definition: XnEventT.h:59
XnStatus Remove(ConstIterator where)
Definition: XnListT.h:446
Definition: XnEventT.h:222
Definition: XnEventT.h:41
Iterator End()
Definition: XnListT.h:301
Definition: XnEventT.h:349
XnStatus Raise(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
Definition: XnEventT.h:354
XnEventInterfaceT(const XnEventInterfaceT &other)
Definition: XnEventT.h:128
XN_C_API XnStatus XN_C_DECL xnOSCreateCriticalSection(XN_CRITICAL_SECTION_HANDLE *pCriticalSectionHandle)
XnStatus Unregister(XnCallbackHandle hCallback)
Definition: XnEventT.h:96
XnStatus Raise(TArg1 arg)
Definition: XnEventT.h:284
Definition: XnEventT.h:279
Definition: XnEventT.h:240
Definition: XnEventT.h:371
FuncPtr HandlerPtr
Definition: XnEventT.h:58
Definition: XnEventT.h:55