]> git.lyx.org Git - lyx.git/blobdiff - src/support/SystemcallPrivate.h
prepare Qt 5.6 builds
[lyx.git] / src / support / SystemcallPrivate.h
index 5e00f9846c337d7ebb167be75c4abe3e4fb8917f..5aac5431ef703ad80fb533d4f3fef6da3b9cd833 100644 (file)
 #define SYSTEMCALLPRIVATE_H
 
 #include <QObject>
-
 #include <QProcess>
 
+#include <string>
+
 namespace lyx {
 namespace support {
 
@@ -29,16 +30,12 @@ class Systemcall;
 class SystemcallPrivate : public QObject
 {
        Q_OBJECT
+
 public:
-       SystemcallPrivate(QProcess * proc);
+       SystemcallPrivate(std::string const & infile, std::string const & outfile,
+                         std::string const & errfile);
        ~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,
@@ -48,39 +45,55 @@ public:
        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;
 
+       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 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_;
+       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();     
 
 };