#define SYSTEMCALLPRIVATE_H
#include <QObject>
-
#include <QProcess>
+#include <string>
+
namespace lyx {
namespace support {
{
Q_OBJECT
public:
- SystemcallPrivate(QProcess * proc);
+ SystemcallPrivate(std::string const & outfile);
~SystemcallPrivate();
/// Should the standard output be displayed?
- void showout() { showout_ = true; }
+ void setShowOut(bool val) { showout_ = val; }
/// Should the standard error be displayed?
- void showerr() { showerr_ = true; }
+ void setShowErr(bool val) { showerr_ = val; }
enum State {
Starting,
bool waitWhile(State, bool processEvents, int timeout = -1);
void startProcess(const QString& cmd);
+ int exitCode();
+
QString errorMessage() const;
QString exitStatusMessage() const;
+ void flush();
+ QProcess* releaseProcess();
+
+ static void killProcess(QProcess * p);
private:
/// Pointer to the process to monitor.
size_t outindex_;
/// Index to the standard error buffer.
size_t errindex_;
+ ///
+ std::string outfile;
/// Size of buffers.
static size_t const bufsize_ = 200;
/// Standard output buffer.
bool showout_;
///
bool showerr_;
+ bool process_events;
+ QString cmd_;
void waitAndProcessEvents();
+ void processEvents();
+
+ void killProcess();
public Q_SLOTS:
void stdOut();
void processStarted();
void processFinished(int, QProcess::ExitStatus status);
+Q_SIGNALS:
+
};
} // namespace support