Go to the documentation of this file.00001
00002
00003
00004
00005
00009
00010 #ifndef hlaPacket_H_
00011 #define hlaPacket_H_
00012
00013 #if DtHLA
00014
00015 #include "lgrSim.h"
00016 #include "hlaMessageFactory.h"
00017 #include "lgrHlaAttribute.h"
00018
00019 #include <vl/rtiNamespace.h>
00020 #include <vlutil/vlString.h>
00021 #include <vector>
00022
00024 class DtInteraction;
00025 class DtInteractionFactory;
00026
00027 namespace MAKLogger
00028 {
00029
00030 class DtPacket;
00031 class DtLgrOnlineFomDesc;
00032 class DtBaseFomDesc;
00033
00036 class DT_DLL_LGRSIM DtLgrStateMsg
00037 {
00038 public:
00039
00041 #if DtHLA_1516
00042 DtLgrStateMsg(RTI::ObjectHandle classHandle, RTI::AttributeHandleValueMap* rtiAttrs);
00043 #else
00044 DtLgrStateMsg(RTI::ObjectHandle classHandle, RTI::AttributeHandleValuePairSet* rtiAttrs);
00045 #endif
00046
00048 virtual ~DtLgrStateMsg();
00049
00051 virtual DtStateMsg* stateMsg();
00052
00053 protected:
00054
00056 DtLgrStateMsg(const DtLgrStateMsg& orig);
00057
00059 const DtLgrStateMsg& operator=(const DtLgrStateMsg& orig);
00060
00061 protected:
00062
00064 DtStateMsg* myStateMsg;
00065
00066 #if DtHLA_1516
00067 RTI::AttributeHandleValueMap* myRtiAttrs;
00068 #else
00069 RTI::AttributeHandleValuePairSet* myRtiAttrs;
00070 #endif
00071
00072 };
00073
00074
00075 class DT_DLL_LGRSIM DtConstLgrHlaMessage
00076 {
00077
00078 public:
00079
00081 DtConstLgrHlaMessage(const DtPacket* packet);
00082
00084 DtConstLgrHlaMessage(const DtPacket& packet);
00085
00087 virtual ~DtConstLgrHlaMessage();
00088
00090 bool isUpdate() const;
00091
00093 bool isMultiUpdate() const;
00094
00096 bool isDDMUpdate() const;
00097
00099 bool isRemoval() const;
00100
00102 bool isInteraction() const;
00103
00105 DtLgrHlaHandle objectHandle() const;
00106
00108 DtString objectName() const;
00109
00112 DtString asciiTag() const;
00113
00115 DtLgrVariableLengthData binaryTag() const;
00116
00118 DtLgrHlaHandle objectClassHandle() const;
00119
00121 DtLgrHlaHandle interactionClassHandle() const;
00122
00125 bool getInteractionRegionID( DtRegionID& regionID, unsigned int index = 0) const;
00126
00129 bool getObjectRegionID( DtRegionID& regionID, unsigned int index = 0 ) const;
00130
00133 unsigned int getObjectRegionIdSet( DtRegionIDSet& regionIDSet );
00134
00137 unsigned int getInteractionRegionIdSet( DtRegionIDSet& regionIDSet );
00138
00141 DtLgrHandleValueMap* createAttrs() const;
00142
00144 DtLgrHandleValueMap* createParams() const;
00145
00149 const DtLgrHandleValueReferenceMap* referenceAttrs() const;
00150
00154 const DtLgrHandleValueReferenceMap* referenceParams() const;
00155
00160 DtDDMRegionSP interactionDDMRegion(const DtExerciseConn *exerciseConn,
00161 unsigned int index=0, DtIDRegionMap* regionCache=0, bool updateRegion=false ) const;
00162
00167 DtDDMRegionSP objectDDMRegion(const DtExerciseConn *exerciseConn,
00168 unsigned int index=0, DtIDRegionMap* regionCache=0, bool updateRegion=false ) const;
00169
00175 unsigned int getInteractionDDMRegionSet(const DtExerciseConn *exerciseConn,
00176 DtDDMRegionSet& regionSet, DtIDRegionMap* regionCache=0, bool updateRegions=false ) const;
00177
00183 unsigned int getObjectDDMRegionSet(const DtExerciseConn *exerciseConn,
00184 DtDDMRegionSet& regionSet, DtIDRegionMap* regionCache=0, bool updateRegions=false ) const;
00185
00189 unsigned int getInteractionDDMRegionDescSet(DtRegionDescSet& regionSet) const;
00190
00194 unsigned int getObjectDDMRegionDescSet(DtRegionDescSet& regionSet) const;
00195
00196 DtInteraction* createInteraction(DtInteractionFactory* factory,
00197 const DtLgrOnlineFomDesc& fom) const;
00198
00201 DtLgrStateMsg* createStateMsg(const DtLgrOnlineFomDesc& fom) const;
00202
00203
00206 DtLgrStateMsg** createMultiStateMsgs(const DtLgrOnlineFomDesc& fom,int& count) const;
00207
00209 void paramHandles(std::vector<DtLgrHlaHandle>&) const;
00210
00212 void attrHandles(std::vector<DtLgrHlaHandle>& handles) const;
00213
00214 const DtPacket* packet() const;
00215
00216 protected:
00217 const DtPacket* myConstPacket;
00218 };
00219
00220 class DT_DLL_LGRSIM DtLgrHlaMessage : public DtConstLgrHlaMessage
00221 {
00222
00223 public:
00224
00226 DtLgrHlaMessage(DtPacket* packet);
00227
00229 virtual ~DtLgrHlaMessage();
00230
00233 void setObjectHandle(DtLgrHlaHandle handle);
00234
00237 void setObjectClassHandle(DtLgrHlaHandle handle);
00238
00241 void setInteractionClassHandle(DtLgrHlaHandle handle);
00242
00246 DtLgrHandleValueReferenceMap* referenceAttrs();
00247
00251 DtLgrHandleValueReferenceMap* referenceParams();
00252
00254 void setParamHandles(const std::vector<DtLgrHlaHandle>&);
00255
00257 void setAttrHandles(const std::vector<DtLgrHlaHandle>& handles);
00258
00259 protected:
00260 DtPacket* myPacket;
00261 };
00262
00263 }
00264
00265 #endif
00266 #endif