summaryrefslogtreecommitdiffstats
path: root/mmc_updater/src/ProcessUtils.h
diff options
context:
space:
mode:
Diffstat (limited to 'mmc_updater/src/ProcessUtils.h')
-rw-r--r--mmc_updater/src/ProcessUtils.h101
1 files changed, 0 insertions, 101 deletions
diff --git a/mmc_updater/src/ProcessUtils.h b/mmc_updater/src/ProcessUtils.h
deleted file mode 100644
index e0cc3dc0..00000000
--- a/mmc_updater/src/ProcessUtils.h
+++ /dev/null
@@ -1,101 +0,0 @@
-#pragma once
-
-#include "Platform.h"
-
-#include <list>
-#include <string>
-
-#ifndef PLATFORM_WINDOWS
-#include <unistd.h>
-#endif
-
-/** A set of functions to get information about the current
- * process and launch new processes.
- */
-class ProcessUtils
-{
- public:
- enum Errors
- {
- /** Status code returned by runElevated() if launching
- * the elevated process fails.
- */
- RunElevatedFailed = 255,
- /** Status code returned by runSync() if the application
- * cannot be started.
- */
- RunFailed = -8,
- /** Status code returned by runSync() if waiting for
- * the application to exit and reading its status code fails.
- */
- WaitFailed = -1
- };
-
- static PLATFORM_PID currentProcessId();
-
- /** Returns the absolute path to the main binary for
- * the current process.
- */
- static std::string currentProcessPath();
-
- /** Start a process and wait for it to finish before
- * returning its exit code.
- *
- * Returns -1 if the process cannot be started.
- */
- static int runSync(const std::string& executable,
- const std::list<std::string>& args);
-
- /** Start a process and return without waiting for
- * it to finish.
- */
- static void runAsync(const std::string& executable,
- const std::list<std::string>& args);
-
- /** Run a process with administrative privileges and return the
- * status code of the process, or 0 on Windows.
- *
- * Returns RunElevatedFailed if the elevated process could
- * not be started.
- */
- static int runElevated(const std::string& executable,
- const std::list<std::string>& args,
- const std::string& task);
-
- /** Wait for a process to exit.
- * Returns true if the process was found and has exited or false
- * otherwise.
- */
- static bool waitForProcess(PLATFORM_PID pid);
-
-#ifdef PLATFORM_WINDOWS
- /** Convert a unicode command line returned by GetCommandLineW()
- * to a standard (argc,argv) pair. The resulting argv array and each
- * element of argv must be freed using free()
- */
- static void convertWindowsCommandLine(LPCWSTR commandLine, int& argc, char**& argv);
-#endif
-
- private:
- enum RunMode
- {
- RunSync,
- RunAsync
- };
- static int runElevatedLinux(const std::string& executable,
- const std::list<std::string>& args,
- const std::string& task);
- static int runElevatedMac(const std::string& executable,
- const std::list<std::string>& args);
- static int runElevatedWindows(const std::string& executable,
- const std::list<std::string>& args);
-
- static PLATFORM_PID runAsyncUnix(const std::string& executable,
- const std::list<std::string>& args);
- static int runWindows(const std::string& executable,
- const std::list<std::string>& args,
- RunMode runMode);
- static int runSyncUnix(const std::string& executable,
- const std::list<std::string>& args);
-};
-