#define SYSTEMCALLPRIVATE_H
#include <QObject>
-
#include <QProcess>
+#include <string>
+
namespace lyx {
namespace support {
class SystemcallPrivate : public QObject
{
Q_OBJECT
+
public:
- SystemcallPrivate(const std::string& outfile);
+ SystemcallPrivate(std::string const & outfile);
~SystemcallPrivate();
- /// Should the standard output be displayed?
- void showout() { showout_ = true; }
-
- /// Should the standard error be displayed?
- void showerr() { showerr_ = true; }
-
enum State {
Starting,
Running,
QString errorMessage() const;
QString exitStatusMessage() const;
- void flush();
- void killProcess();
+ 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 out_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_;
+ char err_data_[buffer_size_];
- void waitAndProcessEvents();
+ QString cmd_;
+ bool process_events_;
-public Q_SLOTS:
- void stdOut();
- void stdErr();
- void processError(QProcess::ProcessError);
- void processStarted();
- void processFinished(int, QProcess::ExitStatus status);
+ void waitAndProcessEvents();
+ void processEvents();
+ void killProcess();
};