MAK Data Logger API Documentation for HLA
messageState.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #ifndef messageState_H_
10 #define messageState_H_
11 
12 #include "lgrCore.h"
13 #include "observeEvent.h"
14 #include <vlutil/vlMachineTypes.h>
15 #include <list>
16 #include <map>
17 
18 namespace MAKLogger
19 {
20  class DtMessageBuffer;
21  class DtStateObject;
22  class DtPacket;
23  class DtMessageIOInfo;
24  class DtAbsoluteTime;
25  class DtLgrSimManager;
26 
32  {
33  public:
34 
36  {
39  ProcessFirstCheckpoint
40  };
41 
44  virtual ~DtMessageState();
45 
47  virtual void startDiff();
48 
50  virtual void generateDiff(DtMessageBuffer& stateBuffer,
51  const DtAbsoluteTime& time);
52 
54  virtual void endDiff();
55 
64  virtual void updateState(DtMessageBuffer& stateBuffer);
65 
66 
76  virtual void updateState(DtPacket* packet);
77 
79  virtual void postUpdate();
80 
89  virtual void setState(DtMessageBuffer& completeStateBuffer,const DtAbsoluteTime& time);
90 
96  virtual void clearState(DtMessageBuffer& emptyBuffer,
97  const DtAbsoluteTime& time);
98 
103  virtual void getState(DtMessageBuffer& emptyBuffer,const DtAbsoluteTime& time);
104 
105 
107  virtual void activate();
108 
110  virtual void deactivate();
111 
113 
114 
115  virtual DtStateObject* findObject(DtU64 uniqueId);
116  virtual const DtStateObject* findObject(DtU64 uniqueId) const;
118 
120 
121 
122  virtual DtStateObject* findObjectByName(const DtString& name);
123  virtual const DtStateObject* findObjectByName(const DtString& name) const;
125 
127 
128 
130  virtual void setInputInfo(const DtMessageIOInfo* info);
131 
133  virtual void setOutputInfo(const DtMessageIOInfo* info);
134 
136  virtual void decodeCheckpoint(const DtPacket& packet,DtMessageBuffer& buffer) = 0;
137 
139  virtual DtPacket* generateCheckpoint(const DtAbsoluteTime& timestamp) = 0;
140 
142 
144  virtual const std::list<DtStateObject*>& stateObjectList() const;
145 
147 
148 
149  virtual DtObserveEvent<DtMessageState>* inputChangedEvent();
150  virtual DtObserveEvent<DtMessageState>* outputChangedEvent();
151  virtual DtObserveEvent<DtMessageState>* stateModifiedEvent();
152  virtual DtObserveEvent<DtMessageState>* stateActivatedEvent();
153  virtual DtObserveEvent<DtMessageState>* stateDeactivatedEvent();
154  virtual DtObserveEvent<DtMessageState>* endDiffEvent();
155  virtual DtObserveEvent<DtStateObject>* objectAddedEvent();
156  virtual DtObserveEvent<DtStateObject>* objectToBeRemovedEvent();
157  virtual DtObserveEvent<DtStateObject>* objectUpdatedEvent();
159 
161  virtual void clearState();
162 
164  virtual CheckpointProcessing processCheckpoints();
165 
167  virtual void setProcessCheckpoints(CheckpointProcessing value);
168 
174  virtual void modifyMessages(DtMessageBuffer& messages);
175 
180  virtual void modifyMessage(DtPacket& packet) = 0;
181 
184  virtual bool isCheckpointMessage(const DtPacket& packet) const;
185 
187  virtual bool isUpdateMessage(const DtPacket& packet) const = 0;
188 
190  virtual bool isRemovalMessage(const DtPacket& packet) const = 0;
191 
193  virtual void createUpdate(const DtStateObject& object,
194  const DtAbsoluteTime& time, std::list<DtPacket*>& packetlist ) const = 0;
195 
197  virtual DtPacket* createRemoval(const DtStateObject& object,
198  const DtAbsoluteTime& time) const = 0;
199 
203  virtual bool removeStateObject(const DtPacket& packet);
204 
205  protected:
206 
208  DtMessageState(const DtLgrSimManager* simMgr=0);
209 
212 
214  DtMessageState& operator=(const DtMessageState&);
215 
217  virtual void activateState() = 0;
218 
220  virtual void deactivateState() = 0;
221 
228  virtual bool updateStateObjects(const DtPacket& packet);
229 
233  virtual DtStateObject* createStateObject(const DtPacket& packet);
234 
238  virtual DtStateObject* updateStateObject(const DtPacket& packet);
239 
243  virtual DtStateObject* findStateObject(const DtPacket& packet);
244 
246  virtual void removeStateObject(const DtStateObject* object);
247 
248  protected:
249 
251  typedef std::list<DtStateObject*> DtStateObjectList;
252 
254  typedef std::map<DtU64,DtStateObject*> DtStateObjectMap;
255 
257  typedef std::map<DtString, DtStateObject*> DtStateObjectNameMap;
258 
261 
264 
267 
270 
273 
275 
286 
288 
290  };
291 
292 }
293 
294 #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)