class WAITPID_INPUT
Summary
A specific input stream that gathers child process exit status. It must be created at most once.
If this stream is created then exiting children will send data in this channel.
Each child sends exactly one empty line, plus "out-of-band" information containing the child PID and its exit status.
Direct parents
Inherit list: TERMINAL_INPUT_STREAM
Insert list: SINGLETON
Class invariant
Overview
Creation features
{PROCESS_WAIT}
Features
{ANY}
{FILTER}
{}
{ANY}
{ANY}
{FILTER_INPUT_STREAM}
{FILTER}
{ANY}
{}
{ANY}
{}
{STREAM_HANDLER}
{ANY}
{}
{RECYCLING_POOL}
  • recycle
    Do whatever needs to be done to free resources or recycle other objects when recycling this one
{}
  • dispose
    Action to be executed just before garbage collection reclaims an object.
{}
{ANY}
Skipping separators:
{ANY}
To read one number at a time:
{ANY}
To read one line or one word at a time:
{ANY}
Other features:
{ANY}
{}
{FILTER}
{ANY}
  • is_equal (other: WAITPID_INPUT): BOOLEAN
    Is other attached to an object considered equal to current object?
{}
is_connected: BOOLEAN
is True
constant attribute
{ANY}
True if the stream is connected.
can_disconnect: BOOLEAN
is False
constant attribute
{ANY}
True if the stream can be safely disconnected (without data loss, etc.)
disconnect
effective procedure
{ANY}
Try to disconnect the stream.
can_unread_character: BOOLEAN
effective function
{ANY}
valid_last_character: BOOLEAN
effective function
{ANY}
end_of_input: BOOLEAN
is False
constant attribute
{ANY}
end_of_input means the previous attempt in character reading failed because the end has been reached.
effective function
{ANY}
status: INTEGER_32
effective function
{ANY}
has_oob_info: BOOLEAN
effective function
{ANY}
drop_oop_info
effective procedure
{ANY}
filtered_descriptor: INTEGER_32
effective function
Find the descriptor of the terminal stream...
filtered_has_descriptor: BOOLEAN
is True
constant attribute
True if the underlying terminal stream has a descriptor
filtered_stream_pointer: POINTER
effective function
Find the pointer of the terminal stream...
filtered_has_stream_pointer: BOOLEAN
is False
constant attribute
True if the underlying terminal stream has a pointer
filtered_read_character
effective procedure
filtered_unread_character
effective procedure
filtered_last_character: CHARACTER
effective function
make
effective procedure
{}
writable attribute
{}
index: INTEGER_32
writable attribute
{}
upper: INTEGER_32
writable attribute
{}
oob_info_pid: RING_ARRAY[INTEGER_32]
writable attribute
{}
oob_info_status: RING_ARRAY[INTEGER_32]
writable attribute
{}
set_oob_info (a_pid: INTEGER_32, a_status: INTEGER_32)
effective procedure
{}
read_buffer
effective procedure
{}
basic_exec_waitpid_read_buffer (data: POINTER): INTEGER_32
{}
basic_exec_waitpid_fd: INTEGER_32
{}
basic_exec_waitpid_init (obj: WAITPID_INPUT)
{}
can_read_character: BOOLEAN
is True
constant attribute
{ANY}
Note that this state is usually temporary.
can_read_line: BOOLEAN
is True
constant attribute
{ANY}
read_character
effective procedure
{ANY}
If read_character fail, end_of_input is set.
read_line_in (buffer: STRING)
effective procedure
{ANY}
Same job as read_line but storage is directly done in buffer.
read_available_in (buffer: STRING, limit: INTEGER_32)
effective procedure
{ANY}
Same job as read_available but storage is directly done in buffer.
unread_character
effective procedure
{ANY}
last_character: CHARACTER
effective function
{ANY}
detach
effective procedure
{ANY}
Shake off the filter.
filtered_read_available_in (buffer: STRING, limit: INTEGER_32)
effective procedure
filtered_read_line_in (buffer: STRING)
effective procedure
writable attribute
The filter that uses this stream as backend
event_can_read: EVENT_DESCRIPTOR
effective function
{ANY}
writable attribute
{}
new_url: URL
effective function
{}
descriptor: INTEGER_32
effective function
{ANY}
Some OS-dependent descriptor.
has_descriptor: BOOLEAN
effective function
{ANY}
True if that stream can be associated to some OS-meaningful descriptor.
url: URL
frozen
effective function
{ANY}
The URL to this stream as resource
url_memory: URL
writable attribute
{}
stream_pointer: POINTER
effective function
Some Back-end-dependent pointer (FILE* in C, InputStream or OutputStream in Java)
has_stream_pointer: BOOLEAN
effective function
True if that stream can be associated to some Back-end-meaningful stream pointer.
event_exception: EVENT_DESCRIPTOR
effective function
{ANY}
stream_exception: STREAM_EXCEPTION
writable attribute
{}
recycle
effective procedure
Do whatever needs to be done to free resources or recycle other objects when recycling this one
dispose
effective procedure
{}
Action to be executed just before garbage collection reclaims an object.
sequencer_descriptor (file: POINTER): INTEGER_32
{}
is_filtered: BOOLEAN
deferred function
{ANY}
skip_separators
effective procedure
{ANY}
Skip all separators (see is_separator of class CHARACTER) and make the first non-separator available in last_character.
skip_separators_using (separators: STRING)
effective procedure
{ANY}
Same job as skip_separators using the separators set.
skip_remainder_of_line
effective procedure
{ANY}
Skip all the remainder of the line including the end of line delimiter itself.
read_integer
effective procedure
{ANY}
Read an integer according to the Eiffel syntax.
last_integer: INTEGER_32
writable attribute
{ANY}
Last integer read using read_integer.
valid_last_integer: BOOLEAN
writable attribute
{ANY}
Was the last call to read_integer successful ?
last_real: REAL_64
writable attribute
{ANY}
Last real read with read_real.
valid_last_real: BOOLEAN
writable attribute
{ANY}
Was the last call to read_real successful ?
read_real
effective procedure
{ANY}
Read a REAL and make the result available in last_real.
last_string: STRING
once function
{ANY}
Access to the unique common buffer to get for example the result computed by read_line, read_word, newline, etc.
read_line
effective procedure
{ANY}
Read a complete line ended by '%N' or end_of_input.%
read_available (limit: INTEGER_32)
effective procedure
{ANY}
Read as many characters as possible, as long as the stream does not block and up to the given limit.
read_word
effective procedure
{ANY}
Read a word using is_separator of class CHARACTER.
newline
effective procedure
{ANY}
Consume input until newline ('%N') is found.
reach_and_skip (keyword: STRING)
effective procedure
{ANY}
Try to skip enough characters in order to reach the keyword which is skipped too.
read_word_using (separators: STRING)
effective procedure
{ANY}
Same job as read_word using separators.
read_tail_in (str: STRING)
effective procedure
{ANY}
Read all remaining character of the stream in str.
io_getc (stream: POINTER): INTEGER_32
{}
io_ungetc (byte: CHARACTER, stream: POINTER)
{}
io_fread (buf: NATIVE_ARRAY[CHARACTER], size: INTEGER_32, stream: POINTER): INTEGER_32
{}
return size read or 0 if end of input (-1 on error => exception ?)
{}
set_filter (a_filter: FILTER)
effective procedure
Used by the filter itself to get attached
is_equal (other: WAITPID_INPUT): BOOLEAN
effective function
{ANY}
Is other attached to an object considered equal to current object?
is_real_singleton: BOOLEAN
effective function
{}
singleton_memory_pool: HASHED_DICTIONARY[POINTER, STRING]
once function
{}
This pool is unique in the whole system.
current_is_not_an_expanded_type: BOOLEAN
effective function
{}
Check that the dynamic type of the SINGLETON is not an expanded type.