+
Point of view
All features
deferred class PROCESS
Summary
This class allows one to spawn an external process and make it execute some file.
The standard streams of the process are available: input, output and error.
Note: This class is in a beta stage. POSIX and Windows versions are available but there may be resource leaks or other bugs left.
Direct parents
Inherit list: HASHABLE, PROCESS_RUNNER
Known children
Inherit list: PROCESS_NONE, PROCESS_POSIX, PROCESS_WIN32
Overview
Features
{ANY}
{}
{ANY}
{ANY}
  • is_equal (other: PROCESS): BOOLEAN
    Is other attached to an object considered equal to current object?
deferred function
{ANY}
require
is_child: BOOLEAN
deferred function
{ANY}
is_connected: BOOLEAN
deferred function
{ANY}
require
is_finished: BOOLEAN
deferred function
{ANY}
require
status: INTEGER_32
deferred function
{ANY}
require
wait
deferred procedure
{ANY}
require ensure
duplicate
deferred procedure
{ANY}
Duplicate the running process so that two processes are running simultaneously with the same code and starting from the same data (inspired from the fork(2) POSIX call)
require
deferred function
{ANY}
You can feed data to the process by this channel
require
output: INPUT_STREAM
deferred function
{ANY}
You can read data from the process by this channel
require
error: INPUT_STREAM
deferred function
{ANY}
You can read error data from the process by this channel
require
writable attribute
{ANY}
set_group (group_: PROCESS_GROUP)
effective procedure
{ANY}
require
  • group_ /= Void
ensure
is_ready: BOOLEAN
effective function
{ANY}
ensure
direct_input: BOOLEAN
writable attribute
{ANY}
Is the program's input stream read directly from the standard input stream rather than from input?
set_direct_input (direct_input_: BOOLEAN)
effective procedure
{ANY}
ensure
direct_output: BOOLEAN
writable attribute
{ANY}
Is the program's output stream sent directly to the standard output stream rather than to output?
set_direct_output (direct_output_: BOOLEAN)
effective procedure
{ANY}
ensure
direct_error: BOOLEAN
writable attribute
{ANY}
Is the program's error stream sent directly to the standard error stream rather than to error?
set_direct_error (direct_error_: BOOLEAN)
effective procedure
{ANY}
ensure
hash_code: INTEGER_32
effective function
{ANY}
The hash-code value of Current.
ensure
  • good_hash_value: Result >= 0
cleanup_streams
effective procedure
{}
execute (program: STRING, arguments: TRAVERSABLE[STRING], keep_environment: BOOLEAN)
deferred procedure
{ANY}
Execute the given program (how the program is discovered is OS-dependent), passing to it the arguments.
The environment is cleared if keep_environment is False.
require
execute_command_line (command_line: STRING, keep_environment: BOOLEAN)
deferred procedure
{ANY}
Execute the command_line through the operating system's basic shell.
The environment is cleared if keep_environment is False.
See also: SYSTEM.execute_command
require
  • command_line /= Void
  • not command_line.is_empty
  • is_ready
is_equal (other: PROCESS): BOOLEAN
deferred function
{ANY}
Is other attached to an object considered equal to current object?
require
  • other /= Void
ensure
  • Result implies hash_code = other.hash_code
  • commutative: generating_type = other.generating_type implies Result = other.is_equal(Current)