20 #include <matrix/vlVector.h>
21 #include <boost/function.hpp>
22 #include <boost/signals2.hpp>
23 #include <vlutil/vlThread.h>
33 class DtSimulationAddress;
45 class DtBaseConnection;
46 class DtCoordinateSystem;
47 class DtSharedSettingsManager;
52 class SimulationDatabase;
57 class DtNetworkMessageInterface;
58 class DtNetworkMessageInterfaceHandlerAgent;
59 class DtStateDataManager;
60 class DtSimDataProcessorManager;
61 class DtRadioProcessor;
62 class DtVrfBackendInterceptor;
63 class DtVantageToLegionIdMapper;
64 class DtTDLMessageProcessor;
65 class DtExtendedStateDataProcessor;
66 class DtVrfCommunicationManager;
67 struct DtSimpleTypedDictionary;
80 return !(*
this == orig);
84 template <
typename _Class,
typename _CallbackFunction>
135 virtual void beginFrame();
138 virtual void advanceFrame();
140 virtual bool onStop();
152 virtual void createStateDataManager(Legion::SimulationDatabase* db = 0);
155 int fileReceiveTransferPort = 9000, Legion::SimulationDatabase* db = 0,
172 virtual void queueConnectionFunction(
const boost::function<
void ()>&
function);
175 virtual void rollbackToSnapshot(
double);
183 virtual void clearSavingCheckpoints();
193 return myVantageToLegionIdMapper;
198 return myRadioProcessor;
203 return myRemoteController;
210 return myCoordinateSystem;
215 return myVrfMessageInterface;
220 return myVrfTDLMessageInterface;
225 return myTDLMessageProcessor;
230 return myExtendedStateDataProcessor;
235 return myStateDataManager;
239 virtual void sendMessageToObject(
const DtVrfObjectMessage* m, DtSimulationAddress addr);
246 virtual void importScenarioDescriptionFile(std::string file, DtSimulationAddress address, std::string format,
247 std::map<std::string, std::string> importData);
250 virtual void exportScenarioDescriptionFile(std::string file, DtSimulationAddress address, std::string format,
251 std::map<std::string, std::string> importData);
254 virtual void createGlobalEnvironment(
bool);
257 virtual void createEnvironmentalObject(DtSimulationAddress addr,
265 virtual void closeScenario(DtFilename,
bool forceCloseAll =
false);
268 virtual void getMessageFilterStatus(std::map<std::string,bool>& statusMap)
const;
271 virtual void setMessageFilterStatus(
const std::map<std::string,bool>& statusMap);
274 virtual void getMessageProcessorStatus(std::map<std::string,bool>& statusMap)
const;
277 virtual void setMessageProcessorStatus(
const std::map<std::string,bool>& statusMap);
304 virtual void setTimeoutInterval(
int i);
308 virtual void registerSimMessageCallbackFor(
int t,
bool reg);
316 virtual void registerSetMessageCallbackFor(
const DtSetMessageType& s,
bool reg);
332 bool saveInZipFile =
false,
bool queueSave =
false,
int putIntoPlayMode = 0);
337 virtual void slot_onSaveCheckpoints(std::vector<DtScenario*>, DtFilename);
340 virtual void slot_onClearSavingCheckpoints();
346 virtual void slot_onRollbackToSnapshot(
double);
349 virtual void slot_registerCommentInteraction(
bool);
353 virtual void slot_registerInfluenceInteraction(
bool);
379 static void scenarioAboutToBeSaved(
DtScenario&,
void*);
380 virtual void processScenarioAboutToBeSaved(
DtScenario&)
const;
385 bool deleteMemory =
false,
bool saveInZipFile =
false,
bool queueSave =
false,
int putIntoPlayMode = 0);
389 virtual void saveCheckpoints(
const std::vector<DtScenario*>&,
const DtFilename& baseName);
392 virtual void saveNextCheckpoint();
395 virtual void slot_quitBackend(DtSimulationAddress);
396 virtual void symbolDecorationsChanged();
398 virtual void setupParameterDatabase(std::vector<DtFilename> searchPaths);
401 virtual void createGlobalDynamicTerrain(
bool);
404 virtual void slot_modelSetLoaded(std::vector<DtFilename> searchPaths);
406 virtual void setupDirectConnections();
407 virtual void disconnectConnections();
409 virtual void sendScenarioLoadSuccessMessage();
415 static void scenarioCheckpointed(
DtSaveResult result,
double,
void*);
416 virtual void processScenarioCheckpointed(
DtSaveResult result,
double);
419 virtual void runFunctionQueue();
422 static void simMessageCallback(
DtSimMessage* msg,
void* usr);
429 virtual void registerExistingMessages();
431 template <
typename _Class,
typename _CallbackFunction>
434 EventHandlerCallbacksMap::iterator iter = myEventHandlerCallbacksMap.find(et);
436 if (iter == myEventHandlerCallbacksMap.end())
439 iter = myEventHandlerCallbacksMap.find(et);
445 EventHandlerCallbacks::const_iterator currentIter = iter->second.begin();
446 EventHandlerCallbacks::const_iterator currentEnd = iter->second.end();
448 while (currentIter != currentEnd)
450 if (**currentIter == *adder)
462 template <
typename _Class,
typename _CallbackFunction>
465 EventHandlerCallbacksMap::iterator iter = myEventHandlerCallbacksMap.find(et);
467 if (iter == myEventHandlerCallbacksMap.end())
470 iter = myEventHandlerCallbacksMap.find(et);
476 EventHandlerCallbacks::const_iterator currentIter = iter->second.begin();
477 EventHandlerCallbacks::const_iterator currentEnd = iter->second.end();
479 while (currentIter != currentEnd)
481 if (**currentIter == *adder)
491 virtual void remoteControllerInitialized();
std::vector< boost::function< void()> > FunctionCallList
Definition: vrfConnectionHelper.h:512
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:73
std::map< std::string, std::pair< int, DtCondExprCreatorFcn > > myConditionCommandCreator
Definition: vrfConnectionHelper.h:557
DtNetworkMessageInterfaceHandlerAgent * myNetworkMessageInterfaceHandlerAgent
Agent for sending notification of messages received to the gui. This message will need to be deleted ...
Definition: vrfConnectionHelper.h:503
EventType
Definition: event.h:16
The protocol specific processor for entity sim data.
Definition: extendedStateDataProcessor.h:38
The DtVrfTDLMessageInterface is a transporter for sending TDL messages as data interactions using a V...
Definition: vrfTDLMessageInterface.h:37
DtSimulationStatus
Definition: backend.h:26
Helper code for connectors. Does not exist in it's own project but is included by all projects that u...
Definition: vrfConnectionHelper.h:124
DtExtendedStateDataProcessor * extendedDataStateProcessor() const
Definition: vrfConnectionHelper.h:228
Coordinate_System * coordinateSystem() const
Definition: vrfConnectionHelper.h:208
Definition: networkMessageInterface.h:28
DtSetDataRequestFactory::DtCreatorFcn DtSetDataRequestCreatorFcn
Definition: setDataRequestFactory.h:41
Definition: scenario.h:52
Definition: radioProcessor.h:29
double myParameterDatabaseTimerStart
Definition: vrfConnectionHelper.h:540
DtStateDataManager * myStateDataManager
Definition: vrfConnectionHelper.h:517
DtVrfRemoteController * myRemoteController
Definition: vrfConnectionHelper.h:516
_CallbackFunction myCallbackFcn
Definition: vrfConnectionHelper.h:117
DtExtendedStateDataProcessor * myExtendedStateDataProcessor
Definition: vrfConnectionHelper.h:535
Coordinate_System * createVrfCoordinateSystem(const makVrv::DtCoordinateSystem &coodSysIn)
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:324
Contains makVrv:DtSelectionManager class.
virtual ~DtVrfDriverEventManagerCallbackHandler()
Definition: vrfConnectionHelper.h:94
This class will manage the data processors. It will be the spot that the data processors can post mes...
Definition: simDataProcessorManager.h:25
DtTDLMessageProcessor * tdlMessageProcessor() const
Definition: vrfConnectionHelper.h:223
boost::signals2::signal< void(DtSimulationStatus)> signal_simulationStatusChanged
Definition: vrfConnectionHelper.h:325
DtRadioProcessor * radioProcessor() const
Definition: vrfConnectionHelper.h:196
void removeEventManagerCallback(makVrfEvents::DtEvent::EventType et, _CallbackFunction fcn, void *usr)
Definition: vrfConnectionHelper.h:463
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:519
virtual bool operator!=(const DtVrfConnectionHelperMessageCallbackHandler &orig)
Definition: vrfConnectionHelper.h:78
DtTDLMessageProcessor * myTDLMessageProcessor
Definition: vrfConnectionHelper.h:533
std::vector< DtFilename > myModelSetSearchPaths
Definition: vrfConnectionHelper.h:561
Definition: vrfConnectionHelper.h:85
std::map< DtSimTaskMessageType, DtSimTaskCreatorFcn > myTaskCreator
Definition: vrfConnectionHelper.h:553
std::map< DtSimCommandMessageType, DtSimCommandCreatorFcn > mySimulationCommandCreator
Definition: vrfConnectionHelper.h:556
CheckpointsToSave myCheckpointsToSave
Definition: vrfConnectionHelper.h:528
DtVrfDriverEventManagerCallbackHandler(_CallbackFunction fcn, void *usr)
Definition: vrfConnectionHelper.h:88
int myFileTransporterReceivePort
Definition: vrfConnectionHelper.h:521
DtSimInterfaceContent *(* DtInterfaceContentCreatorFcn)()
Definition: interfaceContentFactory.h:21
Contains makVrv::DtLockedBufferedQueue class.
DtAdminContentFactory::DtCreatorFcn DtAdminContentCreatorFcn
Definition: adminContentFactory.h:36
std::set< DtAdminContentMessageType > myAdminMessageCallbacks
Definition: vrfConnectionHelper.h:547
class DtBackendMap:
Definition: backendMap.h:21
DtVrfCommunicationManager * myCommunicationManager
Definition: vrfConnectionHelper.h:518
std::vector< std::pair< DtVrfObjectConsoleMessageCallbackFcn, void * > > DtCommentInteractionCallbackList
Definition: vrfConnectionHelper.h:494
DtVrfBackendInterceptor * myBackEndInterceptor
Definition: vrfConnectionHelper.h:543
DtSimTaskFactory::DtCreatorFcn DtSimTaskCreatorFcn
Definition: simTaskFactory.h:41
class DtAddressMap:
Definition: addressMap.h:22
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:38
std::map< DtAdminContentMessageType, DtAdminContentCreatorFcn > myAdminContentCreator
Definition: vrfConnectionHelper.h:555
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:539
The main class for the remote control interface to VR-Forces. Instantiating this class allows the sen...
Definition: vrfRemoteController.h:201
DtSaveResult
Definition: ifSaveComplete.h:18
std::set< DtSimReportMessageType > myReportMessageCallbacks
Definition: vrfConnectionHelper.h:548
makVrv::DtSignalConnectionManager myConnections
Definition: vrfConnectionHelper.h:499
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
Definition: simpleTypedDictionary.h:36
DtVrfMessageInterface * myVrfMessageInterface
Definition: vrfConnectionHelper.h:530
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:50
DtSimReportFactory::DtCreatorFcn DtSimReportCreatorFcn
Definition: simReportFactory.h:38
makVrv::DtLockedBufferedQueue< boost::function< void()> > FunctionCallQueue
Definition: vrfConnectionHelper.h:511
File: simMsg.h.
Definition: simMessage.h:35
DtVrfRemoteController * remoteController() const
Definition: vrfConnectionHelper.h:201
DtVrfTDLMessageInterface * vrfTDLMessageInterface() const
Definition: vrfConnectionHelper.h:218
std::vector< DtVrfConnectionHelperMessageCallbackHandler * > EventHandlerCallbacks
Definition: vrfConnectionHelper.h:507
EventHandlerCallbacksMap myEventHandlerCallbacksMap
Definition: vrfConnectionHelper.h:509
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:544
DtAddressMap * myLastAddressMap
Definition: vrfConnectionHelper.h:523
DtThreadId myThreadId
Definition: vrfConnectionHelper.h:563
Definition: vrfConnectionHelper.h:69
std::map< int, DtVrfObjectMessageCreatorFcn > myObjectMessageCreator
Definition: vrfConnectionHelper.h:558
DtMtlParameterDb * myParameterDatabase
Definition: vrfConnectionHelper.h:538
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:546
DtSimCommand *(* DtSimCommandCreatorFcn)()
Definition: simCommandFactory.h:20
Contains makVrf::DtSharedNetworkSignaler class.
DtSimDataProcessorManager * mySimDataProcessorManager
Definition: vrfConnectionHelper.h:532
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:90
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:552
DtStateDataManager * stateDataManager() const
Definition: vrfConnectionHelper.h:233
#define DT_DLL_vrfGuiNetworkCommon
This file is used to determine how to build.
Definition: vrfGuiNetworkCommonDefines.h:24
virtual void callback(const makVrfEvents::DtEvent &e)
Definition: vrfConnectionHelper.h:99
DtRadioProcessor * myRadioProcessor
Definition: vrfConnectionHelper.h:534
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:550
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
std::map< int, DtInterfaceContentCreatorFcn > myInterfaceContentCreator
Definition: vrfConnectionHelper.h:554
DtSimulationStatus mySimulationStatus
Definition: vrfConnectionHelper.h:542
CheckpointsToSave myCheckpointsSaving
Definition: vrfConnectionHelper.h:529
bool myStopped
Definition: vrfConnectionHelper.h:536
void * myUser
Definition: vrfConnectionHelper.h:118
bool myInThreadFlag
Definition: vrfConnectionHelper.h:505
virtual bool operator==(const DtVrfConnectionHelperMessageCallbackHandler &orig)
Definition: vrfConnectionHelper.h:104
void(* DtInfluenceEventCb)(const makVrfEvents::DtInfluenceEvent *inter, void *usr)
Definition: influenceEvent.h:147
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:70
Definition: simInterfaceContent.h:45
std::map< DtSimReportMessageType, DtSimReportCreatorFcn > myReportCreator
Definition: vrfConnectionHelper.h:559
boost::signals2::connection myConnection
Definition: vrfConnectionHelper.h:119
DtVantageToLegionIdMapper * vantageToLegionIdMapper() const
Definition: vrfConnectionHelper.h:191
boost::function< void(DtVrfConnectionHelper *)> RemoteControllerInitialization
Definition: vrfConnectionHelper.h:148
Definition: influenceEvent.h:14
std::map< double, std::pair< DtScenario, int > > CheckpointsToSave
Checkpoints left to save.
Definition: vrfConnectionHelper.h:527
std::set< DtSimTaskMessageType > myTaskMessageCallbacks
Definition: vrfConnectionHelper.h:549
DtVrfTDLMessageInterface * myVrfTDLMessageInterface
Definition: vrfConnectionHelper.h:531
int mySessionId
Definition: vrfConnectionHelper.h:520
makVrv::DtDe & myDe
Definition: vrfConnectionHelper.h:496
std::map< makVrfEvents::DtEvent::EventType, EventHandlerCallbacks > EventHandlerCallbacksMap
Definition: vrfConnectionHelper.h:508
Provides sim engine status messages to the DtVrfSimBackendManager. This class will make calls to the ...
Definition: vrfBackendInterceptor.h:34
DtSimCondExpr *(* DtCondExprCreatorFcn)()
Definition: condExprFactory.h:28
DtVrfMessageInterface * messageInterface() const
Definition: vrfConnectionHelper.h:213
makVrv::DtBaseConnection * myConnection
Definition: vrfConnectionHelper.h:497
DtBackendMap * myLastBackendMap
Definition: vrfConnectionHelper.h:524
FunctionCallQueue myConnectionThreadFunctions
Definition: vrfConnectionHelper.h:514
Definition: vrfMessageInterface.h:40
DtVrfConnectionHelperMessageCallbackHandler * addEventManagerCallback(makVrfEvents::DtEvent::EventType et, _CallbackFunction fcn, void *usr)
Definition: vrfConnectionHelper.h:432
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:71