MAK Data Logger API Documentation for HLA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
hlaMessageState.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 DtHLA
13 
14 #include <lgrSim/lgrSim.h>
15 #include <lgrCore/messageState.h>
16 #include <lgrSim/lgrHlaAttribute.h>
18 #include <lgrUtil/memoryBuffer.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 
35  {
36 
37  public:
38 
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) const;
53 
59  virtual void modifyMessage(DtPacket& packet) const;
60 
62  virtual void decodeInitialState(const DtPacket& packet,DtMessageBuffer& buffer);
63 
65  virtual void decodeCheckpoint(const DtPacket& packet, DtMessageBuffer& buffer,
66  bool includeInteractions);
67 
69  virtual void decodeLinkedCheckpoint(const DtPacket& packet, DtMessageBuffer& messageBuffer,
70  bool includeInteractions);
71 
73  virtual bool isUpdateMessage(const DtPacket& packet) const;
74 
76  virtual bool isRemovalMessage(const DtPacket& packet) const;
77 
79  virtual bool isInteractionMessage(const DtPacket& packet) const;
80 
81  virtual void createUpdate(const DtStateObject& object, const DtAbsoluteTime* time,
82  std::list<DtPacket*>& packetlist) const;
83 
84  virtual DtPacket* createRemoval(const DtStateObject& object,
85  const DtAbsoluteTime& time) const;
86 
87  virtual void setInputFom(const DtBaseFomDesc* inputFom);
88  virtual void setOutputFom(const DtBaseFomDesc* outputFom);
89 
92  virtual DtStateObject* findObject(const DtHlaObject* object);
93 
94  inline const DtBaseFomDesc* inputFom() const {return myInputFom;}
95  inline const DtBaseFomDesc* outputFom() const {return myOutputFom;}
96 
98  virtual DtLgrHlaHandle mapObjectHandleInputToOutput(DtLgrHlaHandle handle) const;
99 
101  virtual DtLgrHlaHandle mapObjectHandleOutputToInput(DtLgrHlaHandle handle) const;
102 
104  virtual DtLgrHlaHandle mapInteractionHandleInputToOutput(DtLgrHlaHandle handle) const;
105 
106  protected:
107 
110 
112  DtLgrHlaMessageState& operator=(const DtLgrHlaMessageState&);
113 
118  virtual size_t decodeState(const char* checkpointBuffer, size_t bufferSize,
119  const DtAbsoluteTime& stateTime, DtMessageBuffer& messageBuffer, bool includeInteractions);
120 
125  virtual DtPacket* createInitialStatePacket(const DtMessageBuffer& initialStateBuffer,
126  const DtAbsoluteTime& timestamp, double offsetTime);
127 
129  virtual DtPacket* createCheckpointPacket(const DtMessageBuffer& checkpointBuffer,
130  const DtAbsoluteTime& timestamp);
131 
133  virtual void fillWithStateData(const DtMessageBuffer& stateBuffer, char* data);
134 
135  virtual void printMappingFailure(const std::string& classname, const std::string& message) const;
136 
137  virtual void activateState();
138  virtual void deactivateState();
139 
140  virtual bool mapMessageHandles(DtPacket* packet) const;
141 
142  protected:
143 
146 
147  typedef std::map<DtLgrHlaHandle,DtLgrHlaHandle> HandleMap;
148 
152 
153  mutable std::set<std::string> myMutablePrintedMappingFailures;
154  };
155 
156 }
157 
158 #endif
159 
#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
const DtBaseFomDesc * outputFom() const
Definition: hlaMessageState.h:95
Defines IMPORT/EXPORT macros for lgrSim library.
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21
DtU32 DtLgrHlaHandle
Logger Psuedo Handle type.
Definition: hlaTimeStampedAttr.h:22
HandleMap myInteractionHandleMap
Definition: hlaMessageState.h:151
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
Contains MAKLogger::DtLgrHlaHandle typedef and MAKLogger::DtLgrValueReference and MAKLogger::DtLgrVal...
Contains MAKLogger::DtMessageState class.
Message buffer class responsible for storing a list of messages and iterating through that list...
Definition: messageBuffer.h:23
HandleMap myObjectHandleMap
Definition: hlaMessageState.h:149
The HLA simulation manager.
Definition: lgrHlaSimManager.h:84
const DtBaseFomDesc * myOutputFom
Definition: hlaMessageState.h:145
HandleMap myReverseObjectHandleMap
Definition: hlaMessageState.h:150
A message IO info object stores information about a specific message input or output stage...
Definition: messageIoInfo.h:21
A generic packed of typed binary data.
Definition: packet.h:41
HLA Specific State.
Definition: hlaMessageState.h:34
Contains MAKLogger::DtMemoryBuffer class.
The Abstract message state maintained by the logger.
Definition: messageState.h:33
std::map< DtLgrHlaHandle, DtLgrHlaHandle > HandleMap
Definition: hlaMessageState.h:147
std::set< std::string > myMutablePrintedMappingFailures
Definition: hlaMessageState.h:153
const DtBaseFomDesc * myInputFom
Definition: hlaMessageState.h:144
const DtBaseFomDesc * inputFom() const
Definition: hlaMessageState.h:94
Absolute Time, a particular measured instance in time, could be thought of as a set of relative times...
Definition: absoluteTime.h:82
class DtBaseFomDesc:
Definition: baseFomDesc1516.h:88

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)