00001 #include "tao/Utils/Implicit_Deactivator.h" 00002 #include "tao/PortableServer/Servant_Base.h" 00003 00004 ACE_RCSID (Utils, 00005 Implicit_Deactivator, 00006 "$Id: Implicit_Deactivator.cpp 77151 2007-02-15 13:24:41Z johnnyw $") 00007 00008 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00009 00010 void 00011 TAO::Utils::Implicit_Deactivation_Functor::operator () ( 00012 PortableServer::ServantBase * servant) throw () 00013 { 00014 00015 try 00016 { 00017 PortableServer::POA_var poa (servant->_default_POA ()); 00018 00019 PortableServer::ObjectId_var id (poa->servant_to_id (servant)); 00020 00021 poa->deactivate_object (id.in()); 00022 } 00023 catch (...) 00024 { 00025 // @@ Cannot let exceptions escape, yet we need to log them! 00026 } 00027 } 00028 00029 TAO_END_VERSIONED_NAMESPACE_DECL