diff options
Diffstat (limited to 'TAO/orbsvcs/examples/Notify/Lanes/README')
-rw-r--r-- | TAO/orbsvcs/examples/Notify/Lanes/README | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/TAO/orbsvcs/examples/Notify/Lanes/README b/TAO/orbsvcs/examples/Notify/Lanes/README new file mode 100644 index 00000000000..f08b653ab39 --- /dev/null +++ b/TAO/orbsvcs/examples/Notify/Lanes/README @@ -0,0 +1,62 @@ + +Lanes example +============= + +This example shows how to use RTCORBA lanes with Notification to +create a priority path between suppliers and consumers. + +The example consists of 2 executables: +./Supplier and ./Consumer + +Each of these encapsulate a Supplier and Consumer process consisting +of exactly 1 Notification PushSupplier and a Notification PushConsumer +respectively. + +First we start the Naming and RT Notification Service. + +Then we start the Supplier. The Supplier starts up and creates an event channel. It uses the +<set_qos> to set the ThreadpoolLanesParams QoS on the event +channel. This QoS specifies a lane for each priority that a consumer +will run at. There is also an extra lane created at priority 0 (Note: +the example uses the continuous priority mapping policy) to facilitate +invocations by the supplier's worker thread for administrative methods +(such as <subscription_change>). + +Then we start each consumer at prorities 1,2.3.. sequentially. The +run_test.pl script shows 2 consumers at priority 1 and 2. + +Each consumer is specified a priority at which it is hosted in an RT +POA. The consumer client process creates an RT POA with 1 lane and +activates the consumer in it. + +Each consumer send a subscription change message to the event channel +for its type. The message reaches the supplier and it updates its +count of the consumers that have connected. + +When the expected number of consumers have connected, the suppliers +starts a loop in which it send an event each to the event channel with +the correct priority and evvent type for each consumer. + +The RT_Notification matches the lane for the proxy consumer and sends +the event to the consumer using the CLIENT_PROPAGATED priority model. + +Running the example +=================== + +Simply execute the run_test.pl script in this directoty. +Remember, you must have root privileges to set RT priorities. + +Expected result: +================ + +You should see the following messages: + +(4784, 328)Initializing Consumer Client with lane priority = 2, event type = (TEST_TYPE_2) +(6020, 6032)Initializing Consumer Client with lane priority = 1, event type = (TEST_TYPE_1) +(6060, 4532) Supplier is sending an event of type TEST_TYPE_1 at priority 1 +(6020, 6068) Consumer received event with priority = 1 and thread priority = 1 +(6060, 4532) Supplier is sending an event of type TEST_TYPE_2 at priority 2 +(4784, 4760) Consumer received event with priority = 2 and thread priority = 2 + +if there is a mismatch in the expected results. The consumer will +print a warning message. |