Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef _XNV_MESSAGE_MUX_H_
00010 #define _XNV_MESSAGE_MUX_H_
00011
00012 #include <XnStringsHash.h>
00013
00014 #include "XnVFilter.h"
00015 #include "XnVComplexMessage.h"
00016
00020 class XNV_NITE_API XnVMessageMux :
00021 public XnVFilter
00022 {
00023 public:
00027 enum XnVMuxMode
00028 {
00030 XNV_MUX_MODE_ANY,
00032 XNV_MUX_MODE_ALL,
00034 XNV_MUX_MODE_SPECIFIC,
00036 XNV_MUX_MODE_LAST
00037 };
00038
00044 XnVMessageMux(const XnChar* strName = "XnVMessageMux");
00045
00046 ~XnVMessageMux();
00052 void AddType(const XnChar* strType);
00058 void Update(XnVMessage* pMessage);
00059
00065 void SetMode(XnVMuxMode eMode);
00071 void SetMode(const XnChar* strType);
00072 protected:
00073 void HandleSingleMessage(XnVMessage* pMessage);
00074
00075 XnVComplexMessage* m_pComplexMessage;
00076 XnVMuxMode m_eMode;
00077 XnChar* m_strSpecific;
00078
00079 XnStringsHash m_hTypes;
00080 XnUInt32 m_nExpected;
00081 XnList m_hCurrent;
00082 };
00083
00084 #endif