diff options
author | jai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-04-02 02:13:08 +0000 |
---|---|---|
committer | jai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-04-02 02:13:08 +0000 |
commit | 8c424b36bb5066c02334f5f6d1b2ae9bc09b99ae (patch) | |
tree | fe19c29174b4ab8821594a31683854ec30e385bb /TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.cpp | |
parent | 1daa4ce1d2729ce2581424af7985f554a8c33c60 (diff) | |
download | ATCD-8c424b36bb5066c02334f5f6d1b2ae9bc09b99ae.tar.gz |
Mon Apr 1 18:05:22 2002 Jaiganesh Balasubramanian <jai@doc.ece.uci.edu>
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.cpp | 61 |
1 files changed, 47 insertions, 14 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.cpp b/TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.cpp index 3a46ea8d99b..b92643bb4d0 100644 --- a/TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.cpp +++ b/TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.cpp @@ -16,9 +16,12 @@ #include "ace/streams.h" #include "orbsvcs/CosConcurrencyControlC.h" #include "tao/corba.h" +#include "tao/debug.h" #include "Concurrency_Utils.h" -ACE_RCSID(Concurrency, Concurrency_Utils, "$Id$") +ACE_RCSID (Concurrency, + Concurrency_Utils, + "$Id$") // Default constructor @@ -28,23 +31,27 @@ TAO_Concurrency_Server::TAO_Concurrency_Server (void) // Constructor which takes an ORB and POA. -TAO_Concurrency_Server::TAO_Concurrency_Server (CORBA::ORB_var &orb, - PortableServer::POA_var &poa) +TAO_Concurrency_Server::TAO_Concurrency_Server (CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa) { - this->init (orb, poa); + CORBA::Object_var obj = this->init (orb, poa); } // Function to initialize the concurrency server object under the // passed orb and poa. -int -TAO_Concurrency_Server::init (CORBA::ORB_var &orb, - PortableServer::POA_var &poa) +CORBA::Object_ptr +TAO_Concurrency_Server::init (CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa) { + CORBA::Object_var obj; + ACE_TRY_NEW_ENV { // @@ Huh?!? + this->poa_= PortableServer::POA::_duplicate (poa); + // Get the naming context ptr to NameService. // ACE_TRY_CHECK; @@ -52,14 +59,14 @@ TAO_Concurrency_Server::init (CORBA::ORB_var &orb, PortableServer::string_to_ObjectId ("ConcurrencyService"); poa->activate_object_with_id (id.in (), - &lock_set_factory_ + &this->lock_set_factory_ ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; // Stringify the objref we'll be implementing, and print it to // stdout. Someone will take that string and give it to a // client. Then release the object. - CORBA::Object_var obj = + obj = poa->id_to_reference (id.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; @@ -68,7 +75,7 @@ TAO_Concurrency_Server::init (CORBA::ORB_var &orb, orb->object_to_string (obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - + ACE_DEBUG ((LM_DEBUG, "listening as object <%s>\n", str.in ())); @@ -77,12 +84,40 @@ TAO_Concurrency_Server::init (CORBA::ORB_var &orb, { ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Concurrency Service"); + return CORBA::Object::_nil (); } ACE_ENDTRY; - return 0; + + return obj._retn (); } -// Get the lock set factory. +int +TAO_Concurrency_Server::fini (void) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_TRY + { + PortableServer::ObjectId_var id = + this->poa_->servant_to_id (&this->lock_set_factory_); + + this->poa_->deactivate_object (id.in () + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + if (TAO_debug_level > 0) + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + ACE_TEXT ("TAO_Concurrency_Server")); + } + + return -1; + } + ACE_ENDTRY; + + return 0; +} CC_LockSetFactory * TAO_Concurrency_Server::GetLockSetFactory(void) @@ -90,8 +125,6 @@ TAO_Concurrency_Server::GetLockSetFactory(void) return &this->lock_set_factory_; } -// Destructor. - TAO_Concurrency_Server::~TAO_Concurrency_Server (void) { } |