#include <vector>
#include <msp/fs/path.h>
#include <msp/io/base.h>
+#include "mspcore_api.h"
+#include "noncopyable.h"
namespace Msp {
the self object take effect immediately. It is recommended to perform such
redirections directly on the Console objects.
*/
-class Process
+class MSPCORE_API Process: private NonCopyable
{
public:
typedef std::vector<std::string> Arguments;
private:
struct Private;
- Private *priv;
+ Private *priv = nullptr;
FS::Path work_dir;
- bool redirect;
- IO::Base *cin;
- IO::Base *cout;
- IO::Base *cerr;
- bool running;
- bool finished;
- unsigned exit_code;
+ bool redirect = false;
+ IO::Base *cin = nullptr;
+ IO::Base *cout = nullptr;
+ IO::Base *cerr = nullptr;
+ bool running = false;
+ bool finished = false;
+ unsigned exit_code = 0;
static Process *_self;
Process(const Private &);
- void init();
public:
Process();
~Process();