Banner showing base of Eiffel tower

Github

Download version 1.4.8: Windows or Linux

Network Library: Eiffel Remote Object Server (EROS)

Classes

ECF: eros.ecf

Directory source listing

Overview

EROS is an acronym for Eiffel Remote Object Server and is an experimental project that implements an Eiffel orientated XML remote procedure call protocol.

The two example projects demonstrate an EROS client calling an EROS server using the EROS protocol.

The server program has an optional GUI mode that allows real time monitoring of network service threads with thread logging displayed in the console. Thread context switching is controlled by the graphical interface as shown in this screenshot. Note that this shot was taken before the introduction of console color-highlighting to Eiffel-Loop.

The network protocol operates in two alternative modes (set by a command switch):

1. plain text XML

2. binary compressed XML

Build Notes

When including the 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.

Directory: library/network/eros

[ . ]

. /buildable-result

. /client

. /object-build

. /parse

. /server

. /server/UI

. /server/thread-communication

[ . ]

EL_EIFFEL_IDENTIFIER

Eiffel identifier

Further Information

Click on class link to see client examples.

EL_REMOTELY_ACCESSIBLE

Remotely accessible

Further Information

Click on class link to see client examples.

EL_REMOTE_CALL_CONSTANTS

Remote call constants

Further Information

Click on class link to see client examples.

EL_REMOTE_CALL_ERRORS

Remote call errors

EL_REMOTE_ROUTINE_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.

EL_REMOTE_ROUTINE_CALL_REQUEST_HANDLER_I

Remote routine call request handler i

EL_REMOTE_XML_OBJECT_EXCHANGER

Remote xml object exchanger

EL_ROUTINE_CALL_SERVICE_EVENT_LISTENER

Listener for routine call request handling events

buildable-result

EL_EROS_ERROR_RESULT

Eros error result

EL_EROS_PROCEDURE_STATUS

Procedure execution acknowlegement

EL_EROS_STRING_RESULT

Eros string result

client

EL_EROS_CLIENT_CONNECTION

Eros client connection

Further Information

Click on class link to see client examples.

EL_EROS_DEFAULT_ARGUMENT

Eros default argument

EL_EROS_REQUEST

Eros request

EL_REMOTE_PROXY

Remote proxy

Further Information

Click on class link to see client examples.

EL_REMOTE_ROUTINE_CALL_REQUEST_HANDLER_PROXY

Remote routine call request handler proxy

Further Information

Click on class link to see client examples.

object-build

EL_ROUTINE_CALL_REQUEST_BUILDABLE_FROM_NODE_SCAN

Routine call request buildable from node scan

parse

EL_ROUTINE_CALL_REQUEST_PARSER

parse something like:

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

OR

{MY_CLASS}.my_routine

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

EL_ROUTINE_CALL_REQUEST_PARSER_ROOT_BUILDER_CONTEXT

Routine call request parser root builder context

server

EL_REMOTE_ROUTINE_CALL_SERVER_APPLICATION

Remote routine call server application

Further Information

Click on class link to see client examples.

EL_ROUTINE_CALL_SERVICE_STATS

Routine call service stats

server/UI

EL_EROS_UI_CONSTANTS

Eros ui constants

EL_REMOTE_ROUTINE_CALL_SERVER_MAIN_WINDOW

Remote routine call server main window

Further Information

Click on class link to see client examples.

EL_REMOTE_ROUTINE_CALL_SERVER_UI

Remote routine call server ui

EL_SERVER_ACTIVITY_METERS

Server activity meters

Further Information

Click on class link to see client examples.

server/thread-communication

EL_REMOTE_CALL_CLIENT_CONNECTION_QUEUE

Remote call client connection queue

EL_REMOTE_CALL_CONNECTION_MANAGER_THREAD

Remote call connection manager thread

Further Information

Click on class link to see client examples.

EL_REMOTE_CALL_REQUEST_DELEGATING_CONSUMER_THREAD

Remote call request delegating consumer thread

Further Information

Click on class link to see client examples.

EL_REMOTE_ROUTINE_CALL_REQUEST_HANDLING_THREAD

Remote routine call request handling thread

Further Information

Click on class link to see client examples.