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-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 
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 
#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
std::set< DtPduKind > DtPduKindSet
Definition: lgrDisMessageState.h:36
The DIS Simulation manager manages the DIS simulation settings.
Definition: lgrDisSimManager.h:45
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
A generic object that has state.
Definition: stateObject.h:27
Responsible for maintaining a DIS simulation state.
Definition: lgrDisMessageState.h:32
Contains MAKLogger::DtMessageState class.
Message buffer class responsible for storing a list of messages and iterating through that list...
Definition: messageBuffer.h:23
DtNetFloat64 arrivalTime
Definition: lgrDisMessageState.h:40
A generic packed of typed binary data.
Definition: packet.h:41
Contains MAKLogger::DtMemoryBuffer class.
The Abstract message state maintained by the logger.
Definition: messageState.h:33
Absolute Time, a particular measured instance in time, could be thought of as a set of relative times...
Definition: absoluteTime.h:82

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)