21 #include <matrix/vlVector.h>
22 #include <boost/function.hpp>
23 #include <boost/signals2.hpp>
24 #include <vlutil/vlThread.h>
26 #include <tbb/spin_mutex.h>
36 class DtSimulationAddress;
48 class DtRadioProcessor;
54 class DtBaseConnection;
55 class DtCoordinateSystem;
56 class DtSharedSettingsManager;
61 class SimulationDatabase;
66 class DtNetworkMessageInterface;
67 class DtNetworkMessageInterfaceHandlerAgent;
68 class DtStateDataManager;
69 class DtSimDataProcessorManager;
70 class DtVrfBackendInterceptor;
71 class DtVantageToLegionIdMapper;
72 class DtVrfCommunicationManager;
73 class DtTDLMessageProcessor;
86 return !(*
this == orig);
90 template <
typename _Class,
typename _CallbackFunction>
141 virtual void beginFrame();
144 virtual void advanceFrame();
146 virtual bool onStop();
149 virtual bool waitingToAddObjects()
const;
155 virtual void createStateDataManager(Legion::SimulationDatabase* db = 0);
158 int fileReceiveTransferPort = 9000, Legion::SimulationDatabase* db = 0,
160 bool disableRemoteDiscovery =
false);
176 virtual void queueConnectionFunction(
const boost::function<
void ()>&
function);
179 virtual void queuePostAdvanceFrameConnectionFunction(
const boost::function<
void ()>&
function);
182 virtual void rollbackToSnapshot(
double);
190 virtual void clearSavingCheckpoints();
200 return myVantageToLegionIdMapper;
205 return myRadioProcessor;
210 return myRemoteController;
217 return myCoordinateSystem;
222 return myVrfMessageInterface;
227 return myVrfTDLMessageInterface;
232 return myTDLMessageProcessor;
237 return myStateDataManager;
245 virtual void sendMessageToObject(
const DtVrfObjectMessage* m, DtSimulationAddress addr);
252 virtual void importScenarioDescriptionFile(std::string file, DtSimulationAddress address, std::string format,
253 std::map<std::string, std::string> importData);
256 virtual void exportScenarioDescriptionFile(std::string file, DtSimulationAddress address, std::string format,
257 std::map<std::string, std::string> importData);
260 virtual void createGlobalEnvironment(
bool);
263 virtual void createEnvironmentalObject(DtSimulationAddress addr,
271 virtual void closeScenario(DtFilename,
bool forceCloseAll =
false);
274 virtual void getMessageFilterStatus(std::map<std::string,bool>& statusMap)
const;
277 virtual void setMessageFilterStatus(
const std::map<std::string,bool>& statusMap);
280 virtual void getMessageProcessorStatus(std::map<std::string,bool>& statusMap)
const;
283 virtual void setMessageProcessorStatus(
const std::map<std::string,bool>& statusMap);
310 virtual void setTimeoutInterval(
int i);
314 virtual void registerSimMessageCallbackFor(
int t,
bool reg);
322 virtual void registerSetMessageCallbackFor(
const DtSetMessageType& s,
bool reg);
328 virtual void registerEventManagerEventCallbackFor(
int,
bool reg);
332 return myProposedNumberOfObjectsToBeLoaded;
348 bool saveInZipFile =
false,
bool queueSave =
false,
int putIntoPlayMode = 0);
353 virtual void slot_onSaveCheckpoints(std::vector<DtScenario*>, DtFilename);
356 virtual void slot_onClearSavingCheckpoints();
362 virtual void slot_onRollbackToSnapshot(
double);
365 virtual void slot_registerCommentInteraction(
bool);
369 virtual void slot_registerInfluenceInteraction(
bool);
395 static void scenarioAboutToBeSaved(
DtScenario&,
void*);
396 virtual void processScenarioAboutToBeSaved(
DtScenario&)
const;
401 bool deleteMemory =
false,
bool saveInZipFile =
false,
bool queueSave =
false,
int putIntoPlayMode = 0);
405 virtual void saveCheckpoints(
const std::vector<DtScenario*>&,
const DtFilename& baseName);
408 virtual void saveNextCheckpoint();
411 virtual void slot_quitBackend(DtSimulationAddress);
412 virtual void symbolDecorationsChanged();
414 virtual void setupParameterDatabase(std::vector<DtFilename> searchPaths);
415 virtual void setupEnumerations(
const std::vector<DtSimulationModelSet*>& sets);
418 virtual void createGlobalDynamicTerrain(
bool);
421 virtual void slot_modelSetLoaded(std::vector<DtFilename> searchPaths);
423 virtual void setupDirectConnections();
424 virtual void disconnectConnections();
426 virtual void sendScenarioLoadSuccessMessage();
432 static void scenarioCheckpointed(
DtSaveResult result,
double,
void*);
433 virtual void processScenarioCheckpointed(
DtSaveResult result,
double);
436 virtual void runFunctionQueue();
439 virtual void runPostAdvanceFrameFunctionQueue();
442 static void simMessageCallback(
DtSimMessage* msg,
void* usr);
449 virtual void registerExistingMessages();
451 template <
typename _Class,
typename _CallbackFunction>
454 EventHandlerCallbacksMap::iterator iter = myEventHandlerCallbacksMap.find(et);
456 if (iter == myEventHandlerCallbacksMap.end())
459 iter = myEventHandlerCallbacksMap.find(et);
465 EventHandlerCallbacks::const_iterator currentIter = iter->second.begin();
466 EventHandlerCallbacks::const_iterator currentEnd = iter->second.end();
468 while (currentIter != currentEnd)
470 if (**currentIter == *adder)
482 template <
typename _Class,
typename _CallbackFunction>
485 EventHandlerCallbacksMap::iterator iter = myEventHandlerCallbacksMap.find(et);
487 if (iter == myEventHandlerCallbacksMap.end())
490 iter = myEventHandlerCallbacksMap.find(et);
496 EventHandlerCallbacks::const_iterator currentIter = iter->second.begin();
497 EventHandlerCallbacks::const_iterator currentEnd = iter->second.end();
499 while (currentIter != currentEnd)
501 if (**currentIter == *adder)
511 virtual void remoteControllerInitialized();
586 int myProposedNumberOfObjectsToBeLoaded = 0;
std::vector< boost::function< void()> > FunctionCallList
Definition: vrfConnectionHelper.h:532
This class allows itself to be registered with the connection.
Definition: vrfCommunicationManager.h:25
Definition: vantageToLegionIdMapper.h:28
virtual bool operator==(const DtVrfConnectionHelperMessageCallbackHandler &orig)
Definition: vrfConnectionHelper.h:79
std::map< std::string, std::pair< int, DtCondExprCreatorFcn > > myConditionCommandCreator
Definition: vrfConnectionHelper.h:579
DtNetworkMessageInterfaceHandlerAgent * myNetworkMessageInterfaceHandlerAgent
Agent for sending notification of messages received to the gui. This message will need to be deleted ...
Definition: vrfConnectionHelper.h:523
EventType
Definition: event.h:16
The DtVrfTDLMessageInterface is a transporter for sending TDL messages as data interactions using a V...
Definition: vrfTDLMessageInterface.h:37
DtSimulationStatus
Definition: backend.h:26
int proposedNumberOfObjectsToBeLoaded() const
Definition: vrfConnectionHelper.h:330
Helper code for connectors. Does not exist in it's own project but is included by all projects that u...
Definition: vrfConnectionHelper.h:130
Coordinate_System * coordinateSystem() const
Definition: vrfConnectionHelper.h:215
Definition: networkMessageInterface.h:22
DtSetDataRequestFactory::DtCreatorFcn DtSetDataRequestCreatorFcn
Definition: setDataRequestFactory.h:41
Definition: scenario.h:52
double myParameterDatabaseTimerStart
Definition: vrfConnectionHelper.h:560
makRadio::DtRadioProcessor * myRadioProcessor
Definition: vrfConnectionHelper.h:555
DtStateDataManager * myStateDataManager
Definition: vrfConnectionHelper.h:538
DtVrfRemoteController * myRemoteController
Definition: vrfConnectionHelper.h:537
EventManagerEventCallbacks myEventManagerEventCallbacks
Definition: vrfConnectionHelper.h:569
_CallbackFunction myCallbackFcn
Definition: vrfConnectionHelper.h:123
FunctionCallQueue myAdvancedFrameConnectionThreadFunctions
Definition: vrfConnectionHelper.h:535
boost::signals2::signal< void(bool)> signal_parameterDatabaseInitialized
Signal sent when the parameter database has been asked to be changed. Flag will be true if it has bee...
Definition: vrfConnectionHelper.h:337
boost::signals2::signal< void()> signal_scenarioLoaded
Definition: vrfConnectionHelper.h:339
Contains makVrv:DtSelectionManager class.
virtual ~DtVrfDriverEventManagerCallbackHandler()
Definition: vrfConnectionHelper.h:100
virtual void callback(const makVrfEvents::DtEvent &e) override
Definition: vrfConnectionHelper.h:105
Definition: radioProcessor.h:20
DtTDLMessageProcessor * tdlMessageProcessor() const
Definition: vrfConnectionHelper.h:230
boost::signals2::signal< void(DtSimulationStatus)> signal_simulationStatusChanged
Definition: vrfConnectionHelper.h:338
void removeEventManagerCallback(makVrfEvents::DtEvent::EventType et, _CallbackFunction fcn, void *usr)
Definition: vrfConnectionHelper.h:483
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
Coordinate_System * myCoordinateSystem
Definition: vrfConnectionHelper.h:540
virtual bool operator!=(const DtVrfConnectionHelperMessageCallbackHandler &orig)
Definition: vrfConnectionHelper.h:84
DtTDLMessageProcessor * myTDLMessageProcessor
Definition: vrfConnectionHelper.h:554
std::vector< DtFilename > myModelSetSearchPaths
Definition: vrfConnectionHelper.h:583
Definition: vrfConnectionHelper.h:91
std::map< DtSimTaskMessageType, DtSimTaskCreatorFcn > myTaskCreator
Definition: vrfConnectionHelper.h:575
std::map< DtSimCommandMessageType, DtSimCommandCreatorFcn > mySimulationCommandCreator
Definition: vrfConnectionHelper.h:578
CheckpointsToSave myCheckpointsToSave
Definition: vrfConnectionHelper.h:549
DtVrfDriverEventManagerCallbackHandler(_CallbackFunction fcn, void *usr)
Definition: vrfConnectionHelper.h:94
tbb::spin_mutex myAdvancedFrameConnectionThreadFunctionsMutex
Definition: vrfConnectionHelper.h:588
int myFileTransporterReceivePort
Definition: vrfConnectionHelper.h:542
DtSimInterfaceContent *(* DtInterfaceContentCreatorFcn)()
Definition: interfaceContentFactory.h:21
Contains makVrv::DtLockedBufferedQueue class.
DtAdminContentFactory::DtCreatorFcn DtAdminContentCreatorFcn
Definition: adminContentFactory.h:36
std::set< DtAdminContentMessageType > myAdminMessageCallbacks
Definition: vrfConnectionHelper.h:567
class DtBackendMap:
Definition: backendMap.h:21
DtVrfCommunicationManager * myCommunicationManager
Definition: vrfConnectionHelper.h:539
std::vector< std::pair< DtVrfObjectConsoleMessageCallbackFcn, void * > > DtCommentInteractionCallbackList
Definition: vrfConnectionHelper.h:514
DtVrfBackendInterceptor * myBackEndInterceptor
Definition: vrfConnectionHelper.h:563
boost::signals2::signal< void(DtScenario &)> signal_scenarioAboutToBeSaved
Definition: vrfConnectionHelper.h:340
DtSimTaskFactory::DtCreatorFcn DtSimTaskCreatorFcn
Definition: simTaskFactory.h:41
Definition: addressMap.h:24
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
boost::signals2::signal< void(DtSaveResult, const DtString &)> signal_scenarioSaved
Definition: vrfConnectionHelper.h:341
std::map< DtAdminContentMessageType, DtAdminContentCreatorFcn > myAdminContentCreator
Definition: vrfConnectionHelper.h:577
DtSetDataRequest is an abstract base class from which real setDataRequests can derive. It manages the read/write capability; derived classes need only use and register read/writatble data types for derived information.
Definition: setDataRequest.h:41
std::vector< DtFilename > myLastSearchPaths
Definition: vrfConnectionHelper.h:559
The main class for the remote control interface to VR-Forces. Instantiating this class allows the sen...
Definition: vrfRemoteController.h:206
DtSaveResult
Definition: ifSaveComplete.h:18
std::set< DtSimReportMessageType > myReportMessageCallbacks
Definition: vrfConnectionHelper.h:570
makVrv::DtSignalConnectionManager myConnections
Definition: vrfConnectionHelper.h:519
A locked buffered queue which allows multiple writers and a single reader. Internally the queue is st...
Definition: DtLockedBufferedQueue.h:24
Definition: coordSystem.h:54
makRadio::DtRadioProcessor * radioProcessor() const
Definition: vrfConnectionHelper.h:203
DtVrfMessageInterface * myVrfMessageInterface
Definition: vrfConnectionHelper.h:551
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:54
DtSimReportFactory::DtCreatorFcn DtSimReportCreatorFcn
Definition: simReportFactory.h:38
makVrv::DtLockedBufferedQueue< boost::function< void()> > FunctionCallQueue
Definition: vrfConnectionHelper.h:531
File: simMsg.h.
Definition: simMessage.h:35
DtVrfRemoteController * remoteController() const
Definition: vrfConnectionHelper.h:208
DtVrfTDLMessageInterface * vrfTDLMessageInterface() const
Definition: vrfConnectionHelper.h:225
std::vector< DtVrfConnectionHelperMessageCallbackHandler * > EventHandlerCallbacks
Definition: vrfConnectionHelper.h:527
EventHandlerCallbacksMap myEventHandlerCallbacksMap
Definition: vrfConnectionHelper.h:529
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtVrfObjectMessage *(* DtVrfObjectMessageCreatorFcn)()
Creator function for DtVrfObjectMessage instances.
Definition: vrfObjectMessageFactory.h:21
DtVantageToLegionIdMapper * myVantageToLegionIdMapper
Definition: vrfConnectionHelper.h:564
DtAddressMap * myLastAddressMap
Definition: vrfConnectionHelper.h:544
DtThreadId myThreadId
Definition: vrfConnectionHelper.h:585
Definition: vrfConnectionHelper.h:75
std::map< int, DtVrfObjectMessageCreatorFcn > myObjectMessageCreator
Definition: vrfConnectionHelper.h:580
DtMtlParameterDb * myParameterDatabase
Definition: vrfConnectionHelper.h:558
A DtSimCommand subclass which specifies a change to the weather settings for the specified weather ar...
Definition: changeWeatherCommand.h:29
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
Definition: asyncJobServer.h:39
std::set< int > mySimMessageCallbacks
Definition: vrfConnectionHelper.h:566
DtSimCommand *(* DtSimCommandCreatorFcn)()
Definition: simCommandFactory.h:20
Contains makVrf::DtSharedNetworkSignaler class.
DtSimDataProcessorManager * mySimDataProcessorManager
Definition: vrfConnectionHelper.h:553
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
The DtTDLMessageProcessor is a base class that will create the agent that can be used to send more ge...
Definition: tdlMessageProcessor.h:27
Definition: sharedNetworkSignaler.h:95
Instances of DtMtlParameterDb are a database of DtVrfObjectParameters* entries that are loaded from a...
Definition: mtlParameterDb.h:40
std::map< DtSetMessageType, DtSetDataRequestCreatorFcn > mySetCreator
Definition: vrfConnectionHelper.h:574
DtStateDataManager * stateDataManager() const
Definition: vrfConnectionHelper.h:235
A simulation model set contains all the information that can be used to support a scenario either for...
Definition: simulationModelSet.h:31
#define DT_DLL_vrfGuiNetworkCommon
This file is used to determine how to build.
Definition: vrfGuiNetworkCommonDefines.h:24
Base class to provide boost signal/slot management.
bool(* DtPreserveMappingsFcn)(void *usr)
Used by saveScenario to determine if original (true) or new mappings should be saved.
Definition: vrfRemoteController.h:89
std::set< DtSetMessageType > mySetMessageCallbacks
Definition: vrfConnectionHelper.h:572
std::map< int, std::pair< int, std::shared_ptr< boost::signals2::scoped_connection > > > EventManagerEventCallbacks
Definition: vrfConnectionHelper.h:568
virtual bool operator==(const DtVrfConnectionHelperMessageCallbackHandler &orig) override
Definition: vrfConnectionHelper.h:110
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
std::map< int, DtInterfaceContentCreatorFcn > myInterfaceContentCreator
Definition: vrfConnectionHelper.h:576
DtSimulationStatus mySimulationStatus
Definition: vrfConnectionHelper.h:562
CheckpointsToSave myCheckpointsSaving
Definition: vrfConnectionHelper.h:550
bool myStopped
Definition: vrfConnectionHelper.h:556
void * myUser
Definition: vrfConnectionHelper.h:124
bool myInThreadFlag
Definition: vrfConnectionHelper.h:525
void(* DtInfluenceEventCb)(const makVrfEvents::DtInfluenceEvent *inter, void *usr)
Definition: influenceEvent.h:154
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
tbb::spin_mutex myConnectionThreadFunctionsMutex
Definition: vrfConnectionHelper.h:587
Definition: simInterfaceContent.h:45
std::map< DtSimReportMessageType, DtSimReportCreatorFcn > myReportCreator
Definition: vrfConnectionHelper.h:581
boost::signals2::connection myConnection
Definition: vrfConnectionHelper.h:125
DtVantageToLegionIdMapper * vantageToLegionIdMapper() const
Definition: vrfConnectionHelper.h:198
boost::function< void(DtVrfConnectionHelper *)> RemoteControllerInitialization
Definition: vrfConnectionHelper.h:151
Coordinate_System * createVrfCoordinateSystem(const makVrv::DtCoordinateSystem &coodSysIn)
Definition: influenceEvent.h:14
std::map< double, std::pair< DtScenario, int > > CheckpointsToSave
Checkpoints left to save.
Definition: vrfConnectionHelper.h:548
std::set< DtSimTaskMessageType > myTaskMessageCallbacks
Definition: vrfConnectionHelper.h:571
DtVrfTDLMessageInterface * myVrfTDLMessageInterface
Definition: vrfConnectionHelper.h:552
int mySessionId
Definition: vrfConnectionHelper.h:541
makVrv::DtDe & myDe
Definition: vrfConnectionHelper.h:516
std::map< makVrfEvents::DtEvent::EventType, EventHandlerCallbacks > EventHandlerCallbacksMap
Definition: vrfConnectionHelper.h:528
Provides sim engine status messages to the DtVrfSimBackendManager. This class will make calls to the ...
Definition: vrfBackendInterceptor.h:33
DtSimCondExpr *(* DtCondExprCreatorFcn)()
Definition: condExprFactory.h:28
DtVrfMessageInterface * messageInterface() const
Definition: vrfConnectionHelper.h:220
makVrv::DtBaseConnection * myConnection
Definition: vrfConnectionHelper.h:517
DtBackendMap * myLastBackendMap
Definition: vrfConnectionHelper.h:545
FunctionCallQueue myConnectionThreadFunctions
Definition: vrfConnectionHelper.h:534
Definition: vrfMessageInterface.h:40
DtVrfConnectionHelperMessageCallbackHandler * addEventManagerCallback(makVrfEvents::DtEvent::EventType et, _CallbackFunction fcn, void *usr)
Definition: vrfConnectionHelper.h:452
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73