diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.cpp | 92 |
1 files changed, 30 insertions, 62 deletions
diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.cpp b/TAO/orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.cpp index 26a990ce886..9a9b4854c61 100644 --- a/TAO/orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.cpp +++ b/TAO/orbsvcs/orbsvcs/CosEvent/ProxyPushConsumer_i.cpp @@ -7,15 +7,8 @@ #include "orbsvcs/RtecEventCommS.h" #include "orbsvcs/CosEventCommS.h" #include "ProxyPushConsumer_i.h" -#include "ace/Auto_Ptr.h" -#if defined(_MSC_VER) -#pragma warning(disable:4250) -#endif /* _MSC_VER */ - -class TAO_CosEC_PushSupplierWrapper : - public virtual POA_RtecEventComm::PushSupplier, - public virtual PortableServer::RefCountServantBase +class TAO_CosEC_PushSupplierWrapper : public POA_RtecEventComm::PushSupplier { // = TITLE // A Wrapper for the Rtec PushSupplier. @@ -32,7 +25,7 @@ public: ~TAO_CosEC_PushSupplierWrapper (void); // Destructor. - virtual void disconnect_push_supplier (CORBA::Environment &ACE_TRY_ENV); + virtual void disconnect_push_supplier (CORBA::Environment &TAO_TRY_ENV); // Disconnects the push supplier. private: @@ -46,10 +39,6 @@ private: // The Cos PushSupplier that we're proxying for. }; -#if defined(_MSC_VER) -#pragma warning(default:4250) -#endif /* _MSC_VER */ - TAO_CosEC_PushSupplierWrapper::TAO_CosEC_PushSupplierWrapper (CosEventComm::PushSupplier_ptr supplier) : supplier_ (CosEventComm::PushSupplier::_duplicate (supplier)) @@ -57,32 +46,33 @@ TAO_CosEC_PushSupplierWrapper::TAO_CosEC_PushSupplierWrapper // No-Op. } -TAO_CosEC_PushSupplierWrapper::~TAO_CosEC_PushSupplierWrapper (void) +TAO_CosEC_PushSupplierWrapper::~TAO_CosEC_PushSupplierWrapper () { // No-Op. } void -TAO_CosEC_PushSupplierWrapper::disconnect_push_supplier (CORBA::Environment &ACE_TRY_ENV) +TAO_CosEC_PushSupplierWrapper::disconnect_push_supplier (CORBA::Environment &TAO_TRY_ENV) { - this->supplier_->disconnect_push_supplier (ACE_TRY_ENV); + this->supplier_->disconnect_push_supplier (TAO_TRY_ENV); // Deactivate the supplier proxy PortableServer::POA_var poa = - this->_default_POA (ACE_TRY_ENV); - ACE_CHECK; + this->_default_POA (TAO_TRY_ENV); + TAO_CHECK_ENV_RETURN_VOID (TAO_TRY_ENV); PortableServer::ObjectId_var id = poa->servant_to_id (this, - ACE_TRY_ENV); - ACE_CHECK; + TAO_TRY_ENV); + TAO_CHECK_ENV_RETURN_VOID (TAO_TRY_ENV); poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; + TAO_TRY_ENV); + TAO_CHECK_ENV_RETURN_VOID (TAO_TRY_ENV); // @@ If we keep a list remember to remove this object from the // list. + delete this; } TAO_CosEC_ProxyPushConsumer_i::TAO_CosEC_ProxyPushConsumer_i (const RtecEventChannelAdmin::SupplierQOS &qos, @@ -101,7 +91,7 @@ TAO_CosEC_ProxyPushConsumer_i::~TAO_CosEC_ProxyPushConsumer_i (void) void TAO_CosEC_ProxyPushConsumer_i::push (const CORBA::Any &data, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &TAO_TRY_ENV) { RtecEventComm::Event buffer[1]; // Create an event set that does not own the buffer.... @@ -132,27 +122,30 @@ TAO_CosEC_ProxyPushConsumer_i::push (const CORBA::Any &data, e.data.any_value = data; this->proxypushconsumer_->push (events, - ACE_TRY_ENV); + TAO_TRY_ENV); } void -TAO_CosEC_ProxyPushConsumer_i::disconnect_push_consumer (CORBA::Environment &ACE_TRY_ENV) +TAO_CosEC_ProxyPushConsumer_i::disconnect_push_consumer (CORBA::Environment &TAO_TRY_ENV) { - this->proxypushconsumer_->disconnect_push_consumer (ACE_TRY_ENV); + this->proxypushconsumer_->disconnect_push_consumer (TAO_TRY_ENV); // Deactivate the ProxyPushConsumer PortableServer::POA_var poa = - this->_default_POA (ACE_TRY_ENV); - ACE_CHECK; + this->_default_POA (TAO_TRY_ENV); + + TAO_CHECK_ENV_RETURN_VOID (TAO_TRY_ENV); PortableServer::ObjectId_var id = poa->servant_to_id (this, - ACE_TRY_ENV); - ACE_CHECK; + TAO_TRY_ENV); + TAO_CHECK_ENV_RETURN_VOID (TAO_TRY_ENV); poa->deactivate_object (id.in (), - ACE_TRY_ENV); - ACE_CHECK; + TAO_TRY_ENV); + TAO_CHECK_ENV_RETURN_VOID (TAO_TRY_ENV); + + delete this; } void @@ -162,31 +155,14 @@ TAO_CosEC_ProxyPushConsumer_i::connect_push_supplier (CosEventComm::PushSupplier if (this->connected ()) ACE_THROW (CosEventChannelAdmin::AlreadyConnected ()); - TAO_CosEC_PushSupplierWrapper *wrapper; - - ACE_NEW_THROW_EX (wrapper, + ACE_NEW_THROW_EX (this->wrapper_, TAO_CosEC_PushSupplierWrapper (push_supplier), - CORBA::NO_MEMORY ()); + CORBA::NO_MEMORY (CORBA::COMPLETED_NO)); ACE_CHECK; - auto_ptr <TAO_CosEC_PushSupplierWrapper> - auto_wrapper (wrapper); - - RtecEventComm::PushSupplier_ptr rtecpushsupplier - = auto_wrapper.get ()->_this (ACE_TRY_ENV); - ACE_CHECK; - - // give the ownership to the POA. - auto_wrapper.get ()->_remove_ref (ACE_TRY_ENV); - ACE_CHECK; - - this->proxypushconsumer_->connect_push_supplier - (rtecpushsupplier, - this->qos_, - ACE_TRY_ENV); - ACE_CHECK; - - this->wrapper_ = auto_wrapper.release (); + this->proxypushconsumer_->connect_push_supplier (this->wrapper_->_this (ACE_TRY_ENV), + this->qos_, + ACE_TRY_ENV); } int @@ -194,11 +170,3 @@ TAO_CosEC_ProxyPushConsumer_i::connected (void) { return this->wrapper_ == 0 ? 0 : 1; } - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - template class ACE_Auto_Basic_Ptr<TAO_CosEC_PushSupplierWrapper>; - template class auto_ptr<TAO_CosEC_PushSupplierWrapper>; -#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -# pragma instantiate ACE_Auto_Basic_Ptr<TAO_CosEC_PushSupplierWrapper> -# pragma instantiate auto_ptr<TAO_CosEC_PushSupplierWrapper> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ |