1 #ifndef PROCESSMANAGER_H
2 #define PROCESSMANAGER_H
3 
4 #include <QObject>
5 #include <QMap>
6 #include <QProcess>
7 
8 #include "emulatoroption.h"
9 
10 class ProcessManager : public QObject
11 {
12 	Q_OBJECT
13 public:
14 	explicit ProcessManager(QObject *parent = 0);
15 	virtual ~ProcessManager();
16 
17 	int startEmulator(QString);
18 	void createTemplateList();
19 
20 	QString fileErrorToString(QFile::FileError);
21 	QString processErrorToString(QProcess::ProcessError);
22 	QString processStateToString(QProcess::ProcessState);
highestProcessID()23 	int highestProcessID() { return mCurrentProcessId; }
runningProcesses()24 	int runningProcesses() { return mProcessMap.count(); }
25 
26 signals:
27 	void emulatorStarted(int);
28 	void emulatorFinished(int);
29 
30 public slots:
31 	void error(QProcess::ProcessError);
32 	void finished(int, QProcess::ExitStatus);
33 	void readyReadStandardOutput();
34 	void readyReadStandardError();
35 	void started();
36 	void stateChanged(QProcess::ProcessState);
37 
38 private:
39 	int mCurrentProcessId;
40 	QMap<int, QProcess *> mProcessMap;
41 	QList<EmulatorOption> mTemplateList;
42 };
43 
44 #endif // PROCESSMANAGER_H
45