NITE 1.5.1 - API Reference

XnVMessageMux.h

Go to the documentation of this file.
00001 /*******************************************************************************
00002 *                                                                              *
00003 *   PrimeSense NITE 1.3                                                        *
00004 *   Copyright (C) 2010 PrimeSense Ltd.                                         *
00005 *                                                                              *
00006 *******************************************************************************/
00007 
00008 
00009 #ifndef _XNV_MESSAGE_MUX_H_
00010 #define _XNV_MESSAGE_MUX_H_
00011 
00012 #include "XnVFilter.h"
00013 #include "XnVComplexMessage.h"
00014 
00015 class XnStringsHash;
00016 class XnList;
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_phTypes;
00080     XnUInt32 m_nExpected;
00081     XnList* m_phCurrent;
00082 };
00083 
00084 #endif