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-2016 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #if DtHLA
13 
14 #include <lgrSim/lgrSim.h>
15 #include <lgrCore/messageState.h>
16 #include <lgrSim/lgrHlaAttribute.h>
18 #include <lgrUtil/memoryBuffer.h>
19 
20 #include <vl/rtiNamespace.h>
21 #include <list>
22 #include <string>
23 #include <set>
24 
25 class DtHlaObject;
26 
27 namespace MAKLogger
28 {
29  class DtBaseFomDesc;
30  class DtLgrHlaSimulationManager;
31 
34  class DT_DLL_LGRSIM DtLgrHlaMessageState : public DtMessageState
35  {
36 
37  public:
38 
39  DT_VIRTUAL_CTR_DEFAULTS( DtLgrHlaMessageState,
40  (const DtLgrHlaSimulationManager* simMgr),
41  (const DtLgrHlaSimulationManager* simMgr=0) )
42 
43  virtual ~DtLgrHlaMessageState();
44 
47  virtual void setInputInfo(const DtMessageIOInfo* info);
48  virtual void setOutputInfo(const DtMessageIOInfo* info);
49 
52  virtual void modifyMessages(DtMessageBuffer& messages) const;
53 
59  virtual void modifyMessage(DtPacket& packet) const;
60 
62  virtual void decodeInitialState(const DtPacket& packet,DtMessageBuffer& buffer);
63 
65  virtual void decodeCheckpoint(const DtPacket& packet, DtMessageBuffer& buffer,
66  bool includeInteractions);
67 
69  virtual void decodeLinkedCheckpoint(const DtPacket& packet, DtMessageBuffer& messageBuffer,
70  bool includeInteractions);
71 
73  virtual bool isUpdateMessage(const DtPacket& packet) const;
74 
76  virtual bool isRemovalMessage(const DtPacket& packet) const;
77 
79  virtual bool isInteractionMessage(const DtPacket& packet) const;
80 
81  virtual void createUpdate(const DtStateObject& object, const DtAbsoluteTime* time,
82  std::list<DtPacket*>& packetlist) const;
83 
84  virtual DtPacket* createRemoval(const DtStateObject& object,
85  const DtAbsoluteTime& time) const;
86 
87  virtual void setInputFom(const DtBaseFomDesc* inputFom);
88  virtual void setOutputFom(const DtBaseFomDesc* outputFom);
89 
92  virtual DtStateObject* findObject(const DtHlaObject* object);
93 
94  inline const DtBaseFomDesc* inputFom() const {return myInputFom;}
95  inline const DtBaseFomDesc* outputFom() const {return myOutputFom;}
96 
98  virtual DtLgrHlaHandle mapObjectHandleInputToOutput(DtLgrHlaHandle handle) const;
99 
101  virtual DtLgrHlaHandle mapObjectHandleOutputToInput(DtLgrHlaHandle handle) const;
102 
104  virtual DtLgrHlaHandle mapInteractionHandleInputToOutput(DtLgrHlaHandle handle) const;
105 
106  protected:
107 
109  DtLgrHlaMessageState(const DtLgrHlaMessageState&);
110 
112  DtLgrHlaMessageState& operator=(const DtLgrHlaMessageState&);
113 
118  virtual size_t decodeState(const char* checkpointBuffer, size_t bufferSize,
119  const DtAbsoluteTime& stateTime, DtMessageBuffer& messageBuffer, bool includeInteractions);
120 
125  virtual DtPacket* createInitialStatePacket(const DtMessageBuffer& initialStateBuffer,
126  const DtAbsoluteTime& timestamp, double offsetTime);
127 
129  virtual DtPacket* createCheckpointPacket(const DtMessageBuffer& checkpointBuffer,
130  const DtAbsoluteTime& timestamp);
131 
133  virtual void fillWithStateData(const DtMessageBuffer& stateBuffer, char* data);
134 
135  virtual void printMappingFailure(const std::string& classname, const std::string& message) const;
136 
137  virtual void activateState();
138  virtual void deactivateState();
139 
140  virtual bool mapMessageHandles(DtPacket* packet) const;
141 
142  protected:
143 
144  const DtBaseFomDesc* myInputFom;
145  const DtBaseFomDesc* myOutputFom;
146 
147  typedef std::map<DtLgrHlaHandle,DtLgrHlaHandle> HandleMap;
148 
149  mutable HandleMap myObjectHandleMap;
150  mutable HandleMap myReverseObjectHandleMap;
151  mutable HandleMap myInteractionHandleMap;
152 
153  mutable std::set<std::string> myMutablePrintedMappingFailures;
154  };
155 
156 }
157 
158 #endif
159 

Document ID: Generated on Tue Aug 1 09:00:26 EDT 2017 from SVN revision 179128
Copyright © 2017 VT MÄK. All Rights Reserved (www.mak.com)