MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrDisSimDriver.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2024 MAK Technologies, Inc
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #if DtDIS
11 
12 #pragma once
13 
14 #include <lgrSim/lgrSim.h>
15 #include <lgrCore/lgrSimDriver.h>
18 #include <lgrUtil/lgrExceptions.h>
20 
21 #include <map>
22 
23 #include <vlutil/vlInetAddr.h>
24 
25 class DtExerciseConnInitializer;
26 
27 namespace MAKLogger
28 {
29 
30  class DtCommand;
31  class DtDisDescriptor;
32  class DtLgrDisEntityTypeManager;
33  class DtLgrDisCommandFactory;
34  class DtLgrDisSimulationManager;
35  class DtLgrDisSimInterface;
36  class DtLgrSimDriver;
37  class DtLgrSystemDriver;
38  class DtLgrPduTypeFilter;
39  class DtLgrDisEntityTypeFilter;
40 
44  {
45  public:
46 
49 
51 
52  virtual ~DtLgrDisSimDriver();
53  virtual void tick();
54 
56  DtResponse setConnectionParameters(const DtCommand& command);
57 
59  DtResponse setDisVersion(const DtCommand& command);
60 
62  DtResponse setHeartbeatRate(const DtCommand& command);
63 
65  DtResponse setTimeoutRate(const DtCommand& command);
66 
68  DtResponse setDrainInputSettings(const DtCommand& command);
69 
70  virtual DtLgrSimManager* simManager();
71  virtual const DtLgrSimManager* simManager() const;
72 
73  virtual DtLgrDisSimulationManager* disSimManager();
74  virtual const DtLgrDisSimulationManager* disSimManager() const;
75 
76  virtual int port() const;
77  virtual int exerciseId() const;
78  virtual int siteId() const;
79  virtual int appNumber() const;
80  virtual bool useAsynchIO() const;
81  virtual DtInetAddr destAddr() const;
82  virtual DtInetAddr deviceAddr() const;
83  virtual const DtString& netmask() const;
84  virtual int sendBufferSize() const;
85  virtual int recvBufferSize() const;
86  virtual int multicastTtl() const;
87  virtual const std::vector<DtString>& mcastAddresses() const;
88 
89  virtual int disVersion() const;
90  virtual double heartbeatRate() const;
91  virtual double timeoutRate() const;
92 
93  virtual double drainInputMaxTime() const;
94  virtual int numPdusToReadPerTimeCheck() const;
95 
96  virtual bool isConnected() const;
97  virtual const DtDisDescriptor* disDescription() const;
98  virtual const DtLgrDisEntityTypeManager* entityTypeManager() const;
99 
100  protected:
101 
103  virtual void configureConnectionInitalizer(DtExerciseConnInitializer& connInitializer);
104 
106  virtual DtResponse connect(const DtCommand& command);
107 
109  virtual DtResponse connectShared(const DtCommand& command);
110 
112  virtual DtResponse disconnect(const DtCommand& command);
113 
114  // Update the remote control filter based on the record remote control setting
115  virtual void updateRecordRemoteControlFilter();
116 
118  virtual DtResponse setDisDescription(const DtCommand& command);
119 
121  virtual DtResponse setEntityTypeManager(const DtCommand& command);
122 
124  virtual DtResponse setCommonEntityTypes(const DtCommand& command);
125 
127  virtual DtResponse filterEntityTypes(const DtCommand& command);
128 
130  virtual DtResponse setCommonEntityIds(const DtCommand& command);
131 
133  virtual DtResponse filterEntityIds(const DtCommand& command);
134 
136  virtual DtResponse addCustomPDU(const DtCommand& command);
137 
138  virtual DtResponse addFilteredEntityName(const DtCommand& command);
139 
140  protected:
141 
143  DtLgrPduTypeFilter* myPduFilter;
144  DtLgrDisEntityTypeFilter* myEntityTypeFilter;
145 
146  int myPort;
147  int myExerciseId;
148  int mySiteId;
149  int myAppNumber;
150  bool myUseAsynchIO;
151  int myDisVersion;
152  DtInetAddr myDestAddr;
153  DtInetAddr myDeviceAddr;
154  // Never used independently of establishing the destination address or display
155  DtString myNetmask;
156  int mySendBufferSize;
157  int myRecvBufferSize;
158  int myMulticastTtl;
159  std::vector<DtString> myMcastAddresses;
160 
161  };
162 
163 }
164 
165 #endif
The logger command which contains the command type and its parameters.
Definition: lgrCommand.h:109
Defines IMPORT/EXPORT macros for lgrSim library.
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21
DIS simulation driver controls connection to DIS simulation.
Definition: lgrDisSimDriver.h:43
Factory for creating DIS Simulation commands.
Definition: lgrDisSimCommandFactory.h:26
#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
The abstract interface for the class responsible for controlling the simulation.
Definition: lgrSimDriver.h:37
Managers known DIS entity types.
Definition: lgrDisEntityTypeManager.h:21
Contains Logger exceptions.
DtBoost::shared_ptr< const DtCommand > DtResponse
Definition: lgrCommand.h:174
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
Interface for controlling the connection to a DIS simulation.
Definition: lgrDisSimInterface.h:30
Contains MAKLogger::DtLgrSimDriver subclass of MAKLogger::DtLgrCommandHandler.
Implements a protocol independent Simulation manager.
Definition: lgrSimManager.h:40
Logger filter which.
Definition: lgrPduTypeFilter.h:37
Instances of DtDisDescriptor provide mappings between Pdu descriptors and PduKind enumerators in DIS...
Definition: disDescriptor.h:55
Contains MAKLogger::DtCommandFunctor, MAKLogger::DtResponseFunctor, MAKLogger::DtLgrCommandHandlerFun...
DtLgrDisSimInterface Interface
Definition: lgrDisSimDriver.h:48
Entity type filter.
Definition: lgrDisEntityTypeFilter.h:35
Contains MAKLogger::DtCommandDispatcher class.
DtLgrDisCommandFactory Factory
Definition: lgrDisSimDriver.h:47
DtLgrSystemDrive defines the lowest level driver which controls the logger.
Definition: lgrSystemDriver.h:43

Document ID: Generated on Fri May 31 15:45:35 EDT 2024 from SVN revision 266500
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)