GNU
|
Liberty Eiffel
|
Automated Tests
|
Wiki
|
Savannah project
|
Debian packages
|
Documentation
>
libraries
>
WEB_JOB
+
Point of view
All features
ANY
JOB
LOOP_ITEM
UI_ITEM
All features
class WEB_JOB
Summary
top
Direct parents
Inherit list:
UI_JOB
Class invariant
top
on_new_job /= Void
priority /= Minimum_integer
Overview
top
Creation features
Features
{
LOOP_ITEM
}
prepare
(events:
EVENTS_SET
)
Use
events
to describe condition that make this job ready to
continue
.
is_ready
(events:
EVENTS_SET
):
BOOLEAN
Check if this job is ready to continue his work.
continue
Continue to do the job.
done
:
BOOLEAN
done
returns
True
when the job is finished.
restart
Configure the job like in its initial state.
{
UI_ITEM
}
new_bridge_application
(ui:
UI_APPLICATION
):
WEB_APPLICATION
new_bridge_window
(ui:
UI_WINDOW
):
WEB_WINDOW
new_bridge_panel
(ui:
UI_PANEL
):
WEB_PANEL
new_bridge_menu
(ui:
UI_MENU
):
WEB_MENU
new_bridge_text_field
(ui:
UI_TEXT_FIELD
):
WEB_TEXT_FIELD
new_bridge_button
(ui:
UI_BUTTON
):
WEB_BUTTON
{}
server
:
SOCKET_SERVER
application
:
WEB_APPLICATION
{}
connect
(a_application:
UI_APPLICATION
, a_on_new_job:
PROCEDURE
[
TUPLE 1
[
JOB
]])
on_new_job
:
PROCEDURE
[
TUPLE 1
[
JOB
]]
{
UI_ITEM
}
connect_bridge_application
(ui:
UI_APPLICATION
): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_APPLICATION[WEB_JOB, UI_TYPED_BRIDGE_WINDOW[WEB_JOB, UI_TYPED_BRIDGE_PANEL[WEB_JOB, UI_TYPED_BRIDGE_WIDGET[WEB_JOB]], UI_TYPED_BRIDGE_MENU[WEB_JOB, UI_TYPED_BRIDGE_MENU_ITEM[WEB_JOB]]]]]
connect_bridge_window
(ui:
UI_WINDOW
): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_WINDOW[WEB_JOB, UI_TYPED_BRIDGE_PANEL[WEB_JOB, UI_TYPED_BRIDGE_WIDGET[WEB_JOB]], UI_TYPED_BRIDGE_MENU[WEB_JOB, UI_TYPED_BRIDGE_MENU_ITEM[WEB_JOB]]]]
connect_bridge_panel
(ui:
UI_PANEL
): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_PANEL[WEB_JOB, UI_TYPED_BRIDGE_WIDGET[WEB_JOB]]]
connect_bridge_menu
(ui:
UI_MENU
): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_MENU[WEB_JOB, UI_TYPED_BRIDGE_MENU_ITEM[WEB_JOB]]]
connect_bridge_text_field
(ui:
UI_TEXT_FIELD
): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_TEXT_FIELD[WEB_JOB]]
connect_bridge_button
(ui:
UI_BUTTON
): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_BUTTON[WEB_JOB]]
{}
_inline_agent18
(job:
JOB
)
{
JOB
,
LOOP_ITEM
}
priority
:
INTEGER_32
never change a job's priority after inserting it in loop_item.
{
LOOP_ITEM
}
infix "<"
(other:
JOB
):
BOOLEAN
Maximum:
{}
Maximum_character_code
:
INTEGER_16
Largest supported code for
CHARACTER
values.
Maximum_integer_8
:
INTEGER_8
Largest supported value of type
INTEGER_8
.
Maximum_integer_16
:
INTEGER_16
Largest supported value of type
INTEGER_16
.
Maximum_integer
:
INTEGER_32
Largest supported value of type INTEGER/
INTEGER_32
.
Maximum_integer_32
:
INTEGER_32
Largest supported value of type INTEGER/
INTEGER_32
.
Maximum_integer_64
:
INTEGER_64
Largest supported value of type
INTEGER_64
.
Maximum_real_32
:
REAL_32
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.
Maximum_real_64
:
REAL_64
Largest non-special (no NaNs nor infinity) supported value of type REAL.
Maximum_real_80
:
REAL_EXTENDED
Largest supported value of type
REAL_80
.
Minimum:
{}
Minimum_character_code
:
INTEGER_16
Smallest supported code for
CHARACTER
values.
Minimum_integer_8
:
INTEGER_8
Smallest supported value of type
INTEGER_8
.
Minimum_integer_16
:
INTEGER_16
Smallest supported value of type
INTEGER_16
.
Minimum_integer
:
INTEGER_32
Smallest supported value of type INTEGER/
INTEGER_32
.
Minimum_integer_32
:
INTEGER_32
Smallest supported value of type INTEGER/
INTEGER_32
.
Minimum_integer_64
:
INTEGER_64
Smallest supported value of type
INTEGER_64
.
Minimum_real_32
:
REAL_32
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.
Minimum_real_64
:
REAL_64
Smallest non-special (no NaNs nor infinity) supported value of type REAL.
Minimum_real_80
:
REAL_64
Smallest supported value of type
REAL_80
.
Bits:
{}
Boolean_bits
:
INTEGER_32
Number of bits in a value of type
BOOLEAN
.
Character_bits
:
INTEGER_32
Number of bits in a value of type
CHARACTER
.
Integer_bits
:
INTEGER_32
Number of bits in a value of type INTEGER.
Real_bits
:
INTEGER_32
Number of bits in a value of type REAL.
Pointer_bits
:
INTEGER_32
Number of bits in a value of type
POINTER
.
{}
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.
prepare
(events:
EVENTS_SET
)
effective procedure
{
LOOP_ITEM
}
top
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
{
LOOP_ITEM
}
top
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
{
LOOP_ITEM
}
top
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
effective function
{
LOOP_ITEM
}
top
done
returns
True
when the job is finished.
Then the job may be
restart
(ed) if it needs to run again.
restart
effective procedure
{
LOOP_ITEM
}
top
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
):
WEB_APPLICATION
effective function
{
UI_ITEM
}
top
require
ui /= Void
ensure
Result /= Void
new_bridge_window
(ui:
UI_WINDOW
):
WEB_WINDOW
effective function
{
UI_ITEM
}
top
require
ui /= Void
ensure
Result /= Void
new_bridge_panel
(ui:
UI_PANEL
):
WEB_PANEL
effective function
{
UI_ITEM
}
top
require
ui /= Void
ensure
Result /= Void
new_bridge_menu
(ui:
UI_MENU
):
WEB_MENU
effective function
{
UI_ITEM
}
top
require
ui /= Void
ensure
Result /= Void
new_bridge_text_field
(ui:
UI_TEXT_FIELD
):
WEB_TEXT_FIELD
effective function
{
UI_ITEM
}
top
require
ui /= Void
ensure
Result /= Void
new_bridge_button
(ui:
UI_BUTTON
):
WEB_BUTTON
effective function
{
UI_ITEM
}
top
require
ui /= Void
ensure
Result /= Void
server
:
SOCKET_SERVER
writable attribute
{}
top
application
:
WEB_APPLICATION
writable attribute
{}
top
connect
(a_application:
UI_APPLICATION
, a_on_new_job:
PROCEDURE
[
TUPLE 1
[
JOB
]])
effective procedure
{}
top
require
a_application /= Void
on_new_job
:
PROCEDURE
[
TUPLE 1
[
JOB
]]
writable attribute
{}
top
connect_bridge_application
(ui:
UI_APPLICATION
): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_APPLICATION[WEB_JOB, UI_TYPED_BRIDGE_WINDOW[WEB_JOB, UI_TYPED_BRIDGE_PANEL[WEB_JOB, UI_TYPED_BRIDGE_WIDGET[WEB_JOB]], UI_TYPED_BRIDGE_MENU[WEB_JOB, UI_TYPED_BRIDGE_MENU_ITEM[WEB_JOB]]]]]
effective function
{
UI_ITEM
}
top
require
ui /= Void
connect_bridge_window
(ui:
UI_WINDOW
): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_WINDOW[WEB_JOB, UI_TYPED_BRIDGE_PANEL[WEB_JOB, UI_TYPED_BRIDGE_WIDGET[WEB_JOB]], UI_TYPED_BRIDGE_MENU[WEB_JOB, UI_TYPED_BRIDGE_MENU_ITEM[WEB_JOB]]]]
effective function
{
UI_ITEM
}
top
require
ui /= Void
connect_bridge_panel
(ui:
UI_PANEL
): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_PANEL[WEB_JOB, UI_TYPED_BRIDGE_WIDGET[WEB_JOB]]]
effective function
{
UI_ITEM
}
top
require
ui /= Void
connect_bridge_menu
(ui:
UI_MENU
): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_MENU[WEB_JOB, UI_TYPED_BRIDGE_MENU_ITEM[WEB_JOB]]]
effective function
{
UI_ITEM
}
top
require
ui /= Void
connect_bridge_text_field
(ui:
UI_TEXT_FIELD
): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_TEXT_FIELD[WEB_JOB]]
effective function
{
UI_ITEM
}
top
require
ui /= Void
connect_bridge_button
(ui:
UI_BUTTON
): UI_CONNECT_TYPED_ITEM[UI_TYPED_BRIDGE_BUTTON[WEB_JOB]]
effective function
{
UI_ITEM
}
top
require
ui /= Void
_inline_agent18
(job:
JOB
)
frozen
effective procedure
{}
top
priority
:
INTEGER_32
writable attribute
{
JOB
,
LOOP_ITEM
}
top
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
{
LOOP_ITEM
}
top
Maximum_character_code
:
INTEGER_16
{}
top
Largest supported code for
CHARACTER
values.
ensure
meaningful:
Result >= 127
Maximum_integer_8
:
INTEGER_8
is 127
constant attribute
{}
top
Largest supported value of type
INTEGER_8
.
Maximum_integer_16
:
INTEGER_16
is 32767
constant attribute
{}
top
Largest supported value of type
INTEGER_16
.
Maximum_integer
:
INTEGER_32
is 2147483647
constant attribute
{}
top
Largest supported value of type INTEGER/
INTEGER_32
.
Maximum_integer_32
:
INTEGER_32
is 2147483647
constant attribute
{}
top
Largest supported value of type INTEGER/
INTEGER_32
.
Maximum_integer_64
:
INTEGER_64
is 9223372036854775807
constant attribute
{}
top
Largest supported value of type
INTEGER_64
.
Maximum_real_32
:
REAL_32
is {REAL_32 3.4028234663852885981170418348451692544e+38}
constant attribute
{}
top
Largest non-special (no NaNs nor infinity) supported value of type
REAL_32
.
Maximum_real
:
REAL_64
{}
top
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
{}
top
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
{}
top
Largest supported value of type
REAL_80
.
ensure
meaningful:
Result >=
Maximum_real
Minimum_character_code
:
INTEGER_16
{}
top
Smallest supported code for
CHARACTER
values.
ensure
meaningful:
Result <= 0
Minimum_integer_8
:
INTEGER_8
is -128
constant attribute
{}
top
Smallest supported value of type
INTEGER_8
.
Minimum_integer_16
:
INTEGER_16
is -32768
constant attribute
{}
top
Smallest supported value of type
INTEGER_16
.
Minimum_integer
:
INTEGER_32
is -2147483648
constant attribute
{}
top
Smallest supported value of type INTEGER/
INTEGER_32
.
Minimum_integer_32
:
INTEGER_32
is -2147483648
constant attribute
{}
top
Smallest supported value of type INTEGER/
INTEGER_32
.
Minimum_integer_64
:
INTEGER_64
is -9223372036854775808
constant attribute
{}
top
Smallest supported value of type
INTEGER_64
.
Minimum_real_32
:
REAL_32
is {REAL_32 -3.40282346638528859811704183484516925440e+38}
constant attribute
{}
top
Smallest non-special (no NaNs nor infinity) supported value of type
REAL_32
.
Minimum_real
:
REAL_64
{}
top
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
{}
top
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
{}
top
Smallest supported value of type
REAL_80
.
ensure
meaningful:
Result <= 0.0
Boolean_bits
:
INTEGER_32
{}
top
Number of bits in a value of type
BOOLEAN
.
ensure
meaningful:
Result >= 1
Character_bits
:
INTEGER_32
{}
top
Number of bits in a value of type
CHARACTER
.
ensure
meaningful:
Result >= 1
large_enough:
{INTEGER_32 2} ^ Result >=
Maximum_character_code
Integer_bits
:
INTEGER_32
{}
top
Number of bits in a value of type INTEGER.
ensure
integer_definition:
Result = 32
Real_bits
:
INTEGER_32
is 64
constant attribute
{}
top
Number of bits in a value of type REAL.
Pointer_bits
:
INTEGER_32
{}
top
Number of bits in a value of type
POINTER
.
log
:
LOGGER
effective function
{}
top
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
{}
top
The cached logger.
The ugly name is intentional. Don't use directly.