![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2003 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: reserveNameMsg.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtReleaseMultiNameMsg_H_ 00013 #define DtReleaseMultiNameMsg_H_ 00014 00015 #include "rtiMsConfig.h" 00016 #include <string> 00017 #include "rtiMsg.h" 00018 #include "netRtiMsgHdr.h" 00019 00020 class DtConnectionMgr; 00021 class DtNetReleaseMultiNameMsg; 00022 class DtReleaseMultiNameMsg; 00023 typedef void (*DtReleaseMultiNameCb)(const DtReleaseMultiNameMsg& inter, void* usr); 00024 00025 class DT_DLL_LRC DtReleaseMultiNameMsg : public DtRtiMsg 00026 { 00027 public: 00028 00030 DtReleaseMultiNameMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00031 00032 DtReleaseMultiNameMsg( 00033 std::set< std::wstring > const & objectNames, 00034 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00035 00037 DtReleaseMultiNameMsg(DtNetReleaseMultiNameMsg const * netRepMsg, 00038 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00039 00041 virtual ~DtReleaseMultiNameMsg(); 00042 00044 virtual DtRtiMsg* clone(bool copy = true) const; 00045 00047 virtual void set(std::set< std::wstring > const & objectNames ); 00048 00049 virtual void setObjectNames(std::set< std::wstring > const & objectNames); 00050 virtual void getObjectNames(std::set< std::wstring > & objectNames ) const; 00051 00053 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00054 00055 public: 00056 00058 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00059 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00060 00062 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00063 00065 static void addCallback(DtConnectionMgr* conn, 00066 DtReleaseMultiNameCb cb, void* usr, bool isMomCallback=false); 00067 static void removeCallback(DtConnectionMgr* conn, 00068 DtReleaseMultiNameCb cb, void* usr, bool isMomCallback=false); 00069 00070 protected: 00071 00073 virtual char const * objectNamesPtr() const; 00074 virtual char* objectNamesPtr(); 00075 00077 virtual void setObjectNamesSize( unsigned long size ); 00078 virtual unsigned long objectNamesSize() const; 00079 00081 int setMinSizes( const std::set<std::wstring>& objectNames); 00082 00084 virtual DtNetReleaseMultiNameMsg* netReleaseMultiNameMsg(); 00085 virtual DtNetReleaseMultiNameMsg const * netReleaseMultiNameMsg() const; 00086 00088 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00089 00091 virtual int minSize() const; 00092 }; 00093 00094 #endif //! DtReleaseMultiNameMsg_H_ 00095