MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrDisSimOutput.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/lgrSimOutput.h>
16 #include <map>
18 
19 #include <vl/objectId.h>
20 
21 class DtEntityPublisher;
22 class DtAggregatePublisher;
23 class DtPdu;
24 class DtExerciseConn;
25 
26 namespace MAKLogger
27 {
28 
29  class DtLgrDisSimulationManager;
30  class DtLgrDisMessageIOInfo;
31  class DtMessageIOInfo;
32  class DtConstLgrDisMessage;
33  class DtLgrPublisherInterface;
34 
38  {
39  public:
40 
43 
44  virtual ~DtLgrDisSimOutput();
45 
46  private:
50  DtLgrDisSimOutput& operator=(const DtLgrDisSimOutput&);
51  public:
52 
53 
54  virtual DtLgrSimOutput::PacketSenderType packetSenderType(const DtPacket&) const;
55 
57  virtual void disconnecting();
58 
61  virtual void activateImplementation();
62 
65  virtual void deactivateImplementation();
66 
67  virtual const DtMessageIOInfo* info() const;
68 
69  virtual void flush();
70 
72  virtual void setOutputScaling(double scaling, bool enableStatic, bool isPaused=false);
73 
77 
79  virtual void filterMessage(DtPacket* packet);
80 
81  virtual void removeEntity(const DtString& name);
82  virtual void removeEntity(DtPduKind kind, DtObjectId id);
83  virtual void removeEntity(DtConstLgrDisMessage&);
84 
86 
87  virtual void setExConnSimTime(DtTime time);
88  virtual DtTime exConnSimTime() const;
90 
92  virtual DtExerciseConn* exerciseConn();
93 
95  virtual const DtExerciseConn* exerciseConn() const;
96 
97  protected:
98 
100  virtual void retainedSend(const DtPacket&);
101 
103  virtual void immediateSend(const DtPacket&) const;
104 
105  virtual void sendPacket(const DtPacket& packet);
106 
107  virtual void parsePdu(const DtPdu* pdu) const;
108 
109  virtual void parsePacket(const DtPacket& packet);
110 
111  virtual void updateEntity(DtConstLgrDisMessage&);
112 
114  virtual void clearPublishers();
115 
117  virtual void getUpdates(DtMessageBuffer& stateBuffer, const DtAbsoluteTime& time);
118 
119  virtual void rescalePublishers(double oldScale,double newScale,
120  bool wasStatic, bool isStatic);
121 
122  //If no DIS override version is set, adjust DIS version to send to match DIS version of PDU from tape.
123  virtual void adjustProtocolVersionToSend(int pduDisVersion);
124 
125  //If no DIS override version is set, reset DIS version to default version.
126  virtual void resetProtocolVersionToSend();
127 
128  typedef std::pair<DtPduKind,DtObjectId> UniqueObjectId;
129 
130  typedef std::map<UniqueObjectId,DtLgrPublisherInterface*> ObjectPublisherMap;
131 
133 
135 
138 
141 
144 
146  mutable int mySendCount;
147 
148  //Save default DIS version
150  };
151 
152 }
153 
154 #endif
155 
DIS simulation output.
Definition: lgrDisSimOutput.h:37
Defines IMPORT/EXPORT macros for lgrSim library.
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21
#define DT_VIRTUAL_BASE_CTR(BASE_NAME, ARG_TYPES_LIST)
Declare a Virtual Base Constructor Create using DT_VIRTUAL_CTR(CLASS_NAME,ARG_TYPES_LIST) Where BASE_...
Definition: virtualConstructor.h:118
#define DT_VIRTUAL_CTR(CLASS_NAME, ARG_TYPES_LIST)
Declare a Virtual Constructor Create using DT_VIRTUAL_CTR(CLASS_NAME,ARG_TYPES_LIST) Where CLASS_NAME...
Definition: virtualConstructor.h:34
The DIS Simulation manager manages the DIS simulation settings.
Definition: lgrDisSimManager.h:45
ObjectPublisherMap myObjectPublisherMap
Definition: lgrDisSimOutput.h:134
bool myIsPaused
Tape is paused.
Definition: lgrDisSimOutput.h:143
DtLgrDisMessageIOInfo * myMessageInfo
The protocol specific information about the output.
Definition: lgrDisSimOutput.h:137
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
virtual void setOutputScaling(double scale)
Set/Get the output scaling.
Message buffer class responsible for storing a list of messages and iterating through that list...
Definition: messageBuffer.h:23
bool myOutputStatic
Whether output should be static.
Definition: lgrDisSimOutput.h:140
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
PacketSenderType
Definition: lgrSimOutput.h:72
The abstract interface which defines the output to a simulation.
Definition: lgrSimOutput.h:26
std::pair< DtPduKind, DtObjectId > UniqueObjectId
Definition: lgrDisSimOutput.h:128
DtLgrDisSimulationManager & myDisManager
Definition: lgrDisSimOutput.h:132
int myDefaultDISVersion
Definition: lgrDisSimOutput.h:149
int mySendCount
Mutable internal counter.
Definition: lgrDisSimOutput.h:146
std::map< UniqueObjectId, DtLgrPublisherInterface * > ObjectPublisherMap
Definition: lgrDisSimOutput.h:130
Responsible for providing info about the DIS input/output.
Definition: lgrDisMessageIoInfo.h:24
Contains MAKLogger::DtLgrSimOutput subclass of MAKLogger::DtMessageOutput.
Absolute Time, a particular measured instance in time, could be thought of as a set of relative times...
Definition: absoluteTime.h:82
DIS message.
Definition: disPacket.h:27

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)