Go to the documentation of this file.00001
00002
00003
00004
00005
00008
00009 #if DtHLA
00010
00011 #ifndef lgrHlaSimDriver_H_
00012 #define lgrHlaSimDriver_H_
00013
00014 #include "lgrSim.h"
00015 #include "lgrSimDriver.h"
00016 #include "lgrCommandDispatcher.h"
00017 #include "lgrExceptions.h"
00018 #include "virtualConstructor.h"
00019
00020 #include <map>
00021
00022 namespace MAKLogger
00023 {
00024 class DtLgrOnlineFomDesc;
00025 class DtCommand;
00026 class DtLgrHlaCommandFactory;
00027 class DtLgrHlaSimulationManager;
00028 class DtLgrHlaSimInterface;
00029 class DtLgrSimDriver;
00030 class DtMessagePipeline;
00031 class DtLgrSystemDriver;
00032 class DtLgrHlaFilterByClass;
00033
00036 class DT_DLL_LGRSIM DtLgrHlaSimDriver : public DtLgrSimDriver
00037 {
00038 public:
00039
00040 typedef DtLgrHlaCommandFactory Factory;
00041 typedef DtLgrHlaSimInterface Interface;
00042
00043 DT_VIRTUAL_CTR(DtLgrHlaSimDriver,(DtLgrSystemDriver&))
00044
00045 virtual ~DtLgrHlaSimDriver();
00046
00050 virtual void tick();
00051
00053 bool releasePipeline();
00054
00056 bool getPipeline();
00057
00059 bool hasPipeline() const;
00060
00062
00063 virtual DtLgrSimManager* simManager();
00064 virtual const DtLgrSimManager* simManager() const;
00066
00068
00069 virtual DtLgrHlaSimulationManager* hlaSimManager();
00070 virtual const DtLgrHlaSimulationManager* hlaSimManager() const;
00072
00074 virtual const DtString& federateName() const;
00075
00077 virtual const DtString& federationName() const;
00078
00080 virtual const DtString& fedFile() const;
00081
00082 #if DtHLA_1516_EVOLVED
00083
00085 virtual const DtString& federateType() const;
00086
00088 virtual const std::vector<DtString>& fomModules() const;
00089
00091 virtual const DtString& mim() const;
00092
00093 #endif // DtHLA_1516_EVOLVED
00094
00096 virtual const DtString& fomMapper() const;
00097
00099 virtual const DtString& fomMapperData() const;
00100
00102 virtual double fomVersion() const;
00103
00105 virtual int fomRevision() const;
00106
00108 virtual bool ignoreAdvisories() const;
00109
00111 virtual bool isConnected() const;
00112
00114 virtual const DtLgrOnlineFomDesc* connectedFomDescription() const;
00115
00117 virtual std::vector<DtString> objectSubscriptionList() const;
00118
00120 virtual std::vector<DtString> interactionSubscriptionList() const;
00121
00124 virtual void updateTimeManagement();
00125
00127 virtual DtLgrSystemDriver* systemDriver();
00128 virtual const DtLgrSystemDriver* systemDriver() const;
00129
00130 protected:
00131
00133 virtual DtResponse setConnectionParameters(const DtCommand& command);
00134
00136 virtual DtResponse setTimeManagement(const DtCommand& command);
00137
00139 virtual DtResponse setDrainInputSettings(const DtCommand& command);
00140
00142 virtual DtResponse connect(const DtCommand& command);
00143
00145 virtual DtResponse connectShared(const DtCommand& command);
00146
00148 virtual DtResponse disconnect(const DtCommand& command);
00149
00150
00151 virtual void updateRecordRemoteControlFilter();
00152
00154 virtual DtResponse setPassiveSubscription(const DtCommand& command);
00155
00157 virtual DtResponse setIgnoreAdvisories(const DtCommand& command);
00158
00160 virtual DtResponse loadSubscriptionListFile(const DtCommand& command);
00161
00163 virtual DtResponse loadPublicationListFile(const DtCommand& command);
00164
00166 virtual DtResponse saveSubscriptionListFile(const DtCommand& command);
00167
00169 virtual DtResponse setSubscriptionLists(const DtCommand& command);
00170
00172 virtual DtResponse setDisableTimeManagmentTest(const DtCommand& command);
00173
00175 virtual DtResponse setDynamicNamePrefix(const DtCommand& command);
00176
00178 virtual DtResponse setDdmParameters(const DtCommand& command);
00179
00180 protected:
00181 DtString myFederateName;
00182 DtString myFederationName;
00183 DtString myFedFile;
00184 #if DtHLA_1516_EVOLVED
00185 DtString myFederateType;
00186 std::vector<DtString> myFomModules;
00187 DtString myMim;
00188 #endif // DtHLA_1516_EVOLVED
00189 DtString myFomMapper;
00190 DtString myFomMapperData;
00191 double myFomVersion;
00192 int myFomRevision;
00193 bool myConnectOnStart;
00194 bool myUseEmptyFomMapper;
00195 bool myIgnoreAdvisories;
00196
00197 DtLgrHlaSimulationManager* mySimManager;
00198 DtLgrSystemDriver* mySystemDriver;
00199 DtLgrHlaFilterByClass* myClassFilter;
00200 };
00201
00202 }
00203
00204 #endif
00205 #endif