![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 2001 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: pubRegMsg.h,v $ $Revision: 1.17 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtAssocPubRegMsg_H_ 00013 #define DtAssocPubRegMsg_H_ 00014 #ifdef DDM 00015 00016 #include "rtiMsg.h" 00017 #include "netPubRegMsg.h" 00018 #include "attrHandSet.h" 00019 #include <vlutil/vlString.h> 00020 00021 class DtConnectionMgr; 00022 class DtAssocPubRegMsg; 00023 00024 typedef void (*DtAssocPubRegCb)(const DtAssocPubRegMsg& msg, void* usr); 00025 00026 class DT_DLL_LRC DtAssocPubRegMsg : public DtRtiMsg 00027 { 00028 public: 00029 00031 DtAssocPubRegMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00032 00034 DtAssocPubRegMsg( 00035 DtRegionHandle regSetHandleValue, 00036 DtObjectInstanceHandle objectHandleValue, 00037 const char* objName, 00038 DtObjectClassHandle classHandleValue, 00039 bool isRemovingAssoc, 00040 const DtAttributeHandleSet& attrSet, 00041 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00042 00044 DtAssocPubRegMsg(const DtNetAssocPubRegMsg* netRepMsg, 00045 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00046 00048 virtual ~DtAssocPubRegMsg(); 00049 00051 virtual DtRtiMsg* clone(bool copy = true) const; 00052 00054 virtual void set( 00055 DtRegionHandle regSetHandleValue, 00056 DtObjectInstanceHandle objectHandleValue, 00057 const char* objName, 00058 DtObjectClassHandle classHandleValue, 00059 bool isRemovingAssoc, 00060 const DtAttributeHandleSet& attrSet); 00061 00063 virtual void setRegionSetHandle(DtRegionHandle handleValue); 00064 virtual DtRegionHandle regionSetHandle() const; 00065 00067 virtual void setObjectHandle(DtObjectInstanceHandle handleValue); 00068 virtual DtObjectInstanceHandle objectHandle() const; 00069 00071 virtual void setObjName(const char* name); 00072 virtual const char* objName() const; 00073 00075 virtual void setClassHandle(DtObjectClassHandle handleValue); 00076 virtual DtObjectClassHandle classHandle() const; 00077 00079 virtual void setRemoveAssociation(bool isRemovingAssoc); 00080 virtual bool isRemoveAssociation() const; 00081 00083 virtual void setAttrHandles(const DtAttributeHandleSet& attrs); 00084 virtual const DtAttributeHandleSet& attrHandles() const; 00085 00087 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00088 00089 public: 00090 00092 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00093 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00094 00096 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00097 00099 static void addCallback(DtConnectionMgr *conn, 00100 DtAssocPubRegCb cb, void *usr); 00101 static void removeCallback(DtConnectionMgr *conn, 00102 DtAssocPubRegCb cb, void *usr); 00103 00104 protected: 00105 00107 virtual DtNetAssocPubRegMsg* netAssocPubRegMsg(); 00108 virtual const DtNetAssocPubRegMsg* netAssocPubRegMsg() const; 00109 00111 virtual int minSize() const; 00112 00114 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00115 00117 virtual char* namePtr(); 00118 00120 virtual unsigned short nameFieldSize() const; 00121 00123 virtual DtAssocPubRegMsg* self() const; 00124 00125 protected: 00126 00127 bool myDirty; 00128 DtAttributeHandleSet* myAttrs; 00129 MAKRti::DtString myName; 00130 }; 00131 00132 00133 inline DtAssocPubRegMsg* DtAssocPubRegMsg::self() const 00134 { 00135 return const_cast<DtAssocPubRegMsg*>( this ); 00136 } 00137 00138 #endif 00139 #endif