![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2003 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: nameReservedMsg.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtNameReservedMsg_H_ 00013 #define DtNameReservedMsg_H_ 00014 00015 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E) 00016 00017 #include "rtiMsConfig.h" 00018 #include <string> 00019 #include "rtiMsg.h" 00020 #include "netRtiMsgHdr.h" 00021 00022 class DtConnectionMgr; 00023 class DtNetReserveNameMsg; 00024 class DtNameReservedMsg; 00025 typedef void (*DtNameReservedCb)(const DtNameReservedMsg& inter, void* usr); 00026 00027 class DT_DLL_LRC DtNameReservedMsg : public DtRtiMsg 00028 { 00029 public: 00030 00032 DtNameReservedMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00033 00034 DtNameReservedMsg( 00035 DtFederateHandle fedHandle, 00036 char const * objectName, 00037 bool succeeded, 00038 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00039 00041 DtNameReservedMsg(DtNetReserveNameMsg const * netRepMsg, 00042 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00043 00045 virtual ~DtNameReservedMsg(); 00046 00048 virtual DtRtiMsg* clone(bool copy = true) const; 00049 00051 virtual void set(DtFederateHandle fedHandle, char const * objectName, 00052 bool succeeded); 00053 00055 virtual DtFederateHandle requestingFederate() const; 00056 virtual void setRequestingFederate(DtFederateHandle fedHandle); 00057 00059 virtual char const * objectName() const; 00060 virtual void setObjectName(char const * objectName); 00061 00063 virtual bool result() const; 00064 virtual void setResult(bool succeeded); 00065 00067 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00068 00069 public: 00070 00072 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00073 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00074 00076 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00077 00079 static void addCallback(DtConnectionMgr* conn, 00080 DtNameReservedCb cb, void* usr, bool isMomCallback=false); 00081 static void removeCallback(DtConnectionMgr* conn, 00082 DtNameReservedCb cb, void* usr, bool isMomCallback=false); 00083 00084 protected: 00085 00087 virtual DtNetReserveNameMsg* netNameReservedMsg(); 00088 virtual DtNetReserveNameMsg const * netNameReservedMsg() const; 00089 00091 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00092 00094 virtual int minSize(char const * objectName) const; 00095 00097 virtual char* namePtr() const; 00098 00099 }; 00100 00101 #endif //! DtIFSPEC1516 00102 #endif //! DtNameReservedMsg_H_ 00103