+
Point of view
All features
class SOCKET_SERVER_JOB
Summary
Encapsulate the server in a sequencer-aware job.
Direct parents
Inherit list: JOB
Class invariant
Overview
Creation features
{ANY}
Features
{ANY}
{SERVER}
{}
The following features are inherited from JOB:
{LOOP_ITEM}
{}
{JOB, LOOP_ITEM}
{LOOP_ITEM}
Maximum:
{}
Minimum:
{}
Bits:
{}
when_connect (handler: PROCEDURE[TUPLE 1[SOCKET_INPUT_OUTPUT_STREAM]])
effective procedure
{ANY}
What to do when connection happens (i.e. some client tries to connect to the server).
The procedure is given the stream connected to the client.
require
when_shutdown (handler: PROCEDURE[TUPLE 1[SOCKET_SERVER_JOB]])
effective procedure
{ANY}
Should be more accurately be called when_shutdown_or_halt.
The agent is called when a shutdown or a halt of the server occurs.
require
shutdown
effective procedure
{ANY}
Wait for the connections to finish, then stop the server.
No more connections will be accepted.
require ensure
halt
effective procedure
{ANY}
require ensure
done: BOOLEAN
writable attribute
{ANY}
done returns True when the job is finished.
Then the job may be restart(ed) if it needs to run again.
will_shutdown: BOOLEAN
effective function
handle_shutdown
effective procedure
{}
require
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
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
make (a_server: SOCKET_SERVER, a_read_sync: BOOLEAN)
effective procedure
{}
server: SOCKET_SERVER
writable attribute
{}
read_sync: BOOLEAN
writable attribute
{}
writable attribute
{}
shutdown_handlers: FAST_ARRAY[PROCEDURE[TUPLE 1[SOCKET_SERVER_JOB]]]
writable attribute
{}
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.