![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 2001 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: subRegMsg.h,v $ $Revision: 1.14 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtAssocSubRegMsg_H_ 00013 #define DtAssocSubRegMsg_H_ 00014 #ifdef DDM 00015 00016 #include "rtiMsg.h" 00017 #include "netSubRegMsg.h" 00018 #include "attrHandSet.h" 00019 00020 class DtConnectionMgr; 00021 class DtAssocSubRegMsg; 00022 typedef void (*DtAssocSubRegCb)(const DtAssocSubRegMsg& msg, void* usr); 00023 00024 class DT_DLL_LRC DtAssocSubRegMsg : public DtRtiMsg 00025 { 00026 public: 00027 00029 DtAssocSubRegMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00030 00032 DtAssocSubRegMsg( 00033 DtRegionHandle regSetHandleValue, 00034 DtObjectClassHandle classHandleValue, 00035 const DtAttributeHandleSet& attrSet, 00036 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00037 00039 DtAssocSubRegMsg(const DtNetAssocSubRegMsg* netRepMsg, 00040 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00041 00043 virtual ~DtAssocSubRegMsg(); 00044 00046 virtual DtRtiMsg* clone(bool copy = true) const; 00047 00049 virtual void set( 00050 DtRegionHandle regSetHandleValue, 00051 DtObjectClassHandle classHandleValue, 00052 const DtAttributeHandleSet& attrSet); 00053 00055 virtual void setRegionSetHandle(DtRegionHandle handleValue); 00056 virtual DtRegionHandle regionSetHandle() const; 00057 00059 virtual void setClassHandle(DtObjectClassHandle handleValue); 00060 virtual DtObjectClassHandle classHandle() const; 00061 00063 virtual void setAttrHandles(const DtAttributeHandleSet& attrs); 00064 virtual const DtAttributeHandleSet& attrHandles() const; 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 DtAssocSubRegCb cb, void *usr, bool isMomCallback=false); 00081 static void removeCallback(DtConnectionMgr *conn, 00082 DtAssocSubRegCb cb, void *usr, bool isMomCallback=false); 00083 00084 protected: 00085 00087 virtual DtNetAssocSubRegMsg* netAssocSubRegMsg(); 00088 virtual const DtNetAssocSubRegMsg* netAssocSubRegMsg() const; 00089 00091 virtual int minSize() const; 00092 00094 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00095 00097 virtual DtAssocSubRegMsg* self() const; 00098 00099 protected: 00100 bool myDirty; 00101 DtAttributeHandleSet* myAttrs; 00102 }; 00103 00104 00105 inline DtAssocSubRegMsg* DtAssocSubRegMsg::self() const 00106 { 00107 return const_cast<DtAssocSubRegMsg*>( this ); 00108 } 00109 00110 #endif 00111 #endif