VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
applicationExecutionManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
9 #include <vlpi/simulationAddress.h>
10 #include <map>
11 #include <set>
12 #include <memory>
13 #include <iostream>
14 
23 };
25 {
27  std::string myStdOut;
28  std::string myStdError;
30 };
31 
33 class DtApplicationSet;
35 typedef long long DtPidType;
38 {
39 public:
40  DtApplicationExecutionManager(std::shared_ptr<DtVrfRemoteController> remoteController, std::ostream& ostream = std::cout);
42 
43  virtual void initializeCallbacks();
44  virtual void addApplication(
45  const DtSimulationAddress& simAddr,
46  const DtConnectionSettings* copyOnlyConnectionSettings,
47  const DtApplicationSet& applicationSettings);
48 
49  virtual void execute();
50 
51  virtual bool haveProcessesQuit(const std::set<DtSimulationAddress>& simAddrs) const;
52 
53  virtual bool tick();
54  virtual void requestStop();
55  virtual void requestStop(const DtSimulationAddress& simAddr);
56 
57  virtual void terminate();
58 
59  virtual const std::map<DtSimulationAddress, DtPidType> pids() const;
60 
61  virtual void addError(const DtSimulationAddress& simAddress, const DtVrfProcessError& error);
62  virtual void removeErrors(const DtSimulationAddress& simAddress);
63  virtual void clearErrors();
64  virtual const std::vector< std::pair<DtSimulationAddress, DtVrfProcessError> > errors() const;
65  virtual void printErrors() const;
66  virtual void printBackendStdOut(const DtSimulationAddress& backend) const;
67 
68 protected:
69  static void backendDiscoveredCallback(const DtSimulationAddress& addr, void* usr);
70  static void backendRemovedCallback(const DtSimulationAddress& addr, void* usr);
71 
72  virtual void backendDiscovered(const DtSimulationAddress& addr);
73  virtual void backendRemoved(const DtSimulationAddress& addr);
74  virtual void addPidBySimulationAddressMapping(const DtSimulationAddress& simAddr, const DtPidType& pid);
75  virtual void removePidBySimulationAddressMapping(const DtSimulationAddress& simAddr);
76  virtual void addRunningStateBySimulationAddressMapping(const DtSimulationAddress& simAddr, const bool& isRunning);
77  virtual void updateRunningStateBySimulationAddressMapping(const DtSimulationAddress& simAddr, const bool& isRunning);
78  virtual void removeRunningStateBySimulationAddressMapping(const DtSimulationAddress& simAddr);
79 
80  virtual void addProcess(
81  const DtSimulationAddress& simAddr,
82  const DtConnectionSettings* copyOnlyConnectionSettings,
83  const DtApplicationSet& applicationSettings) = 0;
84 
85  virtual void executeProcesses() = 0;
86  virtual void executeProcess(const DtSimulationAddress& addr) = 0;
87 
88  virtual void terminateProcesses() = 0;
89  virtual void terminateProcess(const DtSimulationAddress& addr) = 0;
90 
91  virtual bool checkProcessStates() = 0;
92  virtual std::string backendStdOut(const DtSimulationAddress& addr) const = 0;
93  std::map<DtSimulationAddress, DtPidType> myPidsBySimulationAddressMap;
94  std::map<DtSimulationAddress, bool> myRunningStateBySimulationAddressMap;
96  std::shared_ptr<DtVrfRemoteController> myRemoteController;
97 
98  std::vector< std::pair<DtSimulationAddress, DtVrfProcessError> > myErrors;
99  static std::map<DtVrfProcessErrorType, const char*> theErrorMap;
100  std::ostream& myDefaultOutputStream;
101 };
DtVrfProcessErrorType
For now making.
Definition: applicationExecutionManager.h:16
std::shared_ptr< DtVrfRemoteController > myRemoteController
Definition: applicationExecutionManager.h:96
ApplicationExecutionManagerState
Definition: applicationExecutionManager.h:36
std::string myStdOut
Definition: applicationExecutionManager.h:27
std::ostream & myDefaultOutputStream
Definition: applicationExecutionManager.h:100
std::vector< std::pair< DtSimulationAddress, DtVrfProcessError > > myErrors
Definition: applicationExecutionManager.h:98
ApplicationExecutionManagerState myState
Definition: applicationExecutionManager.h:95
Definition: applicationExecutionManager.h:37
Definition: applicationExecutionManager.h:36
Base class for all Launcher settings objects.
Definition: connectionSettings.h:64
Definition: applicationExecutionManager.h:36
The main class for the remote control interface to VR-Forces. Instantiating this class allows the sen...
Definition: vrfRemoteController.h:206
Definition: applicationExecutionManager.h:19
int myExitCode
Definition: applicationExecutionManager.h:29
Definition: applicationExecutionManager.h:36
Definition: applicationExecutionManager.h:18
Definition: applicationExecutionManager.h:36
#define DT_DLL_vrfqtprocesscontrol
This file is used to determine how to build.
Definition: vrfQtProcessControlDefines.h:23
Definition: applicationExecutionManager.h:22
The class that contains the applications to run and any additional information associated with the ap...
Definition: applicationSet.h:26
Definition: applicationExecutionManager.h:24
Definition: asyncJobServer.h:39
Definition: applicationExecutionManager.h:20
Definition: applicationExecutionManager.h:36
Definition: applicationExecutionManager.h:17
Definition: applicationExecutionManager.h:21
long long DtPidType
Definition: applicationExecutionManager.h:34
std::map< DtSimulationAddress, bool > myRunningStateBySimulationAddressMap
Definition: applicationExecutionManager.h:94
std::string myStdError
Definition: applicationExecutionManager.h:28
DtVrfProcessErrorType myErrorType
Definition: applicationExecutionManager.h:26
static std::map< DtVrfProcessErrorType, const char * > theErrorMap
Definition: applicationExecutionManager.h:99
std::map< DtSimulationAddress, DtPidType > myPidsBySimulationAddressMap
Definition: applicationExecutionManager.h:93

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)