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 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 ). 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.