#ifndef QPROCESS_H
#define QPROCESS_H 
#include <QtCore/qiodevice.h>
#include <QtCore/qstringlist.h>
#if !defined(Q_OS_WIN32) || defined(qdoc)
typedef long long int Q_PID;
#else
#endif
typedef enum QtValidLicenseForCoreModule QtCoreModule;
#ifndef QT_NO_PROCESS
struct QProcessPrivate;
class QProcess: public QIODevice{
   public: virtual struct QMetaObject const * metaObject() const
   public: static struct QMetaObject const staticMetaObject;
   public: virtual void* qt_metacast(char const *);
   public: static inline class QString tr(char const * s, char const * c = 0);
   public: static inline class QString trUtf8(char const * s, char const * c = 0);
   public: static inline class QString tr(char const * s, char const * c, int n);
   public: static inline class QString trUtf8(char const * s, char const * c, int n);
   public: virtual int qt_metacall(enum QMetaObject::Call, int, void* *);
   public: enum ProcessError{
      FailedToStart = 0,
      Crashed = 1,
      Timedout = 2,
      ReadError = 3,
      WriteError = 4,
      UnknownError = 5,
   };
   public: enum ProcessState{
      NotRunning = 0,
      Starting = 1,
      Running = 2,
   };
   public: enum ProcessChannel{
      StandardOutput = 0,
      StandardError = 1,
   };
   public: enum ProcessChannelMode{
      SeparateChannels = 0,
      MergedChannels = 1,
      ForwardedChannels = 2,
   };
   public: enum ExitStatus{
      NormalExit = 0,
      CrashExit = 1,
   };
   public: explicit QProcess(class QObject* parent = 0);
   public: virtual ~QProcess();
   public: void start(class QString const & program, class QStringList const & arguments, class QFlags < enum QIODevice::OpenModeFlag > mode = QIODevice::ReadWrite);
   public: void start(class QString const & program, class QFlags < enum QIODevice::OpenModeFlag > mode = QIODevice::ReadWrite);
   public: enum QProcess::ProcessChannelMode readChannelMode() const
   public: void setReadChannelMode(enum QProcess::ProcessChannelMode mode);
   public: enum QProcess::ProcessChannelMode processChannelMode() const
   public: void setProcessChannelMode(enum QProcess::ProcessChannelMode mode);
   public: enum QProcess::ProcessChannel readChannel() const
   public: void setReadChannel(enum QProcess::ProcessChannel channel);
   public: void closeReadChannel(enum QProcess::ProcessChannel channel);
   public: void closeWriteChannel();
   public: void setStandardInputFile(class QString const & fileName);
   public: void setStandardOutputFile(class QString const & fileName, class QFlags < enum QIODevice::OpenModeFlag > mode = QIODevice::Truncate);
   public: void setStandardErrorFile(class QString const & fileName, class QFlags < enum QIODevice::OpenModeFlag > mode = QIODevice::Truncate);
   public: void setStandardOutputProcess(class QProcess* destination);
   public: class QString workingDirectory() const
   public: void setWorkingDirectory(class QString const & dir);
   public: void setEnvironment(class QStringList const & environment);
   public: class QStringList environment() const
   public: enum QProcess::ProcessError error() const
   public: enum QProcess::ProcessState state() const
   public: Q_PID pid() const
   public: bool waitForStarted(int msecs = 30000);
   public: virtual bool waitForReadyRead(int msecs = 30000);
   public: virtual bool waitForBytesWritten(int msecs = 30000);
   public: bool waitForFinished(int msecs = 30000);
   public: class QByteArray readAllStandardOutput();
   public: class QByteArray readAllStandardError();
   public: int exitCode() const
   public: enum QProcess::ExitStatus exitStatus() const
   public: virtual qint64 bytesAvailable() const
   public: virtual qint64 bytesToWrite() const
   public: virtual bool isSequential() const
   public: virtual bool canReadLine() const
   public: virtual void close();
   public: virtual bool atEnd() const
   public: static int execute(class QString const & program, class QStringList const & arguments);
   public: static int execute(class QString const & program);
   public: static bool startDetached(class QString const & program, class QStringList const & arguments);
   public: static bool startDetached(class QString const & program);
   public: static class QStringList systemEnvironment();
   public: void terminate();
   public: void kill();
   protected: void started();
   protected: void finished(int exitCode);
   protected: void finished(int exitCode, enum QProcess::ExitStatus exitStatus);
   protected: void error(enum QProcess::ProcessError error);
   protected: void stateChanged(enum QProcess::ProcessState state);
   protected: void readyReadStandardOutput();
   protected: void readyReadStandardError();
   protected: void setProcessState(enum QProcess::ProcessState state);
   protected: virtual void setupChildProcess();
   protected: virtual qint64 readData(char* data, qint64 maxlen);
   protected: virtual qint64 writeData(char const * data, qint64 len);
   private: inline struct QProcessPrivate* d_func();
   private: inline struct QProcessPrivate const * d_func() const
   private: QProcess(class QProcess const &);
   private: class QProcess& operator =(class QProcess const &);
   friend struct QProcessPrivate;
   friend struct QProcessManager;
};
struct QProcessManager;
#endif // QT_NO_PROCESS
#endif // QPROCESS_H