Banner showing base of Eiffel tower

Github

Download version 1.4.8: Windows or Linux

Example: Eiffel EROS server with client example

Classes

ECF: eros-server.ecf & test-clients.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: example/net/EROS

. /server/source

. /server/source/sub-applications

. /source-common

. /test-clients/source

. /test-clients/source/client-proxies

. /test-clients/source/server

. /test-clients/source/sub-applications

server/source

APPLICATION_ROOT

Application root

BUILD_INFO

Build specification

server/source/sub-applications

CONSOLE_LOGGING_FOURIER_MATH_SERVER_APP

Console logging fourier math server app

FOURIER_MATH_SERVER_APP

Fourier math server app

source-common

COLUMN_VECTOR_COMPLEX_DOUBLE

Column vector complex double

E2X_COMPLEX_DOUBLE

E2X complex double

E2X_VECTOR_COMPLEX_DOUBLE

VECTOR_COMPLEX_DOUBLE serializable to format:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?type row?>
<vector-complex-double count="3">
   <row real="2.2" imag="3"/>
   <row real="2.2" imag="6.03"/>
   <row real="1.1" imag="3.5"/>
</vector-complex-double>

OR

<?xml version="1.0" encoding="ISO-8859-1"?>
<?type col?>
<vector-complex-double count="3">
   <col real="2.2" imag="3"/>
   <col real="2.2" imag="6.03"/>
   <col real="1.1" imag="3.5"/>
</vector-complex-double>

FAST_FOURIER_TRANSFORM_COMPLEX_DOUBLE

Fast fourier transform complex double

FAST_FOURIER_TRANSFORM_COMPLEX_DOUBLE_I

Common interface to local proxy interface and remote server class for calculating fourier transformations

Further Information

Click on class link to see descendants.

INSTALLABLE_SUB_APPLICATION

Application menus

ROW_VECTOR_COMPLEX_DOUBLE

Row vector complex double

SIGNAL_MATH

Signal math

SIGNAL_MATH_I

Common interface to local proxy interface and remote server class for generating a cosine waveform

Further Information

Click on class link to see descendants.

VECTOR_COMPLEX_DOUBLE_SEQUENCE

Vector complex double sequence

test-clients/source

APPLICATION_ROOT

Application root

BUILD_INFO

Build specification

test-clients/source/client-proxies

FAST_FOURIER_TRANSFORM_COMPLEX_DOUBLE_PROXY

Fast fourier transform complex double proxy

SIGNAL_MATH_PROXY

Signal math proxy

test-clients/source/server

EL_SERVER_SUB_APPLICATION

Server sub application

test-clients/source/sub-applications

BEXT_CLIENT_TEST_APP

Bext client test app

BEXT_SERVER_TEST_APP

Bext server test app

FOURIER_MATH_TEST_CLIENT_APP

Fourier math test client app

FOURIER_MATH_TEST_SERVER_APP

Single threaded test server. Notes:

For finalized exe use Ctrl-c to exit nicely.