class SystemcallPrivate : public QObject
{
Q_OBJECT
+
public:
- SystemcallPrivate(std::string const & outfile);
+ SystemcallPrivate(std::string const & infile, std::string const & outfile,
+ std::string const & errfile);
~SystemcallPrivate();
- /// Should the standard output be displayed?
- void setShowOut(bool val) { showout_ = val; }
-
- /// Should the standard error be displayed?
- void setShowErr(bool val) { showerr_ = val; }
-
enum State {
Starting,
Running,
State state;
bool waitWhile(State, bool processEvents, int timeout = -1);
- void startProcess(const QString& cmd);
+ void startProcess(QString const & cmd, std::string const & path,
+ std::string const & lpath, bool detach);
int exitCode();
QString errorMessage() const;
QString exitStatusMessage() const;
- void flush();
-
QProcess* releaseProcess();
static void killProcess(QProcess * p);
+
+public Q_SLOTS:
+ void stdOut();
+ void stdErr();
+ void processError(QProcess::ProcessError);
+ void processStarted();
+ void processFinished(int, QProcess::ExitStatus status);
+
+
private:
/// Pointer to the process to monitor.
- QProcess * proc_;
+ QProcess * process_;
+
/// Index to the standard output buffer.
- size_t outindex_;
+ size_t out_index_;
/// Index to the standard error buffer.
- size_t errindex_;
+ size_t err_index_;
///
- std::string outfile;
+ std::string in_file_;
+ ///
+ std::string out_file_;
+ ///
+ std::string err_file_;
+
/// Size of buffers.
- static size_t const bufsize_ = 200;
+ static size_t const buffer_size_ = 200;
/// Standard output buffer.
- char outdata_[bufsize_];
+ char out_data_[buffer_size_];
/// Standard error buffer.
- char errdata_[bufsize_];
- ///
- bool showout_;
- ///
- bool showerr_;
- bool process_events;
+ char err_data_[buffer_size_];
+
QString cmd_;
+ bool process_events_;
void waitAndProcessEvents();
void processEvents();
-
- void killProcess();
-
-public Q_SLOTS:
- void stdOut();
- void stdErr();
- void processError(QProcess::ProcessError);
- void processStarted();
- void processFinished(int, QProcess::ExitStatus status);
-
-Q_SIGNALS:
+ void killProcess();
};