summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/tests/Event/Basic/Wildcard.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/tests/Event/Basic/Wildcard.cpp')
-rw-r--r--TAO/orbsvcs/tests/Event/Basic/Wildcard.cpp479
1 files changed, 245 insertions, 234 deletions
diff --git a/TAO/orbsvcs/tests/Event/Basic/Wildcard.cpp b/TAO/orbsvcs/tests/Event/Basic/Wildcard.cpp
index 707257855c7..78b57c87ed0 100644
--- a/TAO/orbsvcs/tests/Event/Basic/Wildcard.cpp
+++ b/TAO/orbsvcs/tests/Event/Basic/Wildcard.cpp
@@ -9,240 +9,6 @@
ACE_RCSID(EC_Tests, Wildcard, "$Id$")
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_PushConsumer_Adapter<Supplier>;
-#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_PushConsumer_Adapter<Supplier>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-Consumer::Consumer (const char* name)
- : event_count (0),
- name_ (name)
-{
-}
-
-void
-Consumer::connect (RtecEventChannelAdmin::ConsumerAdmin_ptr consumer_admin,
- const RtecEventChannelAdmin::ConsumerQOS &qos,
- CORBA::Environment &ACE_TRY_ENV)
-{
- // The canonical protocol to connect to the EC
-
- RtecEventComm::PushConsumer_var consumer =
- this->_this (ACE_TRY_ENV);
- ACE_CHECK;
-
- this->supplier_proxy_ =
- consumer_admin->obtain_push_supplier (ACE_TRY_ENV);
- ACE_CHECK;
-
- this->supplier_proxy_->connect_push_consumer (consumer.in (),
- qos,
- ACE_TRY_ENV);
- ACE_CHECK;
-}
-
-void
-Consumer::disconnect (CORBA::Environment &ACE_TRY_ENV)
-{
- this->supplier_proxy_->disconnect_push_supplier (ACE_TRY_ENV);
- ACE_CHECK;
-
- PortableServer::POA_var consumer_poa =
- this->_default_POA (ACE_TRY_ENV);
- ACE_CHECK;
- PortableServer::ObjectId_var consumer_id =
- consumer_poa->servant_to_id (this, ACE_TRY_ENV);
- ACE_CHECK;
- consumer_poa->deactivate_object (consumer_id.in (), ACE_TRY_ENV);
- ACE_CHECK;
-}
-
-void
-Consumer::dump_results (int expected_count, int tolerance)
-{
- int diff = this->event_count - expected_count;
- if (diff > tolerance || diff < -tolerance)
- {
- ACE_DEBUG ((LM_DEBUG,
- "ERROR - %s unexpected number of events <%d>\n",
- this->name_,
- this->event_count));
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s - number of events <%d> within margins\n",
- this->name_,
- this->event_count));
- }
-}
-
-void
-Consumer::push (const RtecEventComm::EventSet& events,
- CORBA::Environment &)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- if (events.length () == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s (%P|%t) no events\n", this->name_));
- return;
- }
-
- this->event_count ++;
-#if 0
- if (this->event_count % 10 == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s (%P|%t): %d events received\n",
- this->name_,
- this->event_count));
- }
-#endif /* 0 */
-}
-
-void
-Consumer::disconnect_push_consumer (CORBA::Environment &)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
-}
-
-Supplier::Supplier (void)
- : consumer_adapter_ (this),
- event_source_ (-1),
- event_type_ (ACE_ES_EVENT_UNDEFINED)
-{
-}
-
-void
-Supplier::connect (RtecEventChannelAdmin::EventChannel_ptr event_channel,
- int milliseconds,
- int published_source,
- int published_type,
- int event_source,
- int event_type,
- CORBA::Environment &ACE_TRY_ENV)
-{
- this->event_source_ = event_source;
- this->event_type_ = event_type;
-
- // The canonical protocol to connect to the EC
- RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin =
- event_channel->for_consumers (ACE_TRY_ENV);
- ACE_CHECK;
-
- RtecEventComm::PushConsumer_var consumer =
- this->consumer_adapter_._this (ACE_TRY_ENV);
- ACE_CHECK;
-
- this->supplier_proxy_ =
- consumer_admin->obtain_push_supplier (ACE_TRY_ENV);
- ACE_CHECK;
-
- // Let's say that the execution time for event 2 is 1
- // milliseconds...
- ACE_Time_Value tv (0, milliseconds * 1000);
- TimeBase::TimeT time;
- ORBSVCS_Time::Time_Value_to_TimeT (time, tv);
-
- ACE_ConsumerQOS_Factory consumer_qos;
- consumer_qos.start_disjunction_group ();
- consumer_qos.insert_time (ACE_ES_EVENT_INTERVAL_TIMEOUT,
- time,
- 0);
-
- this->supplier_proxy_->connect_push_consumer (consumer.in (),
- consumer_qos.get_ConsumerQOS (),
- ACE_TRY_ENV);
- ACE_CHECK;
-
- RtecEventChannelAdmin::SupplierAdmin_var supplier_admin =
- event_channel->for_suppliers (ACE_TRY_ENV);
- ACE_CHECK;
-
- RtecEventComm::PushSupplier_var supplier =
- this->_this (ACE_TRY_ENV);
- ACE_CHECK;
-
- this->consumer_proxy_ =
- supplier_admin->obtain_push_consumer (ACE_TRY_ENV);
- ACE_CHECK;
-
- ACE_SupplierQOS_Factory supplier_qos;
- supplier_qos.insert (published_source,
- published_type,
- 0, 1);
-
- this->consumer_proxy_->connect_push_supplier (supplier.in (),
- supplier_qos.get_SupplierQOS (),
- ACE_TRY_ENV);
- ACE_CHECK;
-}
-
-void
-Supplier::disconnect (CORBA::Environment &ACE_TRY_ENV)
-{
- this->supplier_proxy_->disconnect_push_supplier (ACE_TRY_ENV);
- ACE_CHECK;
-
- PortableServer::POA_var consumer_poa =
- this->consumer_adapter_._default_POA (ACE_TRY_ENV);
- ACE_CHECK;
- PortableServer::ObjectId_var consumer_id =
- consumer_poa->servant_to_id (&this->consumer_adapter_, ACE_TRY_ENV);
- ACE_CHECK;
- consumer_poa->deactivate_object (consumer_id.in (), ACE_TRY_ENV);
- ACE_CHECK;
-
- this->consumer_proxy_->disconnect_push_consumer (ACE_TRY_ENV);
- ACE_CHECK;
-
- PortableServer::POA_var supplier_poa =
- this->_default_POA (ACE_TRY_ENV);
- ACE_CHECK;
- PortableServer::ObjectId_var supplier_id =
- supplier_poa->servant_to_id (this, ACE_TRY_ENV);
- ACE_CHECK;
- supplier_poa->deactivate_object (supplier_id.in (), ACE_TRY_ENV);
- ACE_CHECK;
-}
-
-void
-Supplier::push (const RtecEventComm::EventSet&,
- CORBA::Environment &ACE_TRY_ENV)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- RtecEventComm::EventSet event (1);
- event.length (1);
- event[0].header.source = this->event_source_;
- event[0].header.type = this->event_type_;
-
- this->consumer_proxy_->push (event, ACE_TRY_ENV);
-
-#if 0
- static int event_count = 0;
- event_count++;
- if (event_count % 10 == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "Supplier (%P|%t): %d events sent\n",
- event_count));
- }
-#endif /* 0 */
-}
-
-void
-Supplier::disconnect_push_consumer (CORBA::Environment &)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
-}
-
-void
-Supplier::disconnect_push_supplier (CORBA::Environment &)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
-}
int
main (int argc, char* argv[])
{
@@ -491,3 +257,248 @@ main (int argc, char* argv[])
ACE_ENDTRY;
return 0;
}
+
+// ****************************************************************
+
+Consumer::Consumer (const char* name)
+ : event_count (0),
+ name_ (name)
+{
+}
+
+void
+Consumer::connect (RtecEventChannelAdmin::ConsumerAdmin_ptr consumer_admin,
+ const RtecEventChannelAdmin::ConsumerQOS &qos,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ // The canonical protocol to connect to the EC
+
+ RtecEventComm::PushConsumer_var consumer =
+ this->_this (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ this->supplier_proxy_ =
+ consumer_admin->obtain_push_supplier (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ this->supplier_proxy_->connect_push_consumer (consumer.in (),
+ qos,
+ ACE_TRY_ENV);
+ ACE_CHECK;
+}
+
+void
+Consumer::disconnect (CORBA::Environment &ACE_TRY_ENV)
+{
+ this->supplier_proxy_->disconnect_push_supplier (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ PortableServer::POA_var consumer_poa =
+ this->_default_POA (ACE_TRY_ENV);
+ ACE_CHECK;
+ PortableServer::ObjectId_var consumer_id =
+ consumer_poa->servant_to_id (this, ACE_TRY_ENV);
+ ACE_CHECK;
+ consumer_poa->deactivate_object (consumer_id.in (), ACE_TRY_ENV);
+ ACE_CHECK;
+}
+
+void
+Consumer::dump_results (int expected_count, int tolerance)
+{
+ int diff = this->event_count - expected_count;
+ if (diff > tolerance || diff < -tolerance)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "ERROR - %s unexpected number of events <%d>\n",
+ this->name_,
+ this->event_count));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "%s - number of events <%d> within margins\n",
+ this->name_,
+ this->event_count));
+ }
+}
+
+void
+Consumer::push (const RtecEventComm::EventSet& events,
+ CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ if (events.length () == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "%s (%P|%t) no events\n", this->name_));
+ return;
+ }
+
+ this->event_count ++;
+#if 0
+ if (this->event_count % 10 == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "%s (%P|%t): %d events received\n",
+ this->name_,
+ this->event_count));
+ }
+#endif /* 0 */
+}
+
+void
+Consumer::disconnect_push_consumer (CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+// ****************************************************************
+
+Supplier::Supplier (void)
+ : consumer_adapter_ (this),
+ event_source_ (-1),
+ event_type_ (ACE_ES_EVENT_UNDEFINED)
+{
+}
+
+void
+Supplier::connect (RtecEventChannelAdmin::EventChannel_ptr event_channel,
+ int milliseconds,
+ int published_source,
+ int published_type,
+ int event_source,
+ int event_type,
+ CORBA::Environment &ACE_TRY_ENV)
+{
+ this->event_source_ = event_source;
+ this->event_type_ = event_type;
+
+ // The canonical protocol to connect to the EC
+ RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin =
+ event_channel->for_consumers (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ RtecEventComm::PushConsumer_var consumer =
+ this->consumer_adapter_._this (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ this->supplier_proxy_ =
+ consumer_admin->obtain_push_supplier (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ // Let's say that the execution time for event 2 is 1
+ // milliseconds...
+ ACE_Time_Value tv (0, milliseconds * 1000);
+ TimeBase::TimeT time;
+ ORBSVCS_Time::Time_Value_to_TimeT (time, tv);
+
+ ACE_ConsumerQOS_Factory consumer_qos;
+ consumer_qos.start_disjunction_group ();
+ consumer_qos.insert_time (ACE_ES_EVENT_INTERVAL_TIMEOUT,
+ time,
+ 0);
+
+ this->supplier_proxy_->connect_push_consumer (consumer.in (),
+ consumer_qos.get_ConsumerQOS (),
+ ACE_TRY_ENV);
+ ACE_CHECK;
+
+ RtecEventChannelAdmin::SupplierAdmin_var supplier_admin =
+ event_channel->for_suppliers (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ RtecEventComm::PushSupplier_var supplier =
+ this->_this (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ this->consumer_proxy_ =
+ supplier_admin->obtain_push_consumer (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ ACE_SupplierQOS_Factory supplier_qos;
+ supplier_qos.insert (published_source,
+ published_type,
+ 0, 1);
+
+ this->consumer_proxy_->connect_push_supplier (supplier.in (),
+ supplier_qos.get_SupplierQOS (),
+ ACE_TRY_ENV);
+ ACE_CHECK;
+}
+
+void
+Supplier::disconnect (CORBA::Environment &ACE_TRY_ENV)
+{
+ this->supplier_proxy_->disconnect_push_supplier (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ PortableServer::POA_var consumer_poa =
+ this->consumer_adapter_._default_POA (ACE_TRY_ENV);
+ ACE_CHECK;
+ PortableServer::ObjectId_var consumer_id =
+ consumer_poa->servant_to_id (&this->consumer_adapter_, ACE_TRY_ENV);
+ ACE_CHECK;
+ consumer_poa->deactivate_object (consumer_id.in (), ACE_TRY_ENV);
+ ACE_CHECK;
+
+ this->consumer_proxy_->disconnect_push_consumer (ACE_TRY_ENV);
+ ACE_CHECK;
+
+ PortableServer::POA_var supplier_poa =
+ this->_default_POA (ACE_TRY_ENV);
+ ACE_CHECK;
+ PortableServer::ObjectId_var supplier_id =
+ supplier_poa->servant_to_id (this, ACE_TRY_ENV);
+ ACE_CHECK;
+ supplier_poa->deactivate_object (supplier_id.in (), ACE_TRY_ENV);
+ ACE_CHECK;
+}
+
+void
+Supplier::push (const RtecEventComm::EventSet&,
+ CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ RtecEventComm::EventSet event (1);
+ event.length (1);
+ event[0].header.source = this->event_source_;
+ event[0].header.type = this->event_type_;
+
+ this->consumer_proxy_->push (event, ACE_TRY_ENV);
+
+#if 0
+ static int event_count = 0;
+ event_count++;
+ if (event_count % 10 == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Supplier (%P|%t): %d events sent\n",
+ event_count));
+ }
+#endif /* 0 */
+}
+
+void
+Supplier::disconnect_push_consumer (CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+void
+Supplier::disconnect_push_supplier (CORBA::Environment &)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+// ****************************************************************
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+
+template class ACE_PushConsumer_Adapter<Supplier>;
+
+#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+
+#pragma instantiate ACE_PushConsumer_Adapter<Supplier>
+
+#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */