+
Point of view
All features
class CURSES_JOB
Summary
Direct parents
Inherit list: UI_JOB
Insert list: NCURSES_HANDLER, NCURSES_TOOLS
Class invariant
Overview
Creation features
{USER_INTERFACE}
Features
{USER_INTERFACE}
{LOOP_ITEM}
{UI_ITEM}
{}
{}
{UI_ITEM}
  • connect_bridge_application (ui: UI_APPLICATION): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_APPLICATION[CURSES_JOB, UI_TYPED_BRIDGE_WINDOW[CURSES_JOB, UI_TYPED_BRIDGE_PANEL[CURSES_JOB, UI_TYPED_BRIDGE_WIDGET[CURSES_JOB]], UI_TYPED_BRIDGE_MENU[CURSES_JOB, UI_TYPED_BRIDGE_MENU_ITEM[CURSES_JOB]]]]]
  • connect_bridge_window (ui: UI_WINDOW): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_WINDOW[CURSES_JOB, UI_TYPED_BRIDGE_PANEL[CURSES_JOB, UI_TYPED_BRIDGE_WIDGET[CURSES_JOB]], UI_TYPED_BRIDGE_MENU[CURSES_JOB, UI_TYPED_BRIDGE_MENU_ITEM[CURSES_JOB]]]]
  • connect_bridge_panel (ui: UI_PANEL): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_PANEL[CURSES_JOB, UI_TYPED_BRIDGE_WIDGET[CURSES_JOB]]]
  • connect_bridge_menu (ui: UI_MENU): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_MENU[CURSES_JOB, UI_TYPED_BRIDGE_MENU_ITEM[CURSES_JOB]]]
  • connect_bridge_text_field (ui: UI_TEXT_FIELD): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_TEXT_FIELD[CURSES_JOB]]
  • connect_bridge_button (ui: UI_BUTTON): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_BUTTON[CURSES_JOB]]
{}
{JOB, LOOP_ITEM}
{LOOP_ITEM}
Maximum:
{}
Minimum:
{}
Bits:
{}
{}
  • log: LOGGER
    There is one logger per concrete type; for performance reasons it is cached in each instance.
  • log_memory__0_: LOGGER
    The cached logger.
{ANY}
{ANY}
start
effective procedure
prepare (events: EVENTS_SET)
effective procedure
Use events to describe condition that make this job ready to continue.
events describe the conditions to be satisfied before running this job for one more step.
require
  • events /= Void
  • not events.queryable
  • not done
is_ready (events: EVENTS_SET): BOOLEAN
effective function
Check if this job is ready to continue his work.
events describe the events which occurred.
require
  • events /= Void
  • events.queryable
  • not done
continue
effective procedure
Continue to do the job.
The work to do has to be small work and non blocking, it will continue on next call.
require
  • not done
done: BOOLEAN
writable attribute
done returns True when the job is finished.
Then the job may be restart(ed) if it needs to run again.
restart
effective procedure
Configure the job like in its initial state.
Example: when some window dialog appears a second time, all jobs from this window are restarted.
require
  • done
ensure
  • not done
new_bridge_application (ui: UI_APPLICATION): CURSES_APPLICATION
effective function
require
  • ui /= Void
ensure
  • Result /= Void
new_bridge_window (ui: UI_WINDOW): CURSES_WINDOW
effective function
require
  • ui /= Void
ensure
  • Result /= Void
new_bridge_panel (ui: UI_PANEL): CURSES_PANEL
effective function
require
  • ui /= Void
ensure
  • Result /= Void
new_bridge_menu (ui: UI_MENU): CURSES_MENU
effective function
require
  • ui /= Void
ensure
  • Result /= Void
new_bridge_text_field (ui: UI_TEXT_FIELD): CURSES_TEXT_FIELD
effective function
require
  • ui /= Void
ensure
  • Result /= Void
new_bridge_button (ui: UI_BUTTON): CURSES_BUTTON
effective function
require
  • ui /= Void
ensure
  • Result /= Void
application: CURSES_APPLICATION
writable attribute
{}
idle_timeout: INTEGER_32
writable attribute
{}
connect (a_application: UI_APPLICATION)
effective procedure
{}
set_idle_timeout (a_timeout: INTEGER_32)
effective procedure
{}
require
  • a_timeout > 0
on_new_job: PROCEDURE[TUPLE 1[JOB]]
writable attribute
{}
connect_bridge_application (ui: UI_APPLICATION): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_APPLICATION[CURSES_JOB, UI_TYPED_BRIDGE_WINDOW[CURSES_JOB, UI_TYPED_BRIDGE_PANEL[CURSES_JOB, UI_TYPED_BRIDGE_WIDGET[CURSES_JOB]], UI_TYPED_BRIDGE_MENU[CURSES_JOB, UI_TYPED_BRIDGE_MENU_ITEM[CURSES_JOB]]]]]
effective function
require
  • ui /= Void
connect_bridge_window (ui: UI_WINDOW): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_WINDOW[CURSES_JOB, UI_TYPED_BRIDGE_PANEL[CURSES_JOB, UI_TYPED_BRIDGE_WIDGET[CURSES_JOB]], UI_TYPED_BRIDGE_MENU[CURSES_JOB, UI_TYPED_BRIDGE_MENU_ITEM[CURSES_JOB]]]]
effective function
require
  • ui /= Void
connect_bridge_panel (ui: UI_PANEL): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_PANEL[CURSES_JOB, UI_TYPED_BRIDGE_WIDGET[CURSES_JOB]]]
effective function
require
  • ui /= Void
connect_bridge_menu (ui: UI_MENU): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_MENU[CURSES_JOB, UI_TYPED_BRIDGE_MENU_ITEM[CURSES_JOB]]]
effective function
require
  • ui /= Void
connect_bridge_text_field (ui: UI_TEXT_FIELD): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_TEXT_FIELD[CURSES_JOB]]
effective function
require
  • ui /= Void
connect_bridge_button (ui: UI_BUTTON): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_BUTTON[CURSES_JOB]]
effective function
require
  • ui /= Void
_inline_agent18 (job: JOB)
frozen
effective procedure
{}
priority: INTEGER_32
writable attribute
never change a job's priority after inserting it in loop_item.
Priority should only be set at creation time.
infix "<" (other: JOB): BOOLEAN
effective function
Maximum_character_code: INTEGER_16
{}
Largest supported code for CHARACTER values.
ensure
  • meaningful: Result >= 127
Maximum_integer_8: INTEGER_8
is 127
constant attribute
{}
Largest supported value of type INTEGER_8.
Maximum_integer_16: INTEGER_16
is 32767
constant attribute
{}
Largest supported value of type INTEGER_16.
Maximum_integer: INTEGER_32
is 2147483647
constant attribute
{}
Largest supported value of type INTEGER/INTEGER_32.
Maximum_integer_32: INTEGER_32
is 2147483647
constant attribute
{}
Largest supported value of type INTEGER/INTEGER_32.
Maximum_integer_64: INTEGER_64
is 9223372036854775807
constant attribute
{}
Largest supported value of type INTEGER_64.
Maximum_real_32: REAL_32
is {REAL_32 3.4028234663852885981170418348451692544e+38}
constant attribute
{}
Largest non-special (no NaNs nor infinity) supported value of type REAL_32.
Maximum_real: REAL_64
{}
Largest non-special (no NaNs nor infinity) supported value of type REAL.
Just to give an idea of this value: 1.79769313486231570....e+308
Maximum_real_64: REAL_64
{}
Largest non-special (no NaNs nor infinity) supported value of type REAL.
Just to give an idea of this value: 1.79769313486231570....e+308
Maximum_real_80: REAL_EXTENDED
{}
Largest supported value of type REAL_80.
ensure
Minimum_character_code: INTEGER_16
{}
Smallest supported code for CHARACTER values.
ensure
  • meaningful: Result <= 0
Minimum_integer_8: INTEGER_8
is -128
constant attribute
{}
Smallest supported value of type INTEGER_8.
Minimum_integer_16: INTEGER_16
is -32768
constant attribute
{}
Smallest supported value of type INTEGER_16.
Minimum_integer: INTEGER_32
is -2147483648
constant attribute
{}
Smallest supported value of type INTEGER/INTEGER_32.
Minimum_integer_32: INTEGER_32
is -2147483648
constant attribute
{}
Smallest supported value of type INTEGER/INTEGER_32.
Minimum_integer_64: INTEGER_64
is -9223372036854775808
constant attribute
{}
Smallest supported value of type INTEGER_64.
Minimum_real_32: REAL_32
is {REAL_32 -3.40282346638528859811704183484516925440e+38}
constant attribute
{}
Smallest non-special (no NaNs nor infinity) supported value of type REAL_32.
Minimum_real: REAL_64
{}
Smallest non-special (no NaNs nor infinity) supported value of type REAL.
Just to give an idea of this value: -1.79769313486231570....e+308
Minimum_real_64: REAL_64
{}
Smallest non-special (no NaNs nor infinity) supported value of type REAL.
Just to give an idea of this value: -1.79769313486231570....e+308
Minimum_real_80: REAL_64
{}
Smallest supported value of type REAL_80.
ensure
  • meaningful: Result <= 0.0
Boolean_bits: INTEGER_32
{}
Number of bits in a value of type BOOLEAN.
ensure
  • meaningful: Result >= 1
Character_bits: INTEGER_32
{}
Number of bits in a value of type CHARACTER.
ensure
Integer_bits: INTEGER_32
{}
Number of bits in a value of type INTEGER.
ensure
  • integer_definition: Result = 32
Real_bits: INTEGER_32
is 64
constant attribute
{}
Number of bits in a value of type REAL.
Pointer_bits: INTEGER_32
{}
Number of bits in a value of type POINTER.
log: LOGGER
effective function
{}
There is one logger per concrete type; for performance reasons it is cached in each instance.
ensure
  • Result /= Void
log_memory__0_: LOGGER
writable attribute
{}
The cached logger.
The ugly name is intentional. Don't use directly.
ncurses: NCURSES
once function
{ANY}
Access to the ncurses singleton.
invisible_cursor_mode: INTEGER_32
is 0
constant attribute
{ANY}
In this mode the cursor is invisible.
default_visible_cursor_mode: INTEGER_32
is 1
constant attribute
{ANY}
The default visible cursor mode.
special_visible_cursor_mode: INTEGER_32
is 2
constant attribute
{ANY}
In this mode cursor may blink in a more special or in a more visible way.
valid_cursor_visibility (code: INTEGER_32): BOOLEAN
effective function
{ANY}
ensure