diff options
Diffstat (limited to 'TAO/orbsvcs/tests/Event/Mcast/RTEC_MCast_Federated/EchoEventSupplier_i.cpp')
-rw-r--r-- | TAO/orbsvcs/tests/Event/Mcast/RTEC_MCast_Federated/EchoEventSupplier_i.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/Event/Mcast/RTEC_MCast_Federated/EchoEventSupplier_i.cpp b/TAO/orbsvcs/tests/Event/Mcast/RTEC_MCast_Federated/EchoEventSupplier_i.cpp new file mode 100644 index 00000000000..be8c74dbe2e --- /dev/null +++ b/TAO/orbsvcs/tests/Event/Mcast/RTEC_MCast_Federated/EchoEventSupplier_i.cpp @@ -0,0 +1,26 @@ +// $Id$ + +// EchoEventSupplier_i.cpp +// Implements a PushSupplier. + +#include "EchoEventSupplier_i.h" +#include "tao/PortableServer/PS_CurrentC.h" + +// Constructor duplicates the ORB reference. +EchoEventSupplier_i::EchoEventSupplier_i(CORBA::ORB_ptr orb) + : orb_(CORBA::ORB::_duplicate(orb)) +{ + // Nothing to do. +} + +// Override the disconnect_push_Supplier() operation. +void EchoEventSupplier_i::disconnect_push_supplier() + throw(CORBA::SystemException) +{ + // Deactivate this object. + CORBA::Object_var obj = orb_->resolve_initial_references("POACurrent"); + PortableServer::Current_var current = PortableServer::Current::_narrow(obj.in()); + PortableServer::POA_var poa = current->get_POA(); + PortableServer::ObjectId_var objectId = current->get_object_id(); + poa->deactivate_object(objectId.in()); +} |