#include <Process.h>
Inheritance diagram for ACE_Process:
Public Methods | |
ACE_Process (void) | |
Default construction. Must use <ACE_Process::spawn> to start. | |
virtual | ~ACE_Process (void) |
Destructor. | |
virtual int | prepare (ACE_Process_Options &options) |
virtual pid_t | spawn (ACE_Process_Options &options) |
virtual void | parent (pid_t child) |
virtual void | child (pid_t parent) |
virtual void | unmanage (void) |
pid_t | wait (ACE_exitcode *status=0, int wait_options=0) |
pid_t | wait (const ACE_Time_Value &tv, ACE_exitcode *status=0) |
int | kill (int signum=SIGINT) |
int | terminate (void) |
pid_t | getpid (void) const |
Return the process id of the new child process. | |
ACE_HANDLE | gethandle (void) const |
Return the handle of the process, if it has one. | |
int | running (void) const |
Return 1 if running; 0 otherwise. | |
ACE_exitcode | exit_code (void) const |
int | return_value (void) const |
void | close_dup_handles (void) |
void | close_passed_handles (void) |
PROCESS_INFORMATION | process_info (void) |
Protected Methods | |
void | exit_code (ACE_exitcode code) |
ACE_Process (const ACE_Process &) | |
void | operator= (const ACE_Process &) |
Protected Attributes | |
PROCESS_INFORMATION | process_info_ |
ACE_exitcode | exit_code_ |
ACE_Handle_Set | handles_passed_ |
Set of handles that were passed to the child process. | |
ACE_Handle_Set | dup_handles_ |
Handle duplicates made for the child process. | |
Friends | |
class | ACE_Process_Manager |
A Portable encapsulation for creating new processes. Notice that on UNIX platforms, if the <setenv> is used, the <spawn> is using the <execve> system call. It means that the <command_line> should include a full path to the program file (<execve> does not search the PATH). If <setenv> is not used then, the <spawn> is using the <execvp> which searches for the program file in the PATH variable.
|
Default construction. Must use <ACE_Process::spawn> to start.
|
|
Destructor.
|
|
|
|
Called just after <ACE_OS::fork> in the child's context. The default does nothing. This function is *not* called on Win32 because the process-creation scheme does not allow it. |
|
Close all the handles in the set obtained from the
|
|
Close all the handles in the set obtained from the
|
|
Set this process' <exit_code_>. ACE_Process_Manager uses this method to set the <exit_code_> after successfully waiting for this proecess to exit. |
|
Return the Process' exit code. This method returns the raw exit status returned from system APIs (such as <wait> or <waitpid>). This value is system dependent. |
|
Return the handle of the process, if it has one.
|
|
Return the process id of the new child process.
|
|
Send the process a signal. This is only portable to operating systems that support signals, such as UNIX/POSIX. |
|
|
|
Called just after <ACE_OS::fork> in the parent's context, if the <fork> succeeds. The default is to do nothing. |
|
Called just before <ACE_OS::fork> in the <spawn>. If this returns non-zero, the <spawn> is aborted (and returns ACE_INVALID_PID). The default simply returns zero. |
|
|
|
Return the Process' return value. This method returns the actual return value that a child process returns or <exit>s. |
|
Return 1 if running; 0 otherwise.
|
|
Launch a new process as described by <options>. Returns the process id of the newly spawned child on success or -1 on failure. |
|
Terminate the process abruptly using <ACE::terminate_process>. This call doesn't give the process a chance to cleanup, so use it with caution... |
|
Called by a <Process_Manager> that is removing this Process from its table of managed Processes. Default is to do nothing. Reimplemented in ACE_Managed_Process. |
|
Timed wait for the process we've created to exit. A return value of -1 indicates that the something failed; 0 indicates that a timeout occurred. Otherwise, the child's process id is returned. If <status> != 0, it points to an integer where the function stores the child's exit status. NOTE: on UNIX platforms this function uses <ualarm>, i.e., it overwrites any existing alarm. In addition, it steals all <SIGCHLD>s during the timeout period, which will break another <ACE_Process_Manager> in the same process that's expecting <SIGCHLD> to kick off process reaping. |
|
Wait for the process we've created to exit. If <status> != 0, it points to an integer where the function store the exit status of child process to. If <wait_options> == <WNOHANG> then return 0 and don't block if the child process hasn't exited yet. A return value of -1 represents the <wait> operation failed, otherwise, the child process id is returned. |
|
|
|
Handle duplicates made for the child process.
|
|
|
|
Set of handles that were passed to the child process.
|
|
|