22 #ifndef _XN_EVENT_T_H_ 23 #define _XN_EVENT_T_H_ 41 template<
typename FuncPtr>
55 template<
typename FuncPtr>
75 TCallback* pCallback = NULL;
82 nRetVal = m_toAdd.AddLast(pCallback);
101 TCallback* pCallback = (TCallback*)hCallback;
109 if (!RemoveCallback(m_toAdd, pCallback))
112 nRetVal = m_toRemove.AddLast(pCallback);
158 for (
typename CallbackPtrList::ConstIterator it = m_callbacks.Begin(); it != m_callbacks.End(); ++it)
160 TCallback* pCallback = *it;
175 for (
typename CallbackPtrList::ConstIterator it = m_toAdd.Begin(); it != m_toAdd.End(); ++it)
177 m_callbacks.AddLast(*it);
182 for (
typename CallbackPtrList::ConstIterator it = m_toRemove.Begin(); it != m_toRemove.End(); ++it)
184 TCallback* pCallback = *it;
185 RemoveCallback(m_callbacks, pCallback);
194 typename CallbackPtrList::Iterator it = list.
Find(pCallback);
195 if (it != list.
End())
225 typedef void (XN_CALLBACK_TYPE* FuncPtr)(
void*
pCookie);
228 template<
class TArg1>
231 typedef void (XN_CALLBACK_TYPE* FuncPtr)(TArg1 arg1,
void*
pCookie);
234 template<
class TArg1,
class TArg2>
237 typedef void (XN_CALLBACK_TYPE* FuncPtr)(TArg1 arg1, TArg2 arg2,
void*
pCookie);
240 template<
class TArg1,
class TArg2,
class TArg3>
243 typedef void (XN_CALLBACK_TYPE* FuncPtr)(TArg1 arg1, TArg2 arg2, TArg3 arg3,
void*
pCookie);
246 template<
class TArg1,
class TArg2,
class TArg3,
class TArg4>
249 typedef void (XN_CALLBACK_TYPE* FuncPtr)(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4,
void*
pCookie);
252 template<
class TArg1,
class TArg2,
class TArg3,
class TArg4,
class TArg5>
255 typedef void (XN_CALLBACK_TYPE* FuncPtr)(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5,
void*
pCookie);
267 for (CallbackPtrList::ConstIterator it = m_callbacks.Begin(); it != m_callbacks.End(); ++it)
279 template<
class TArg1>
288 this->ApplyListChanges();
290 for (
typename Base::CallbackPtrList::ConstIterator it = this->m_callbacks.Begin(); it != this->m_callbacks.End(); ++it)
296 this->ApplyListChanges();
301 template<
class TEventArgs>
305 template<
class TArg1,
class TArg2>
314 this->ApplyListChanges();
316 for (
typename Base::CallbackPtrList::ConstIterator it = this->m_callbacks.Begin(); it != this->m_callbacks.End(); ++it)
322 this->ApplyListChanges();
327 template<
class TArg1,
class TArg2,
class TArg3>
336 this->ApplyListChanges();
338 for (
typename Base::CallbackPtrList::ConstIterator it = this->m_callbacks.Begin(); it != this->m_callbacks.End(); ++it)
344 this->ApplyListChanges();
349 template<
class TArg1,
class TArg2,
class TArg3,
class TArg4>
358 this->ApplyListChanges();
360 for (
typename Base::CallbackPtrList::ConstIterator it = this->m_callbacks.Begin(); it != this->m_callbacks.End(); ++it)
363 pCallback->
pFunc(arg1, arg2, arg3, arg4, pCallback->
pCookie);
366 this->ApplyListChanges();
371 template<
class TArg1,
class TArg2,
class TArg3,
class TArg4,
class TArg5>
380 this->ApplyListChanges();
382 for (
typename Base::CallbackPtrList::ConstIterator it = this->m_callbacks.Begin(); it != this->m_callbacks.End(); ++it)
385 pCallback->
pFunc(arg1, arg2, arg3, arg4, arg5, pCallback->
pCookie);
388 this->ApplyListChanges();
393 #endif // _XN_EVENT_T_H_ XnEventInterfaceT TInterface
Definition: XnEventT.h:61
Definition: XnEventT.h:253
XnStatus Raise(TArg1 arg1, TArg2 arg2)
Definition: XnEventT.h:311
XnListT< TCallback * > CallbackPtrList
Definition: XnEventT.h:121
CallbackPtrList m_toAdd
Definition: XnEventT.h:207
XN_CRITICAL_SECTION_HANDLE m_hLock
Definition: XnEventT.h:205
~XnEventInterfaceT()
Definition: XnEventT.h:63
#define XN_IS_STATUS_OK(x)
Definition: XnMacros.h:60
Definition: XnEventT.h:235
XnStatus ApplyListChanges()
Definition: XnEventT.h:170
XnEventInterfaceT & operator=(const XnEventInterfaceT &other)
Definition: XnEventT.h:135
Definition: XnEventT.h:302
FuncPtr pFunc
Definition: XnEventT.h:46
#define XN_STATUS_OK
Definition: XnStatus.h:37
XnCallbackT(FuncPtr func, void *cookie)
Definition: XnEventT.h:44
CallbackPtrList m_toRemove
Definition: XnEventT.h:208
CallbackPtrList m_callbacks
Definition: XnEventT.h:206
XnStatus Raise(TArg1 arg1, TArg2 arg2, TArg3 arg3)
Definition: XnEventT.h:333
#define XN_VALIDATE_NEW(ptr, type,...)
Definition: XnOS.h:168
XnUInt32 XnStatus
Definition: XnStatus.h:34
Definition: XnEventT.h:229
XnBool RemoveCallback(CallbackPtrList &list, TCallback *pCallback)
Definition: XnEventT.h:192
void * pCookie
Definition: XnEventT.h:47
Definition: XnEventT.h:328
Definition: XnEventT.h:306
XnStatus Raise()
Definition: XnEventT.h:262
XnStatus Register(FuncPtr pFunc, void *pCookie, XnCallbackHandle &hCallback)
Definition: XnEventT.h:69
XnStatus Clear()
Definition: XnEventT.h:153
void * XnCallbackHandle
Definition: XnTypes.h:268
Definition: XnEventT.h:247
XN_C_API XnStatus XN_C_DECL xnOSCloseCriticalSection(XN_CRITICAL_SECTION_HANDLE *pCriticalSectionHandle)
XnEventInterfaceT()
Definition: XnEventT.h:124
#define XN_VALIDATE_INPUT_PTR(x)
Definition: XnOS.h:123
Definition: XnEventT.h:259
#define XN_DELETE(p)
Definition: XnOS.h:336
XnStatus Raise(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4, TArg5 arg5)
Definition: XnEventT.h:377
XnCallbackT< FuncPtr > TCallback
Definition: XnEventT.h:60
XnStatus Remove(ConstIterator where)
Definition: XnListT.h:426
Definition: XnEventT.h:223
Definition: XnEventT.h:42
Iterator End()
Definition: XnListT.h:281
Definition: XnEventT.h:350
XnStatus Raise(TArg1 arg1, TArg2 arg2, TArg3 arg3, TArg4 arg4)
Definition: XnEventT.h:355
XnEventInterfaceT(const XnEventInterfaceT &other)
Definition: XnEventT.h:129
XN_C_API XnStatus XN_C_DECL xnOSCreateCriticalSection(XN_CRITICAL_SECTION_HANDLE *pCriticalSectionHandle)
XnStatus Unregister(XnCallbackHandle hCallback)
Definition: XnEventT.h:97
ConstIterator Find(T const &value) const
Definition: XnListT.h:395
XnStatus Raise(TArg1 arg)
Definition: XnEventT.h:285
Definition: XnEventT.h:280
Definition: XnEventT.h:241
Definition: XnEventT.h:372
FuncPtr HandlerPtr
Definition: XnEventT.h:59
Definition: XnEventT.h:56