hlaStateObject.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 hlaStateObject_H_
00011 #define hlaStateObject_H_
00012 
00013 #include "lgrSim.h"
00014 
00015 #include "stateObject.h"
00016 #include "absoluteTime.h"
00017 #include "hlaMessageFactory.h"
00018 #include "hlaTimeStampedAttr.h"
00019 
00020 #include <list>
00021 #include <map>
00022 
00023 #include <vl/rtiCompatibility.h>
00024 
00025 namespace MAKLogger
00026 {
00027    class DtLgrHlaMessage;
00028    class DtLgrHlaMessageState;
00029    class DtLgrHlaSimulationManager;
00030 
00033    class DT_DLL_LGRSIM DtHlaTimeStampledStateRep
00034    {
00035    public:
00036 
00037       DtHlaTimeStampledStateRep();
00038       ~DtHlaTimeStampledStateRep();
00039 
00040       void update(DtAbsoluteTime time,DtLgrHandleValueReferenceMap* attributes);
00041 
00042       //Generate a list of timed AHVPSets.
00043       void generate(DtTimedHandleValueMapList& outputList);
00044 
00045       typedef std::map<DtLgrHlaHandle,DtHlaTimeStampedAttribute*> HandleTimedAttributeMap;
00046       const HandleTimedAttributeMap& attributes() const;
00047 
00048    protected:
00049 
00050       HandleTimedAttributeMap myAttributes;
00051    };
00052 
00055    class DT_DLL_LGRSIM DtHlaStateObject : public DtStateObject
00056    {
00057 
00058    public:
00059 
00061       DT_VIRTUAL_CTR(DtHlaStateObject,(DtLgrHlaMessageState&,DtPacket&))
00062 
00063       
00064       DT_VIRTUAL_BASE_CTR(DtStateObject,(DtMessageState&,DtPacket&))
00065 
00066       
00067       virtual ~DtHlaStateObject();
00068 
00070       virtual bool isEntity() const;
00071 
00073       virtual bool isAggregate() const;
00074 
00076       virtual DtU64 uniqueId() const;
00077 
00079       virtual DtU64 uniqueId(const DtHlaObject* object) const;
00080 
00082       DtU64 packetId(DtPacket& packet) const;
00083 
00086       void setPacketId(DtU64,DtPacket&) const;
00087 
00089       virtual DtPacket* createUpdate(const DtAbsoluteTime& currentTime) const;
00090 
00092       virtual DtPacket* createUpdates(const DtAbsoluteTime& currentTime) const;
00093 
00095       virtual DtPacket* createRemoval(const DtAbsoluteTime& currentTime) const;
00096 
00098       virtual bool packetForMe(DtPacket&) const;
00099 
00101       virtual void updateViaPacket(DtPacket&);
00102 
00104       virtual DtHlaTimeStampledStateRep* attributes();
00105 
00107       virtual const DtRegionDescSet& regionSet() const;
00108 
00109       inline DtLgrHlaHandle objectHandle() const{ return myObjectHandle;}
00110       inline DtLgrHlaHandle classHandle() const{ return myClassHandle;}
00111       inline const DtString& name() const {return myName;}
00112       inline const DtString& tag() const { return myTag;}
00113 
00114    protected:
00115 
00116       DtLgrHlaHandle myObjectHandle;
00117       DtLgrHlaHandle myClassHandle;
00118       DtString myName;
00119       DtString myTag;
00120 
00121       DtLgrHlaMessageState* myState;
00122       DtHlaTimeStampledStateRep* myAttributes;
00123       DtRegionDescSet myRegions;
00124 
00125       mutable const DtBaseObjClassDesc* myClassDesc;
00126 
00127    };
00128 
00129 }
00130 
00131 #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)