MAK Data Logger API Documentation for DIS
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.h"
16 #include "messageState.h"
17 #include "lgrHlaAttribute.h"
18 #include "virtualConstructor.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);
53 
59  virtual void modifyMessage(DtPacket& packet);
60 
62  virtual void decodeCheckpoint(const DtPacket& packet,DtMessageBuffer& buffer);
63 
66  virtual DtPacket* generateCheckpoint(const DtAbsoluteTime& timestamp);
67 
68  virtual bool isUpdateMessage(const DtPacket& packet) const;
69  virtual bool isRemovalMessage(const DtPacket& packet) const;
70 
71  virtual void createUpdate(const DtStateObject& object, const DtAbsoluteTime& time,
72  std::list<DtPacket*>& packetlist) const;
73 
74  virtual DtPacket* createRemoval(const DtStateObject& object,
75  const DtAbsoluteTime& time) const;
76 
77  virtual void setInputFom(const DtBaseFomDesc* inputFom);
78  virtual void setOutputFom(const DtBaseFomDesc* outputFom);
79 
82  virtual DtStateObject* findObject(const DtHlaObject* object);
83 
84  inline const DtBaseFomDesc* inputFom() const {return myInputFom;}
85  inline const DtBaseFomDesc* outputFom() const {return myOutputFom;}
86 
88  virtual DtLgrHlaHandle mapObjectHandleInputToOutput(DtLgrHlaHandle handle) const;
89 
91  virtual DtLgrHlaHandle mapObjectHandleOutputToInput(DtLgrHlaHandle handle) const;
92 
94  virtual DtLgrHlaHandle mapInteractionHandleInputToOutput(DtLgrHlaHandle handle) const;
95 
96  protected:
97 
99  DtLgrHlaMessageState(const DtLgrHlaMessageState&);
100 
102  DtLgrHlaMessageState& operator=(const DtLgrHlaMessageState&);
103 
104  virtual void printMappingFailure(const std::string& classname, const std::string& message);
105 
106  virtual void activateState();
107  virtual void deactivateState();
108 
109  virtual bool mapMessageHandles(DtPacket* packet);
110 
111  protected:
112 
113  const DtBaseFomDesc* myInputFom;
114  const DtBaseFomDesc* myOutputFom;
115 
116  typedef std::map<DtLgrHlaHandle,DtLgrHlaHandle> HandleMap;
117 
118  mutable HandleMap myObjectHandleMap;
119  mutable HandleMap myReverseObjectHandleMap;
120  mutable HandleMap myInteractionHandleMap;
121 
122  std::set<std::string> myPrintedMappingFailures;
123  };
124 
125 }
126 
127 #endif
128 #endif

Document ID: Generated on Thu Apr 10 18:53:01 EDT 2014 from SVN revision 138105
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)