git-svn-id: svn://db.shs.com.ru/pip@239 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2016-08-24 13:12:49 +00:00
parent 3b6a746644
commit 77a48eb270
133 changed files with 304 additions and 225 deletions

View File

@@ -4,7 +4,7 @@
/*
PIP - Platform Independent Primitives
Process
Copyright (C) 2016 Ivan Pelipenko peri4ko@gmail.com
Copyright (C) 2016 Ivan Pelipenko peri4ko@yandex.ru
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -70,8 +70,6 @@ public:
EVENT_HANDLER1(void, exec, const PIString & , program) {args.clear(); args << program; exec_();}
EVENT_HANDLER2(void, exec, const PIString & , program, const PIString & , arg) {args.clear(); args << program << arg; exec_();}
EVENT_HANDLER3(void, exec, const PIString & , program, const PIString & , arg1, const PIString & , arg2) {args.clear(); args << program << arg1 << arg2; exec_();}
EVENT_HANDLER4(void, exec, const PIString & , program, const PIString & , arg1, const PIString & , arg2, const PIString & , arg3) {args.clear(); args << program << arg1 << arg2 << arg3; exec_();}
EVENT_HANDLER2(void, exec, const PIString & , program, const PIStringList & , args_) {args << program << args_; exec_();}
EVENT_HANDLER(void, terminate);
EVENT_HANDLER(bool, waitForFinish) {return waitForFinish(60000);}
@@ -80,12 +78,17 @@ public:
EVENT1(execStarted, PIString, program)
EVENT2(execFinished, PIString, program, int, exit_code)
static void execIndependent(const PIString & program) {execIndependent(program, PIStringList());}
static void execIndependent(const PIString & program, const PIString & arg) {execIndependent(program, PIStringList() << arg);}
static void execIndependent(const PIString & program, const PIStringList & args_);
static PIStringList currentEnvironment();
static int currentPID();
private:
virtual void run();
void exec_();
void startProc(bool detached);
PIStringList args, env;
PIString wd;
@@ -99,7 +102,7 @@ private:
pid_t pid;
#endif
FILE * tf_in, * tf_out, * tf_err;
int exit_code, sz, as;
int exit_code, sz;
bool is_exec;
};