summaryrefslogtreecommitdiff
path: root/TAO/examples/Event_Comm/README
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/examples/Event_Comm/README')
-rw-r--r--TAO/examples/Event_Comm/README98
1 files changed, 98 insertions, 0 deletions
diff --git a/TAO/examples/Event_Comm/README b/TAO/examples/Event_Comm/README
new file mode 100644
index 00000000000..fbb34bdf132
--- /dev/null
+++ b/TAO/examples/Event_Comm/README
@@ -0,0 +1,98 @@
+OVERVIEW
+
+This directory contains source code for a prototype CORBA-based
+distributed notification mechanism. This mechanism implements a
+"publish/subscribe" communication protocol. It allows Suppliers to
+pass messages containing object references to a dynamically managed
+group of Consumers. This is similar to the OMG COS Events Service,
+though not as sophisticated. For more examples on the COS Events
+Service check out $TAO_ROOT/orbsvcs/orbsvcs/.
+
+DIRECTORY STRUCTURE
+
+There are 3 executables:
+
+Notifier
+
+ -- The Notifier supplies events from Suppliers to Consumers
+ It which must be started first.
+ It has an instance of an IDL Notifier
+ object. This object accepts subscriptions from Consumers
+ and forwards events sent to it either via Consumers or
+ Suppliers.
+ The Notifier object is registered with a naming service
+ so that it can be located by other objects.
+ To run the Notifier, type:
+ notifier
+
+ To exit the Notifier press CTRL-C.
+ All consumers registered with the Notifier will shutdown.
+ Suppliers should however, be shutdown beforehand.
+Supplier:
+ On startup the Supplier gets hold of the Notifier object from
+ the naming service and registers itself with it.
+ The Supplier accepts strings from the user and sends them to
+ the Notifier.
+ To run the supplier type:
+ supplier
+
+ To exit the supplier type CTRL-C or type "quit".
+ To send strings to the Consumers, type the string on the prompt
+ and press ENTER.
+
+Consumer:
+ It has an instance of an IDL Consumer object.
+ This object is used to receive notifications from the
+ Notifier object.
+ When the Consumer starts up, it gets an object reference to
+ the Notifier.
+ It then subscribes its Consumer object with
+ the Notifier by passing an object reference.
+
+ In addition to passing an object reference to a
+ Notifier, the Consumer also may specify a
+ filtering criteria, which is a regular expression. If
+ the filtering criteria is the string "" then the Notifier
+ will send all Notifications to the Consumer (i.e., "" is
+ treated as a "wildcard"). Otherwise, the filtering
+ criteria is considered to be a regular expression,
+ and only those Notification tags that match the regular
+ expression will be forwarded to the Consumer. The regular
+ expressions are those used by ed(1) (see the regexp(5)
+ manual page for more info).
+
+ To run the Consumer, type:
+ consumer <filtering_criteria>
+
+ e.g. consumer a*b
+ will accept the following strings: ab , b, aaaab.
+
+ To send strings to other Consumers, type the string on the prompt
+ and press ENTER.
+
+RUNNING THE SAMPLE:
+
+To run the tests do the following:
+
+1. Compile everything.
+
+2. Start the Notifier as described above.
+
+3. Start the Supplier executable.
+
+4. Start up as many copies of the Consumer as you'd like.
+ Typically, I run each one in its own window.
+
+5. Once the Consumers have subscribed you can send them info by typing
+ commands in the Supplier window. These will be sent to all the
+ Consumers who have subscribed. Likewise, you can send messages
+ from a Consumer to all other Consumers by typing messages in a
+ Consumer window.
+
+ Note that if you type "quit" or ^C in a Consumer window the
+ Consumer will unsubscribe and shutdown its handlers and exit.
+ Likewise, if you type ^C in the Notifier window
+ the Notifier will disconnect all of its Consumers and exit.
+
+6. When you want to terminate a Consumer or a Supplier, just type ^C
+ or "quit" and the process will shut down gracefully.