MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrDisMessageState.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 DtDIS
13 
14 #include <lgrSim/lgrSim.h>
15 #include <lgrCore/messageState.h>
17 #include <lgrUtil/memoryBuffer.h>
18 
19 #include <list>
20 #include <set>
21 #include <vlpi/disEnums.h>
22 
23 enum DtPduKind;
24 
25 namespace MAKLogger
26 {
27 
28  class DtLgrDisSimulationManager;
29 
33  {
34  public:
35 
36  typedef std::set<DtPduKind> DtPduKindSet;
37 
39  {
40  DtNetFloat64 arrivalTime;
41  };
42 
44  (const DtPduKindSet& statePduKinds, const DtLgrDisSimulationManager* simMgr),
45  (const DtPduKindSet& statePduKinds, const DtLgrDisSimulationManager* simMgr=0))
46 
47  virtual ~DtLgrDisMessageState();
48 
51  virtual void modifyMessages(DtMessageBuffer& messages) const;
52 
54  virtual void modifyMessage(DtPacket& packet) const;
55 
57  virtual void decodeInitialState(const DtPacket& packet,DtMessageBuffer& buffer);
58 
60  virtual void decodeCheckpoint(const DtPacket& packet, DtMessageBuffer& messageBuffer,
61  bool includeInteractions);
62 
64  virtual void decodeLinkedCheckpoint(const DtPacket& packet, DtMessageBuffer& messageBuffer,
65  bool includeInteractions);
66 
68  virtual bool isUpdateMessage(const DtPacket& packet) const;
69 
71  virtual bool isUpdateMessage(DtPduKind pduKind) const;
72 
74  virtual bool isRemovalMessage(const DtPacket& packet) const;
75 
77  virtual bool isInteractionMessage(const DtPacket& packet) const;
78 
80  virtual bool isInteractionMessage(DtPduKind pduKind) const;
81 
83  virtual void createUpdate(const DtStateObject& object,const DtAbsoluteTime* time, std::list<DtPacket*>& packetlist) const;
84 
86  virtual DtPacket* createRemoval(const DtStateObject& object,const DtAbsoluteTime& time) const;
87 
88  virtual void setInputVersion(int disVersion);
89  virtual void setOutputVersion(int disVersion);
90 
91  protected:
92 
94  DtLgrDisMessageState(const DtLgrDisMessageState&);
95 
97  DtLgrDisMessageState& operator=(const DtLgrDisMessageState&);
98 
102  virtual int decodeState(const char* data, size_t bufferSize, const DtAbsoluteTime& time,
103  DtMessageBuffer& messageBuffer, bool includeInteractions, bool useStateHeader);
104 
108  virtual void decodeCheckpoint(const char* checkpointBuffer, size_t bufferSize, const DtAbsoluteTime& time,
109  DtMessageBuffer& messageBuffer, bool includeInteractions);
110 
115  virtual DtPacket* createInitialStatePacket(const DtMessageBuffer& initialStateBuffer,
116  const DtAbsoluteTime& timestamp, double offsetTime);
117 
119  virtual DtPacket* createCheckpointPacket(const DtMessageBuffer& checkpointBuffer,
120  const DtAbsoluteTime& timestamp);
121 
123  virtual void fillWithStateData(const DtMessageBuffer& stateBuffer, char* data, bool includeUpdateHeaders);
124 
125  virtual void activateState();
126  virtual void deactivateState();
127 
128  protected:
129 
130  DtPduKindSet myStatePduKinds;
131 
132  int myInputVersion;
133  int myOutputVersion;
134  };
135 
136 }
137 
138 #endif
139 

Document ID: Generated on Thu Jul 23 15:05:27 EDT 2020 from SVN revision 215371
Copyright © 2020 MAK Technologies. All Rights Reserved (www.mak.com)