![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2005 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: rtiShmQNetMgr.h,v $ $Revision: 1.10 $ $State: Exp $ 00007 *********************************************************************/ 00010 00011 #ifndef DtRtiShmQNetMgr_H_ 00012 #define DtRtiShmQNetMgr_H_ 00013 00014 00015 #include "rtiMsConfig.h" 00016 #include "asyConMgr.h" 00017 #include <vlutil/vlThread.h> 00018 #include "RIDparams.h" 00019 #include "multicastDiscoveryMgr.h" 00020 00021 #include <vlutil/vlSelectParamW.h> 00022 #include <vlutil/vlHashlist.h> 00023 00024 #include <vector> 00025 00028 class DtRtiMsg; 00029 class DtMessageFilter; 00030 class DtSmConnectionMgr; 00031 00040 class DT_DLL_LRC DtRtiShmQNetMgr : public DtAsyncConnectionMgr 00041 { 00042 protected: 00043 00045 DtRtiShmQNetMgr( DtRIDParameters * params ); 00046 00047 public: 00048 00050 virtual ~DtRtiShmQNetMgr(); 00051 00055 virtual int init(DtRIDParameters* params); 00056 00059 virtual void setSmConnMgr( DtSmConnectionMgr *smConnMgr ); 00060 00062 virtual void enrollSmFederate( DtFederateHandle federateHandle, int fedExHandle ); 00063 virtual void dropSmFederate( DtFederateHandle federateHandle, int fedExHandle ); 00064 00065 protected: 00066 00068 DtRtiShmQNetMgr( const DtRtiShmQNetMgr& orig ); 00069 DtRtiShmQNetMgr& operator=( const DtRtiShmQNetMgr& orig ); 00070 00073 virtual bool processConnection( DtRtiConnection* conn, MAKRti::DtTransportType trans ); 00074 virtual DtNetReadStatus processMsg( const DtRtiMsg& msg ); 00075 00077 virtual void applyOutboundMsgFilters( DtRtiMsg *msg ); 00078 virtual DtNetReadStatus filterReliableLoopbacks( const DtRtiMsg& msg ); 00079 00082 00084 00085 virtual bool performMulticastDiscovery(); 00086 00087 public: 00088 00092 static DtConnectionMgr* create(DtRIDParameters* p); 00093 00094 protected: 00095 00098 MAKRti::DtInetAddr myHostIpAddr; 00099 unsigned int myPort; 00100 DtSmConnectionMgr * mySmConnMgr; 00101 00103 bool myCloseAllConnectionsRequested; 00104 00109 typedef std::multimap< DtFederateHandle, int > DtFedHandleToFedExHandleMap; 00110 DtFedHandleToFedExHandleMap myFedHandleToFedExMap; 00111 00115 typedef std::map< int, DtBitMask* > DtRouteMaskFilterByFedexHandle; 00116 typedef std::map< MAKRti::DtString, DtBitMask* > DtRouteMaskFilterByFedexName; 00117 00118 DtRouteMaskFilterByFedexHandle myFedexHandleFilterList; 00119 DtRouteMaskFilterByFedexName myFedexFilterList; 00120 00121 }; 00122 00123 #endif //! DtRtiShmQNetMgr_H_ 00124