![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 2006 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: fixedGridObjDdmMgr.h,v $ $Revision: 1.5 $ $State: Exp $ 00007 *********************************************************************/ 00008 00009 #ifndef fixedGridObjectDataDistMgr_H_ 00010 #define fixedGridObjectDataDistMgr_H_ 00011 #ifdef DDM 00012 00015 00016 #include "rtiMsConfig.h" 00017 #include "objMgr.h" 00018 00019 class DtFixedGridRegion; 00020 class DtFixedGridDataDistMgr; 00021 00024 00025 class DT_DLL_LRC DtFixedGridObjectDataDistMgr : public DtObjectMgr 00026 { 00027 protected: 00028 00030 DtFixedGridObjectDataDistMgr(DtFederateMgr* fedMgrPtr); 00031 00032 public: 00033 00035 virtual ~DtFixedGridObjectDataDistMgr(); 00036 00037 private: 00038 00040 DtFixedGridObjectDataDistMgr(DtFixedGridObjectDataDistMgr const& ); 00041 00043 DtFixedGridObjectDataDistMgr& operator= (DtFixedGridObjectDataDistMgr const& ); 00044 00045 public: 00046 00048 virtual DtFixedGridDataDistMgr* ddmMgr(); 00049 virtual DtFixedGridDataDistMgr* ddmMgr() const; 00050 00052 virtual void subscribe( 00053 DtObjectClassHandle theClass, 00054 const DtAttributeHandleSet& attributeList, 00055 bool active); 00056 00059 virtual void registerAssociateRegionForUpdates(DtRtiObject& object, 00060 DtAttributeHandleSet const& attributes, DtRegion& region); 00061 00062 #ifdef DtIFSPEC1516 00063 00064 00065 virtual void sendRequestMsg( 00066 DtRequestType type, unsigned long idOrClass, 00067 const DtAttributeHandleSet& theSet, 00068 rti1516::VariableLengthData const & tag, 00069 bool anonymous, 00070 DtHandle regionHandle = 0); 00071 #elif defined(DtIFSPEC1516E) 00072 00073 00074 virtual void sendRequestMsg( 00075 DtRequestType type, unsigned long idOrClass, 00076 const DtAttributeHandleSet& theSet, 00077 rti1516e::VariableLengthData const & tag, 00078 bool anonymous, 00079 DtHandle regionHandle = 0); 00080 #endif 00081 00083 virtual void deleteRegion(DtRegion& region); 00084 00085 protected: 00086 00088 virtual void associateRegionWithObject(DtObjectInstanceHandle handle, 00089 DtFixedGridRegion* region); 00090 00093 virtual void unassociateRegionFromObject(DtObjectInstanceHandle handle, 00094 DtFixedGridRegion* region=0); 00095 00097 virtual DtFixedGridRegion* regionAssociatedWithObject(DtObjectInstanceHandle handle); 00098 00104 virtual void checkForRegionalSubscribe(DtObjectClassInfo& info); 00105 00110 virtual void acquireAssociateRegionForUpdates( 00111 DtObjectInstanceHandle theObject, 00112 const DtAttributeHandleSet& theAttributes); 00113 00116 virtual void unassociateRegionForDivested( 00117 DtRtiObject& obj, const DtAttributeHandleSet& set, bool atomic); 00118 00122 virtual bool acceptObjectChannel(unsigned long channel); 00123 00126 virtual bool acceptRequestChannel(unsigned long channel); 00127 00129 virtual void deleteObj(DtRtiObject* obj, bool isLocalDelete); 00130 00132 virtual void sendRegisterMsg(DtRtiObject* object); 00133 00135 virtual void sendUpdateMessage( DtUpdateMsg* update, 00136 DtObjectClassInfo* classDesc, DtUpdateType updateType, 00137 MAKRti::DtTransportType trans, unsigned int numberAttrs, 00138 MAKRti::DtInetAddr destAddr = MAKRti::DtInetAddr::inaddrAny(), 00139 unsigned int offset = 0); 00140 00141 00142 #ifdef DtIFSPEC13 00143 00144 virtual void sendRequestMsg( 00145 DtRequestType type, unsigned long idOrClass, 00146 const DtAttributeHandleSet& theSet, 00147 char const * tag, 00148 bool anonymous, 00149 DtHandle regionHandle = 0); 00150 #endif 00151 00153 virtual void sendPublishMsg(DtObjectClassHandle handle, 00154 const DtAttributeHandleSet& theSet); 00155 00157 virtual void sendUnpublishMsg(DtObjectInstanceHandle handle, 00158 const DtAttributeHandleSet& theSet); 00159 00161 virtual void sendSubscribeMsg(DtObjectClassHandle theObj, 00162 bool isPassive, bool replacement, 00163 const DtAttributeHandleSet& theSet); 00164 00166 virtual void sendUnsubscribeMsg(DtObjectClassHandle handle, 00167 const DtAttributeHandleSet& theSet); 00168 00169 #if 0 00170 virtual unsigned long sendDeleteMsg(DtObjectInstanceHandle handle, 00171 DtOrderHandle orderType, 00172 RTI::FedTime const * theTime, 00173 char const * tag); 00174 00176 virtual void sendDiscoverMsg(DtObjectInstanceHandle objHandle, 00177 DtObjectClassHandle classHandle); 00178 virtual void sendRequestDiscoverMsg(DtObjectInstanceHandle objHandle); 00179 virtual void sendRemoveDiscoverMsg(DtObjectInstanceHandle objHandle); 00180 #endif 00181 00182 protected: 00183 00185 typedef std::set<DtFixedGridRegion*> DtFixedGridRegionSet; 00186 00188 typedef std::map<DtObjectClassHandle, DtFixedGridRegionSet> DtFixedGridObjectClassRegionMap; 00189 00191 typedef std::map<DtObjectInstanceHandle, DtFixedGridRegion*> DtFixedGridObjectRegionMap; 00192 00193 protected: 00194 00196 DtFixedGridObjectRegionMap myObjectRegionMap; 00197 00199 DtFixedGridObjectClassRegionMap myObjectClassRegionMap; 00200 00202 DtFixedGridRegion* myRegisterRegion; 00203 }; 00204 00205 #endif 00206 #endif 00207 00208