The Event Service demo applications consist of four sets of applications.

For the untyped event service there are two servers that generate
events and two clients that consume these events.

For the typed event service there is one server and one client.

For the untyped factory event service there is one server and one
client.

For the typed factory event service there is one server and one
client.

The event data used in this example consist of the current time and
date information. These data are put on the event channel by either a
push supplier or a pull supplier. Two clients, namely a push consumer
and a pull consumer, are provided. These clients display the
information passed to the event channel by the servers.

To run all four event service demos we suggest setting up a
configuration file with (at least) the following information:

ooc.service.EventService=iioploc://<hostname>:<port1>/DefaultEventChannel
ooc.service.TypedEventService=iioploc://<hostname>:<port1>/DefaultTypedEventChannel
ooc.service.EventChannelFactory=iioploc://<hostname>:<port1>/DefaultEventChannelFactory
ooc.service.TypedEventChannelFactory=iioploc://<hostname>:<port1>/DefaultTypedEventChannelFactory
ooc.service.InterfaceRepository=iioploc://<hostname>:<port2>/DefaultRepository

where hostname and port<n> have been replaced with appropriate numbers.

Now set an environment variable to point to this file:

  ORBACUS_CONFIG=<filename>; export ORBACUS_CONFIG

Next run the event service:

  ../bin/eventserv &

Without any arguments, the server creates an untyped event channel.

If you want to run the typed event service demo then you must first
start the Interface Repository with the TimerUpdate.idl interface:

  irserv -I../idl TimerUpdate.idl &

Or you can feed the file into the irserv with the irfeed utility:

  irserv &
  irfeed -I../idl TimerUpdate.idl

You can then start a typed event service:

  ../bin/eventserv --typed-service


Once the untyped event service is active you can start the servers and
clients in any order you wish, e.g., with:

./PushServer
./PushClient
./PushClient

The servers regularly provide the event channel with date and time
information and on the screen you can see the clients displaying these
data.

To run the typed demos run:

./TypedPushServer
./TypedPushClient
./TypedPushClient

To run the untyped factory demos run:

./FactPushServer channel1
./FactPushClient channel1
./FactPushClient channel1

To run the typed factory demos run:

./FactTypedPushServer channel1
./FactTypedPushClient channel1
./FactTypedPushClient channel1

The event consumer applications (PullServer, PushClient,
TypedPushClient, FactPushClient, FactTypedPushClient) have the
following options:

-s, --slow
-t, --timeout
-n, --no-register

The --slow option causes the consumer to sleep for two seconds on the
reception of events. This is to simulate a slow consumer. This option
can be used to demonstrate that the event service is not affected by
slow consumers.

The --timeout causes the consumer to terminate after n seconds. Use
-1 to never terminate.

The --no-register option causes the consumer not to register with the
event channel. If this option is to be used the consumer must be registered
once with the event channel, and then re-run on the same port, else no
events will be received.

For example:

./PushClient -OAport 10000 --timeout -1
<press Ctrl-C>
./PushClient -OAport 10000 --no-register --timeout -1

