summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp147
1 files changed, 0 insertions, 147 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp
deleted file mode 100644
index d4b9f5a9826..00000000000
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-//
-// $Id$
-//
-
-#include "orbsvcs/Event/EC_Gateway.h"
-
-TAO_EC_Gateway::TAO_EC_Gateway (void)
- : consumer_ (this),
- supplier_ (this)
-{
-}
-
-TAO_EC_Gateway::~TAO_EC_Gateway (void)
-{
-}
-
-int
-TAO_EC_Gateway::open (RtecEventChannelAdmin::EventChannel_ptr remote_ec,
- RtecEventChannelAdmin::EventChannel_ptr local_ec,
- const RtecEventChannelAdmin::ConsumerQOS& subscriptions,
- const RtecEventChannelAdmin::SupplierQOS& publications,
- CORBA::Environment &_env)
-{
- TAO_TRY
- {
- // = Connect as a supplier to the local EC
- RtecEventChannelAdmin::SupplierAdmin_var supplier_admin =
- local_ec->for_suppliers (TAO_TRY_ENV);
- TAO_CHECK_ENV;
-
- this->consumer_proxy_ =
- supplier_admin->obtain_push_consumer (TAO_TRY_ENV);
- TAO_CHECK_ENV;
-
- RtecEventComm::PushSupplier_var supplier_ref =
- this->supplier_._this (TAO_TRY_ENV);
- TAO_CHECK_ENV;
-
- this->consumer_proxy_->connect_push_supplier (supplier_ref.in (),
- publications,
- TAO_TRY_ENV);
- TAO_CHECK_ENV;
-
- RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin =
- remote_ec->for_consumers (TAO_TRY_ENV);
- TAO_CHECK_ENV;
-
- this->supplier_proxy_ =
- consumer_admin->obtain_push_supplier (TAO_TRY_ENV);
- TAO_CHECK_ENV;
-
- RtecEventComm::PushConsumer_var consumer_ref =
- this->consumer_._this (TAO_TRY_ENV);
- TAO_CHECK_ENV;
-
- this->supplier_proxy_->connect_push_consumer (consumer_ref.in (),
- subscriptions,
- TAO_TRY_ENV);
- TAO_CHECK_ENV;
- }
- TAO_CATCHANY
- {
- TAO_TRY_ENV.print_exception ("TAO_EC_Gateway::open");
- TAO_RETHROW_RETURN (-1);
- }
- TAO_ENDTRY;
-
- return 0;
-}
-
-void
-TAO_EC_Gateway::disconnect_push_consumer (CORBA::Environment &)
-{
- ACE_DEBUG ((LM_DEBUG,
- "Supplier-consumer received disconnect from channel.\n"));
-}
-
-void
-TAO_EC_Gateway::disconnect_push_supplier (CORBA::Environment &)
-{
- ACE_DEBUG ((LM_DEBUG,
- "Supplier received disconnect from channel.\n"));
-}
-
-void
-TAO_EC_Gateway::push (const RtecEventComm::EventSet &events,
- CORBA::Environment & _env)
-{
- // ACE_DEBUG ((LM_DEBUG, "TAO_EC_Gateway::push - "));
-
- if (events.length () == 0)
- {
- // ACE_DEBUG ((LM_DEBUG, "no events\n"));
- return;
- }
-
- // ACE_DEBUG ((LM_DEBUG, "ECP: %d event(s)\n", events.length ()));
-
- // @@ TODO, there is an extra data copy here, we should do the event
- // modification without it and only compact the necessary events.
- int count = 0;
- RtecEventComm::EventSet out (events.length ());
- for (u_int i = 0; i < events.length (); ++i)
- {
- if (events[i].ttl_ > 0)
- {
- count++;
- out.length (count);
- out[count - 1] = events[i];
- out[count - 1].ttl_--;
- }
- }
-
- if (count > 0)
- {
- this->consumer_proxy_->push (out, _env);
- }
-}
-
-int
-TAO_EC_Gateway::shutdown (CORBA::Environment& _env)
-{
- TAO_TRY
- {
- this->consumer_proxy_->disconnect_push_consumer (TAO_TRY_ENV);
- TAO_CHECK_ENV;
-
- // Disconnect from the push supplier.
- this->supplier_proxy_->disconnect_push_supplier (TAO_TRY_ENV);
- TAO_CHECK_ENV;
- }
- TAO_CATCHANY
- {
- TAO_RETHROW_RETURN(-1);
- }
- TAO_ENDTRY;
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_PushConsumer_Adapter<TAO_EC_Gateway>;
-template class ACE_PushSupplier_Adapter<TAO_EC_Gateway>;
-#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_PushConsumer_Adapter<TAO_EC_Gateway>
-#pragma instantiate ACE_PushSupplier_Adapter<TAO_EC_Gateway>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */