PIP 5.5.3
Platform-Independent Primitives
Открытые члены | Открытые статические члены | Полный список членов класса
Класс PIProcess

Класс для управления внешними процессами Подробнее...

#include <piprocess.h>

Граф наследования:PIProcess:
Inheritance graph
[см. легенду]

Открытые члены

 PIProcess ()
 Создает пустой PIProcess.
 
int exitCode () const
 Возвращает код завершения последнего выполнения
 
int pID () const
 Возвращает ID процесса текущего выполнения
 
PIString workingDirectory () const
 Возвращает рабочую директорию выполнения или пустую строку, если не установлена
 
void setWorkingDirectory (const PIString &path)
 Устанавливает рабочую директорию для выполнения
 
void resetWorkingDirectory ()
 Сбрасывает рабочую директорию, будет использоваться директория приложения
 
PIByteArray readOutput ()
 Возвращает весь вывод из стандартного потока вывода (stdout)
 
PIByteArray readError ()
 Возвращает весь вывод из потока ошибок (stderr)
 
bool writeInput (const PIByteArray &data)
 Записывает данные в стандартный поток ввода (stdin)
 
void closeInput ()
 Закрывает поток ввода (stdin) и отправляет EOF.
 
void enableWriteStdIn (bool on=true)
 Включает или отключает запись в стандартный поток ввода (stdin) процесса
 
void enableReadStdOut (bool on=true)
 Включает или отключает чтение из стандартного потока вывода (stdout) процесса
 
void enableReadStdErr (bool on=true)
 Включает или отключает чтение из потока ошибок (stderr) процесса
 
PIStringList environment ()
 Возвращает текущее окружение выполнения
 
void clearEnvironment ()
 Очищает окружение выполнения. Вызывать перед exec()
 
void removeEnvironmentVariable (const PIString &variable)
 Удаляет переменную "variable" из окружения выполнения. Вызывать перед exec()
 
void setEnvironmentVariable (const PIString &variable, const PIString &value)
 Устанавливает значение "value" для переменной "variable" в окружении выполнения. Вызывать перед exec()
 
void exec (const PIString &program, const PIString &arg)
 Запускает выполнение "program" с одним аргументом "arg".
 
bool isExecFinished () const
 Проверяет, завершилось ли выполнение процесса
 
bool isExecStarted () const
 Проверяет, запущен ли процесс выполнения
 
- Открытые члены унаследованные от PIThread
 PIThread (void *data, ThreadFunc func, bool startNow=false, PISystemTime loop_delay={})
 Создает поток с данными "data", функцией "func" и задержкой цикла "loop_delay".
 
 PIThread (std::function< void()> func, bool startNow=false, PISystemTime loop_delay={})
 Создает поток с функцией "func" и задержкой цикла "loop_delay".
 
 PIThread (bool startNow=false, PISystemTime loop_delay={})
 Создает поток с задержкой цикла "loop_delay".
 
bool start ()
 Запускает поток
 
bool start (PISystemTime loop_delay)
 Запускает поток
 
bool start (ThreadFunc func)
 Запускает поток
 
bool start (ThreadFunc func, PISystemTime loop_delay)
 Запускает поток
 
bool start (std::function< void()> func)
 Запускает поток
 
bool start (std::function< void()> func, PISystemTime loop_delay)
 Запускает поток
 
bool startOnce ()
 Запускает поток без внутреннего цикла Подробнее...
 
bool startOnce (ThreadFunc func)
 Запускает поток без внутреннего цикла Подробнее...
 
bool startOnce (std::function< void()> func)
 Запускает поток без внутреннего цикла
 
bool stopAndWait (PISystemTime timeout={})
 Останавливает поток и ожидает завершения. Возвращает false если таймаут истек.
 
void setData (void *d)
 Устанавливает данные, передаваемые в функцию потока
 
void setSlot (ThreadFunc func)
 Устанавливает функцию потока, вызываемую после каждого run()
 
void setSlot (std::function< void()> func)
 Устанавливает функцию потока, вызываемую после каждого run()
 
void setPriority (PIThread::Priority prior)
 Устанавливает приоритет потока
 
void * data () const
 Возвращает данные, передаваемые в функцию потока
 
PIThread::Priority priority () const
 Возвращает приоритет потока
 
bool isRunning () const
 Возвращает исполняется ли поток
 
bool isStopping () const
 Возвращает останавливается ли поток
 
bool waitForStart (PISystemTime timeout={})
 Ожидает старта потока
 
bool waitForStart (int timeout_msecs) DEPRECATEDM("use waitForStart(PISystemTime)")
 
bool waitForFinish (PISystemTime timeout={})
 Ожидает завершения потока. Возвращает false если таймаут истек.
 
bool waitForFinish (int timeout_msecs) DEPRECATEDM("use waitForFinish(PISystemTime)")
 
void needLockRun (bool need)
 Устанавливает необходимость блокировки внутреннего мьютекса каждый run()
 
PIMutexmutex () const
 Возвращает внутренний мьютекс
 
llong tid () const
 Возвращает ID потока
 
void stop ()
 Останавливает поток Подробнее...
 
void terminate ()
 Жёстко прерывает поток Подробнее...
 
void lock () const
 Блокирует внутренний мьютекс
 
void unlock () const
 Разблокирует внутренний мьютекс
 
void started ()
 Вызывается при старте потока
 
void stopped ()
 Вызывается при завершении потока
 
- Открытые члены унаследованные от PIObject
 PIObject (const PIString &name=PIString())
 Создает PIObject с именем "name".
 
PIString name () const
 Возвращает имя объекта
 
virtual const char * className () const
 Возвращает имя класса объекта
 
virtual const char * parentClassName () const
 Возвращает имя родительского класса
 
bool debug () const
 Возвращает включен ли вывод piCoutObj для этого объекта
 
void setName (const PIString &name)
 Устанавливает имя объекта
 
void setDebug (bool debug)
 Включает или отключает вывод piCoutObj для этого объекта
 
PIVariant property (const char *name) const
 Возвращает свойство объекта по имени "name".
 
void setProperty (const char *name, const PIVariant &value)
 Устанавливает у объекта свойство по имени "name" в "value". Если такого свойства нет, оно добавляется
 
bool isPropertyExists (const char *name) const
 Возвращает присутствует ли свойство по имени "name".
 
PIStringList scopeList () const
 Возвращает цепочку наследования объекта (вместе с классом самого объекта)
 
void piDisconnect (const PIString &sig, PIObject *dest, void *ev_h)
 Разрывает все соединения от события "sig" к объекту "dest" и обработчику "ev_h".
 
void piDisconnect (const PIString &sig, PIObject *dest)
 Разрывает все соединения от события "sig" к объекту "dest".
 
void piDisconnect (const PIString &sig)
 Разрывает все соединения от события "sig".
 
bool isPIObject () const
 Возвращает действительный ли это PIObject (проверяет подпись)
 
template<typename T >
bool isTypeOf () const
 Возвращает действительный ли это наследник PIObject типа "T" (проверяет подпись и имя класса)
 
template<typename T >
T * cast () const
 Возвращает преобразование к типу T если это действительный наследник типа "T" (проверяет через isTypeOf()), или "nullptr".
 
void callQueuedEvents ()
 Выполнить все отложенные события от CONNECTU_QUEUED соединений
 
bool maybeCallQueuedEvents ()
 Если было хотя бы одно CONNECTU_QUEUED соединение с исполнителем this, то выполнить события Подробнее...
 
void deleteLater ()
 Пометить объект на удаление Подробнее...
 
void deleted (PIObject *o)
 Вызывается перед удалением объекта Подробнее...
 

Открытые статические члены

static void execIndependent (const PIString &program)
 Запускает независимое выполнение "program" без аргументов
 
static void execIndependent (const PIString &program, const PIString &arg)
 Запускает независимое выполнение "program" с одним аргументом "arg".
 
static void execIndependent (const PIString &program, const PIStringList &args)
 Запускает независимое выполнение "program" с аргументами "args".
 
static PIStringList currentEnvironment ()
 Возвращает окружение текущего приложения
 
static int currentPID ()
 Возвращает ID процесса текущего приложения
 
static PIString getEnvironmentVariable (const PIString &variable)
 Возвращает значение переменной "variable" из окружения приложения
 
- Открытые статические члены унаследованные от PIThread
static void runOnce (PIObject *object, const char *handler, const PIString &name=PIString())
 Вызывает обработчик "handler" объекта "object" в отдельном потоке Подробнее...
 
static void runOnce (std::function< void()> func, const PIString &name=PIString())
 Вызывает лямбда-выражение "func" в отдельном потоке Подробнее...
 
- Открытые статические члены унаследованные от PIObject
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h)
 Разрывает все соединения от события "sig" объекта "src" к объекту "dest" и обработчику "ev_h".
 
static void piDisconnect (PIObject *src, const PIString &sig, PIObject *dest)
 Разрывает все соединения от события "sig" объекта "src" к объекту "dest".
 
static void piDisconnect (PIObject *src, const PIString &sig)
 Разрывает все соединения от события "sig" объекта "src".
 
static PIObjectfindByName (const PIString &name)
 Returns PIObject* with name "name" or 0, if there is no object found.
 
static bool isPIObject (const PIObject *o)
 Возвращает действительный ли "o" PIObject (проверяет подпись)
 
template<typename T >
static bool isTypeOf (const PIObject *o)
 Возвращает действительный ли "o" наследник PIObject типа "T" (проверяет подпись и имя класса)
 

Handlers

void exec (const PIString &program)
 Запускает выполнение "program" без аргументов
 
void exec (const PIString &program, const PIStringList &args_)
 Запускает выполнение "program" с аргументами "args".
 
void terminate ()
 Немедленно завершает выполнение
 
bool waitForFinish ()
 Ожидает завершения выполнения (максимум 60 секунд)
 
bool waitForFinish (PISystemTime timeout)
 Ожидает завершения выполнения в течение "timeout_".
 

Events

void execStarted (PIString program)
 Генерируется при запуске выполнения
 
void execFinished (PIString program, int exit_code)
 Генерируется при завершении выполнения
 

Дополнительные унаследованные члены

- Открытые типы унаследованные от PIThread
enum  Priority {
  piLowerst , piLow , piNormal , piHigh ,
  piHighest
}
 Приоритет потока Подробнее...
 
- Защищенные члены унаследованные от PIThread
virtual void begin ()
 Метод выполняется один раз при старте потока
 
virtual void run ()
 Метод выполняется каждые "loop_delay" миллисекунд
 
virtual void end ()
 Метод выполняется один раз при остановке потока
 
- Защищенные члены унаследованные от PIObject
PIObjectemitter () const
 Возвращает PIObject* который вызвал это событие. Значение допустимо только из методов обработчиков событий
 
virtual void propertyChanged (const char *name)
 Виртуальная функция, вызывается после изменения любого свойства.
 

Подробное описание

Класс для управления внешними процессами

Краткий обзор

Использование

Класс PIProcess предоставляет функциональность для создания, управления и взаимодействия с внешними процессами. Поддерживает как присоединенное выполнение (с полным контролем потоков ввода/вывода), так и независимое выполнение.

Основные возможности: