diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-10-18 15:39:07 -0400 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-11-06 07:42:56 -0500 |
| commit | d91580cc2669e2ab018c2aaab472cd763e5441d8 (patch) | |
| tree | 500b597577b439be65bc69460c93f48c19433a59 /src/spawn.h | |
| parent | 7b3c5dcbb3b5d520d166eb5b51f669968f57302e (diff) | |
initial Spawner and SpawnedProcess
added steam app id to spawn parameters
removed threadHandle, unused
moved most of the stuff from OrganizerCore::spawnBinaryProcess() to Spawner
replaced m_UserInterface by m_MainWindow
Diffstat (limited to 'src/spawn.h')
| -rw-r--r-- | src/spawn.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/spawn.h b/src/spawn.h index 31b44739..d2853cd5 100644 --- a/src/spawn.h +++ b/src/spawn.h @@ -27,6 +27,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>. #include <QDir>
class Settings;
+namespace MOBase { class IPluginGame; }
namespace spawn
{
@@ -46,6 +47,7 @@ struct SpawnParameters QFileInfo binary;
QString arguments;
QDir currentDirectory;
+ QString steamAppID;
bool hooked = false;
HANDLE stdOut = INVALID_HANDLE_VALUE;
HANDLE stdErr = INVALID_HANDLE_VALUE;
@@ -69,6 +71,38 @@ bool checkBlacklist( **/
HANDLE startBinary(QWidget* parent, const SpawnParameters& sp);
+
+class SpawnedProcess
+{
+public:
+ SpawnedProcess(HANDLE handle, SpawnParameters sp);
+
+ SpawnedProcess(const SpawnedProcess&) = delete;
+ SpawnedProcess& operator=(const SpawnedProcess&) = delete;
+ SpawnedProcess(SpawnedProcess&& other);
+ SpawnedProcess& operator=(SpawnedProcess&& other);
+ ~SpawnedProcess();
+
+ HANDLE releaseHandle();
+
+private:
+ HANDLE m_handle;
+ SpawnParameters m_parameters;
+
+ void destroy();
+};
+
+
+class Spawner
+{
+public:
+ SpawnedProcess spawn(
+ QWidget* parent, const MOBase::IPluginGame* game,
+ SpawnParameters sp, Settings& settings);
+
+private:
+};
+
} // namespace
|
