hlaPacket.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
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

Document ID: Generated on Tue Oct 11 19:41:03 EDT 2011 from SVN revision 107422
Copyright © 2005-2011 VT MÄK Inc. All Rights Reserved (www.mak.com)