MAK Data Logger API Documentation for HLA
 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-2025 MAK Technologies, Inc
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 
32  class DT_DLL_LGRSIM DtLgrDisMessageState : public DtMessageState
33  {
34  public:
35 
36  typedef std::set<DtPduKind> DtPduKindSet;
37 
38  struct NetInitialStateUpdateHeader
39  {
40  DtNetFloat64 arrivalTime;
41  };
42 
43  DT_VIRTUAL_CTR_DEFAULTS( DtLgrDisMessageState,
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 
#define DT_VIRTUAL_CTR_DEFAULTS(CLASS_NAME, ARG_TYPES_LIST, ARG_DEFAULTS_LIST)
Declare a Virtual Constructor Create using DT_VIRTUAL_CTR_DEFAULTS(CLASS_NAME,ARG_TYPES_LIST,ARG_DEFAULTS_LIST) Where CLASS_NAME = the name of the class being declared Where ARG_TYPES_LIST = a list (ie in side parentheses) of comma seperated types Where ARG_DEFAULTS_LIST = a list (ie in side parentheses) of comma seperated types with default values specified.
Definition: virtualConstructor.h:63
Defines IMPORT/EXPORT macros for lgrSim library.
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
Contains MAKLogger::DtMessageState class.
class DT_DLL_LGRUTIL DtAbsoluteTime
Definition: absoluteTime.h:22
Contains MAKLogger::DtMemoryBuffer class.

Document ID: Generated on Thu Dec 18 15:35:09 EST 2025 from SVN revision 282494
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)