Banner showing base of Eiffel tower

Github

Download version 1.4.8: Windows or Linux

Network Library: Eiffel Remote Object Server (EROS)

This library has 40 classes.

ECF: eros.ecf

Source code: directory list

EROS (for Eiffel Remote Object Server), is an experimental an XML orientated remote procedure call application framework with an original protocol based purely on XML processing instructions rather that any special XML tags.

Custom Variables

When including eros.ecf in your project it is necessary to define a custom variable eros_server_enabled. To build a server application set the value to true. To build a client application set value to false.

Features

Demo Applications

Two demo applications are provided that do signal math including Fourier transformations based on Greg Lee's Numeric Eiffel Library.

  1. signal-math.ecf is a multi-mode command-line application with 2 client modes and 2 server-test modes.
  2. signal-math-server.ecf performs the same calculations as the server mode of demo 1 but is multi-threaded and has a graphical user interface to control the thread logging context visible in terminal console.

Directory: library/network/eros

. /client

. /common/buildables

. /common/object

. /common/request

. /common/support

. /server/UI

. /server/support

. /server/thread-communication

client

EROS_CALL_REQUEST_HANDLER_PROXY

Remote routine call request handler proxy

Further Information

Click on class link to see client examples.

EROS_CLIENT_CONNECTION

Eros client connection

Further Information

Click on class link to see client examples.

EROS_MAKEABLE_RESULT

Eros makeable result

Further Information

Click on class link to see client examples.

EROS_PROXY

Base class for objects that function as network-client proxies for objects hosted on server

Further Information

Click on class link to see client examples.

EROS_REMOTE_REQUEST

Format EROS request something like:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?create $generator?>
<vector-complex>
   <row..
</vector-complex>
<?call {MY_CLASS}.my_routine (1, {COLUMN_VECTOR_COMPLEX_64}, 0.1, 2.3e-15, 'hello')?>

OR

<?call{MY_CLASS}.my_routine?>

Note: COLUMN_VECTOR_COMPLEX_64 is an example of a place holder for an instance of a class deserialized from XML

Further Information

Click on class link to see notes.

EROS_RESULT

Remote result from call to remote EROS function

common/buildables

EROS_DEFAULT_RESULT

Eros default result

EROS_ERROR_RESULT

Eros error result

EROS_PROCEDURE_STATUS

Procedure execution acknowlegement

EROS_STRING_RESULT

Eros string result

EROS_XML_RESULT

Eros XML result

Further Information

Click on class link to see client examples.

common/object

EROS_OBJECT

Object with routines remotely callable via EROS protcol

EROS_REMOTELY_ACCESSIBLE

Object that is remotely accessible via EROS protocol

Further Information

Click on class link to see client examples.

EROS_REMOTE_XML_OBJECT_EXCHANGER

Remote xml object exchanger

common/request

EROS_CALL_REQUEST_BUILDABLE_FROM_NODE_SCAN

Routine call request buildable from node scan

EROS_CALL_REQUEST_HANDLER

Object to handle remote procedure call requests for the duration of a session. A session finishes when the procedure set_stopping is called either by the server shutdown process or remotely by the client.

Communication with the client is via either partial binary XML or plaintext XML. This mode is settable in either direction by set_inbound_transmission_type, set_outbound_transmission_type.

Further Information

Click on class link to see notes and client examples.

EROS_CALL_REQUEST_HANDLER_I

Remote routine call request handler i

EROS_CALL_REQUEST_PARSER

Parse call expression like for example:

{MY_CLASS}.my_routine (1, {COLUMN_VECTOR_COMPLEX_64}, 0.1, 2.3e-15, 'hello')

OR

{MY_CLASS}.my_routine

Note: COLUMN_VECTOR_COMPLEX_64 is an example of a place holder for an instance of a class deserialized from XML

EROS_CALL_REQUEST_PARSER_ROOT_BUILDER_CONTEXT

Routine call request parser root builder context

EROS_ROUTINE

Eros routine

common/support

EROS_ERRORS_ENUM

Enumeration EROS server error

EROS_REMOTE_CALL_CONSTANTS

Remote call constants

Further Information

Click on class link to see client examples.

EROS_REMOTE_CALL_ERRORS

Remote call errors

EROS_ROUTINE_CALL_SERVICE_EVENT_LISTENER

Listener for routine call request handling events

EROS_SERVER_APPLICATION

Server sub application

Further Information

Click on class link to see client examples.

EROS_SERVER_COMMAND

Eros server command for serializeable list of TYPES conforming to EROS_REMOTELY_ACCESSIBLE

Further Information

Click on class link to see client examples.

EROS_SHARED_ERROR

Shared eros error

server/UI

EROS_REMOTE_ROUTINE_CALL_SERVER_MAIN_WINDOW

Remote routine call server main window

Further Information

Click on class link to see client examples.

EROS_REMOTE_ROUTINE_CALL_SERVER_UI

Remote routine call server ui

EROS_SERVER_ACTIVITY_METERS

Server activity meters

Further Information

Click on class link to see client examples.

EROS_SHARED_PIXMAPS

Shared instance of EROS_STOCK_PIXMAPS

EROS_STOCK_PIXMAPS

Application pixmaps

EROS_UI_CONSTANTS

Eros ui constants

server/support

EROS_APPLICATION_OPTIONS

Eros application options

EROS_REMOTE_ROUTINE_CALL_SERVER_APPLICATION

Remote routine call server application

Further Information

Click on class link to see client examples.

EROS_ROUTINE_CALL_SERVICE_STATS

Routine call service stats

server/thread-communication

EROS_CALL_REQUEST_CLIENT_CONNECTION_QUEUE

Remote call client connection queue

EROS_CALL_REQUEST_CONNECTION_MANAGER_THREAD

Remote call connection manager thread

Further Information

Click on class link to see client examples.

EROS_CALL_REQUEST_DELEGATING_CONSUMER_THREAD

Remote call request delegating consumer thread

Further Information

Click on class link to see client examples.

EROS_CALL_REQUEST_HANDLING_THREAD

Remote routine call request handling thread

Further Information

Click on class link to see client examples.