TAO_RTEvent
library. TAO_RTOLDEvent
contains the old implementation for the real-time Event Service, in
addition to this the TAO_RTSchedEvent
contains the
components that will support scheduling in the new Event Service.
This means that applications using only the
TAO_RTEvent
library do not need to link the scheduling
service.
README
file in the
$TAO_ROOT/orbsvcs/orbsvcs/Event
directory.
For general documentation on the Event Service please read The Design and Performance of a Real-time CORBA Event Service.
The simplest test for the Event Channel is Event_Latency
,
below are the basic instructions to run it:
$TAO_ROOT/orbsvcs
, this needs,
obviously, $TAO_ROOT/tao
and the IDL compiler in
$TAO_ROOT/TAO_IDL
.Run the naming service, the scheduling service, the event
service and the test in
$TAO_ROOT/TAO/orbsvcs/tests/Event_Latency
. As in:
$ cd $TAO_ROOT/orbsvcs
$ cd Naming_Service ; ./Naming_Service &
$ cd Event_Service ; ./Event_Service &
$ cd tests/Event_Latency ; ./Event_Latency -m 20 -j
&
You may want to run each program in a separate window. Try using
a fixed port number for the Naming Service
so you can use
the NameService
environment variable.
The script start_services
in
$TAO_ROOT/orbsvcs/tests
can help with this.
If you want real-time behavior on Solaris you may need to run these programs as root; on the other hand, this particular example really has no priority inversion, since only one thread runs at a time.
Another example is EC_Multiple
, numerous examples on how to run
this test can be found in the scripts located in
$TAO_ROOT/orbsvcs/tests/EC_Multiple
.
connect
operation. The default EC
configuration disallows this, but it is very easy to change it.
RtecChannelAdmin::Observer
class. Once more using CORBA
for this interface cost us little or nothing because it is usually
used by objects collocated with the EC.
TAO_EC_UDP_Receiver
is a helper class that receives
events from multicast groups and dispatches them as a supplier to
some event channel. This class has to join the right
multicast groups, using the Observer
described above and
the RtecUDPAdmin
to map the subscriptions into multicast
groups it can do this dynamically, as consumers join or leave its
Event Channel.
TAO_EC_UDP_Sender
objects can shared the same socket.
Gateway
to connect two event channels was moved
from a test to the library. The corresponding test
(EC_Multiple
) has been expanded and improved.
EC_Gateways
with the
EventChannel
implementation, the event channel will
automatically update the subscription list as consumers subscribe
to the EC.
Event_Service
program creates a collocated
Scheduling Service
this works around a problem in the ORB
when running on multiprocessor.
Startup and shutdown were revised, the event channel shutdown cleanly now.
$TAO_ROOT/orbsvcs/tests/EC_Throughput
), this one
ilustrate how to use the TAO extensions to create octet sequences
based on CDR streams, without incurring in extra copies. This is
useful to implement custom marshaling or late dermarhaling of the
event payload. Future versions of the test will help measuring the
EC throughput, hence the name.