MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
hlaMessageState.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef hlaMessageState_H_
11 #define hlaMessageState_H_
12 
13 #if DtHLA
14 
15 #include <lgrSim/lgrSim.h>
16 #include <lgrCore/messageState.h>
17 #include <lgrSim/lgrHlaAttribute.h>
19 #include <lgrUtil/memoryBuffer.h>
20 
21 #include <vl/rtiNamespace.h>
22 #include <list>
23 #include <string>
24 #include <set>
25 
26 class DtHlaObject;
27 
28 namespace MAKLogger
29 {
30  class DtBaseFomDesc;
31  class DtLgrHlaSimulationManager;
32 
35  class DT_DLL_LGRSIM DtLgrHlaMessageState : public DtMessageState
36  {
37 
38  public:
39 
40  DT_VIRTUAL_CTR_DEFAULTS( DtLgrHlaMessageState,
41  (const DtLgrHlaSimulationManager* simMgr),
42  (const DtLgrHlaSimulationManager* simMgr=0) )
43 
44  virtual ~DtLgrHlaMessageState();
45 
48  virtual void setInputInfo(const DtMessageIOInfo* info);
49  virtual void setOutputInfo(const DtMessageIOInfo* info);
50 
53  virtual void modifyMessages(DtMessageBuffer& messages) const;
54 
60  virtual void modifyMessage(DtPacket& packet) const;
61 
63  virtual void decodeCheckpoint(const DtPacket& packet,DtMessageBuffer& buffer, bool includeInteractions);
64 
66  virtual void decodeLinkedCheckpoint(const DtPacket& packet, DtMessageBuffer& messageBuffer,
67  bool includeInteractions);
68 
71  virtual DtPacket* generateCheckpoint(const DtAbsoluteTime& timestamp,bool includeInteractions);
72 
74  virtual bool isUpdateMessage(const DtPacket& packet) const;
75 
77  virtual bool isRemovalMessage(const DtPacket& packet) const;
78 
80  virtual bool isInteractionMessage(const DtPacket& packet) const;
81 
82  virtual void createUpdate(const DtStateObject& object, const DtAbsoluteTime& time,
83  std::list<DtPacket*>& packetlist) const;
84 
85  virtual DtPacket* createRemoval(const DtStateObject& object,
86  const DtAbsoluteTime& time) const;
87 
88  virtual void setInputFom(const DtBaseFomDesc* inputFom);
89  virtual void setOutputFom(const DtBaseFomDesc* outputFom);
90 
93  virtual DtStateObject* findObject(const DtHlaObject* object);
94 
95  inline const DtBaseFomDesc* inputFom() const {return myInputFom;}
96  inline const DtBaseFomDesc* outputFom() const {return myOutputFom;}
97 
99  virtual DtLgrHlaHandle mapObjectHandleInputToOutput(DtLgrHlaHandle handle) const;
100 
102  virtual DtLgrHlaHandle mapObjectHandleOutputToInput(DtLgrHlaHandle handle) const;
103 
105  virtual DtLgrHlaHandle mapInteractionHandleInputToOutput(DtLgrHlaHandle handle) const;
106 
107  protected:
108 
110  DtLgrHlaMessageState(const DtLgrHlaMessageState&);
111 
113  DtLgrHlaMessageState& operator=(const DtLgrHlaMessageState&);
114 
116  virtual void decodeCheckpoint(const char* checkpointBuffer, size_t bufferSize, DtAbsoluteTime time,
117  DtMessageBuffer& messageBuffer, bool includeInteractions);
118 
119  virtual void printMappingFailure(const std::string& classname, const std::string& message) const;
120 
121  virtual void activateState();
122  virtual void deactivateState();
123 
124  virtual bool mapMessageHandles(DtPacket* packet) const;
125 
126  protected:
127 
128  const DtBaseFomDesc* myInputFom;
129  const DtBaseFomDesc* myOutputFom;
130 
131  typedef std::map<DtLgrHlaHandle,DtLgrHlaHandle> HandleMap;
132 
133  mutable HandleMap myObjectHandleMap;
134  mutable HandleMap myReverseObjectHandleMap;
135  mutable HandleMap myInteractionHandleMap;
136 
137  mutable std::set<std::string> myMutablePrintedMappingFailures;
138  };
139 
140 }
141 
142 #endif
143 #endif

Document ID: Generated on Thu Apr 7 20:50:59 EDT 2016 from SVN revision 163818
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)