34 #ifndef BLOCXX_PROCESS_HPP_INCLUDE_GUARD_
35 #define BLOCXX_PROCESS_HPP_INCLUDE_GUARD_
41 #include "blocxx/BLOCXX_config.h"
61 class BLOCXX_COMMON_API Process :
public IntrusiveCountableBase
122 class BLOCXX_COMMON_API Status
133 Status(
ProcId wpid,
int status);
138 Status(
int rep1,
int rep2, Repr);
146 bool running()
const;
150 bool exitTerminated()
const;
157 int exitStatus()
const;
161 bool terminatedSuccessfully()
const;
165 bool signalTerminated()
const;
169 bool terminated()
const;
174 int termSignal()
const;
178 bool stopped()
const;
183 int stopSignal()
const;
193 int getPOSIXwaitpidStatus()
const;
195 void repr(
int & rep1,
int & rep2)
const;
198 bool m_status_available;
207 Status processStatus();
209 enum ETerminationSelectionFlag
212 E_TERMINATE_PROCESS_GROUP,
214 E_TERMINATE_PROCESS_ONLY
266 void waitCloseTerm(
float wait_initial,
float wait_close,
float wait_term);
269 bool terminatesWithin(
const Timeout& wait_time);
273 bool terminateByMessage(
const Timeout& waitTime);
283 void operator=(
Process const &);
307 virtual int kill(
ProcId pid,
int sig) = 0;