summaryrefslogtreecommitdiffstats
path: root/logic/tools/BaseProfiler.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2014-02-24 00:29:13 +0100
committerPetr Mrázek <peterix@gmail.com>2014-02-24 00:29:13 +0100
commitf7c97efcf3785f597417895945b24c2e7476cba8 (patch)
treec0ad8ba4b59bf9be441c2037ae7592585c3cbe58 /logic/tools/BaseProfiler.h
parente3d2e5fd7405baa8137e300e8cc817e70df172b7 (diff)
parenta354e8bfae812b23b85b65c4a5b7e860cb18080c (diff)
downloadMultiMC-f7c97efcf3785f597417895945b24c2e7476cba8.tar
MultiMC-f7c97efcf3785f597417895945b24c2e7476cba8.tar.gz
MultiMC-f7c97efcf3785f597417895945b24c2e7476cba8.tar.lz
MultiMC-f7c97efcf3785f597417895945b24c2e7476cba8.tar.xz
MultiMC-f7c97efcf3785f597417895945b24c2e7476cba8.zip
Merge branch 'feature_profiling' into integration_json_and_tools
Diffstat (limited to 'logic/tools/BaseProfiler.h')
-rw-r--r--logic/tools/BaseProfiler.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/logic/tools/BaseProfiler.h b/logic/tools/BaseProfiler.h
new file mode 100644
index 00000000..ec57578e
--- /dev/null
+++ b/logic/tools/BaseProfiler.h
@@ -0,0 +1,36 @@
+#pragma once
+
+#include "BaseExternalTool.h"
+
+class BaseInstance;
+class SettingsObject;
+class MinecraftProcess;
+class QProcess;
+
+class BaseProfiler : public BaseExternalTool
+{
+ Q_OBJECT
+public:
+ explicit BaseProfiler(BaseInstance *instance, QObject *parent = 0);
+
+public
+slots:
+ void beginProfiling(MinecraftProcess *process);
+ void abortProfiling();
+
+protected:
+ QProcess *m_profilerProcess;
+
+ virtual void beginProfilingImpl(MinecraftProcess *process) = 0;
+ virtual void abortProfilingImpl();
+
+signals:
+ void readyToLaunch(const QString &message);
+ void abortLaunch(const QString &message);
+};
+
+class BaseProfilerFactory : public BaseExternalToolFactory
+{
+public:
+ virtual BaseProfiler *createProfiler(BaseInstance *instance, QObject *parent = 0);
+};