![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 2004 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: regionRealizationMsg.h,v $ $Revision: 1.7 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtRegionRealizationMsg_H_ 00013 #define DtRegionRealizationMsg_H_ 00014 #ifdef DDM 00015 00016 #include "rtiMsg.h" 00017 #include "netRegionRealization.h" 00018 #include "internalTypes.h" 00019 00020 class DtConnectionMgr; 00021 class DtRegionRealizationMsg; 00022 class DtRegionExtent; 00023 class DtNetExtent; 00024 typedef void (*DtRegionRealizationCb)(const DtRegionRealizationMsg& msg, void* usr); 00025 00026 class DT_DLL_LRC DtRegionRealizationMsg : public DtRtiMsg 00027 { 00028 public: 00029 00031 DtRegionRealizationMsg(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00032 00034 DtRegionRealizationMsg(DtRegionHandle handleValue, 00035 DtRegionHandle regionHandleValue, 00036 DtDimensionHandleSet const* dimHandles=NULL, 00037 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00038 00040 DtRegionRealizationMsg(const DtNetRegionReliazationMsg* netRepMsg, 00041 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00042 00044 virtual ~DtRegionRealizationMsg(); 00045 00047 virtual DtRtiMsg* clone(bool copy = true) const; 00048 00050 virtual void set(DtRegionHandle handleValue, DtRegionHandle regionHandleValue, 00051 DtDimensionHandleSet const* dimHandles=NULL); 00052 00054 virtual void setRegionRealizationHandle(DtRegionHandle handleValue); 00055 virtual DtRegionHandle regionRealizationHandle() const; 00056 00058 virtual void setRegionHandle(DtRegionHandle handleValue); 00059 virtual DtRegionHandle regionHandle() const; 00060 00062 virtual void setDimensionHandles(DtDimensionHandleSet const& dimHandles); 00063 virtual DtDimensionHandleSet const& dimensionHandles() const; 00064 00066 unsigned long numberDimensions() const; 00067 00069 virtual void printData(DtLogicalTimeFactory* logicalTimeFactory) const; 00070 00071 public: 00072 00074 static DtRtiMsg* create(const DtNetMsgHeader* initial, 00075 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00076 00078 static DtRtiMsg* create(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00079 00081 static void addCallback(DtConnectionMgr *conn, 00082 DtRegionRealizationCb cb, void *usr); 00083 static void removeCallback(DtConnectionMgr *conn, 00084 DtRegionRealizationCb cb, void *usr); 00085 00086 protected: 00087 00089 virtual DtNetU32* netDimensionHandles(); 00090 00091 virtual void fillFromNetRep(DtNetU32* netDimHandles, 00092 DtDimensionHandleSet& dimHandles) const; 00093 00094 virtual void fillNetRep( 00095 DtDimensionHandleSet const& dimHandles, 00096 DtNetU32* netDimHandles); 00097 00099 virtual DtNetRegionReliazationMsg* netRegionRealizationMsg(); 00100 virtual const DtNetRegionReliazationMsg* netRegionRealizationMsg() const; 00101 00103 virtual DtRtiMsgKind internalDtRtiMsgKind(); 00104 00106 virtual int minSize(int numberDimensions=0) const; 00107 00109 virtual DtRegionRealizationMsg* self() const; 00110 00111 protected: 00112 DtDimensionHandleSet myDimensionHandles; 00113 bool myDirty; 00114 00116 unsigned int myDimensionSlotCount; 00117 }; 00118 00119 00120 inline DtRegionRealizationMsg* DtRegionRealizationMsg::self() const 00121 { 00122 return const_cast<DtRegionRealizationMsg*>( this ); 00123 } 00124 00125 #endif 00126 #endif 00127