![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 2001 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: regObjMsg.h,v $ $Revision: 1.14 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtRegObjMsg_H_ 00013 #define DtRegObjMsg_H_ 00014 00015 #include "rtiMsg.h" 00016 #include "netRegObjMsg.h" 00017 #include "attrHandSet.h" 00018 #include <vlutil/vlString.h> 00019 00020 class DtConnectionMgr; 00021 class DtRegObjMsg; 00022 00023 typedef void (*DtRegObjCb)(const DtRegObjMsg& msg, void* usr); 00024 00025 class DT_DLL_LRC DtRegObjMsg : public DtRtiMsg 00026 { 00027 public: 00028 00030 DtRegObjMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00031 00032 DtRegObjMsg( 00033 DtObjectInstanceHandle objHandleValue, 00034 const char* objNameValue, 00035 DtObjectClassHandle classHandleValue, 00036 const DtAttributeHandleSet& attrSet, 00037 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00038 00040 DtRegObjMsg(const DtNetRegObjMsg* netRepMsg, 00041 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00042 00044 virtual ~DtRegObjMsg(); 00045 00047 virtual DtRtiMsg* clone(bool copy = true) const; 00048 00050 virtual void set( 00051 DtObjectInstanceHandle objHandleValue, 00052 const char* objNameValue, 00053 DtObjectClassHandle classHandleValue, 00054 const DtAttributeHandleSet& attrSet); 00055 00057 virtual void setClassHandle(DtObjectClassHandle hand); 00058 virtual DtObjectClassHandle classHandle() const; 00059 00061 virtual void setObjHandle(DtObjectInstanceHandle id); 00062 virtual DtObjectInstanceHandle objHandle() const; 00063 00065 virtual void setObjName(const char* name); 00066 virtual const char* objName() const; 00067 00069 virtual void setAttrHandles(const DtAttributeHandleSet& attrs); 00070 virtual const DtAttributeHandleSet& attrHandles() const; 00071 00073 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00074 00075 public: 00076 00078 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00079 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00080 00082 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00083 00085 static void addCallback(DtConnectionMgr *conn, 00086 DtRegObjCb cb, void *usr); 00087 static void removeCallback(DtConnectionMgr *conn, 00088 DtRegObjCb cb, void *usr); 00089 00090 protected: 00091 00093 virtual DtNetRegObjMsg* netRegObjMsg(); 00094 virtual const DtNetRegObjMsg* netRegObjMsg() const; 00095 00097 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00098 00100 virtual int minSize() const; 00101 00103 virtual char* namePtr(); 00104 00106 virtual unsigned long nameFieldSize() const; 00107 00109 virtual DtRegObjMsg* self() const; 00110 00111 protected: 00112 00113 int myDirty; 00114 DtAttributeHandleSet* myAttrs; 00115 MAKRti::DtString myName; 00116 }; 00117 00118 00119 inline DtRegObjMsg* DtRegObjMsg::self() const 00120 { 00121 return const_cast<DtRegObjMsg*>( this ); 00122 } 00123 00124 #endif 00125