diff options
author | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-05-21 01:38:16 +0000 |
---|---|---|
committer | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-05-21 01:38:16 +0000 |
commit | df9eb80fce8b5cc9c7b39553c88c2eb5087cebfc (patch) | |
tree | f56a8e39db58f5f5e3d484b4b6f471aac2803441 /TAO | |
parent | dbc86102e20945b4d937dcdad06aba8271d926f4 (diff) | |
download | ATCD-df9eb80fce8b5cc9c7b39553c88c2eb5087cebfc.tar.gz |
Thu May 20 20:29:16 1999 Irfan Pyarali <irfan@cs.wustl.edu>
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLog-99c | 19 | ||||
-rw-r--r-- | TAO/orbsvcs/ImplRepo_Service/ImplRepo_i.cpp | 48 | ||||
-rw-r--r-- | TAO/tao/ORB.cpp | 2 | ||||
-rw-r--r-- | TAO/tao/ORB.h | 9 | ||||
-rw-r--r-- | TAO/tao/ORB.i | 6 | ||||
-rw-r--r-- | TAO/tao/POA.cpp | 2 |
6 files changed, 40 insertions, 46 deletions
diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c index 3a87720f471..205aa2d61c0 100644 --- a/TAO/ChangeLog-99c +++ b/TAO/ChangeLog-99c @@ -1,6 +1,15 @@ +Thu May 20 20:29:16 1999 Irfan Pyarali <irfan@cs.wustl.edu> + + * tao/ORB.i (orb_core): Added accessor. + + * tao/POA.cpp (implementation): Removed extra semi-colon. + + * orbsvcs/ImplRepo_Service/ImplRepo_i.cpp (invoke): Needed fixing + since the POA Current changed. + Thu May 20 20:34:35 1999 Nagarajan Surendran <naga@cs.wustl.edu> - * orbsvcs/orbsvcs/Makefile: + * orbsvcs/orbsvcs/Makefile: Added sfp to Makefile and updated dependencies. Thu May 20 20:00:08 1999 Jeff Parsons <parsons@cs.wustl.edu> @@ -11,26 +20,26 @@ Thu May 20 20:00:08 1999 Jeff Parsons <parsons@cs.wustl.edu> Thu May 20 19:52:49 1999 Nagarajan Surendran <naga@cs.wustl.edu> - * orbsvcs/orbsvcs/AV/AVStreams_i.{h,cpp}: + * orbsvcs/orbsvcs/AV/AVStreams_i.{h,cpp}: Changed TAO_StreamEndPoint from a template to non-template and added MSVC dominance warning disabling pragma and moved it from AVStreams_i_T.{h,cpp} to these files. Also Added a flowspec class to parse the flowSpec string into different components. - + * orbsvcs/orbsvcs/AV/AVStreams_i_T.{h,cpp}: Removed the AVStreams_i_T.{h,cpp} as they're no longer needed. * orbsvcs/orbsvcs/Property/CosPropertyService_i.{h,cpp}: Changed TAO_PropertySet from a template to non-template and added MSVC dominance warning disabling pragma and moved it from - CosPropertyService_i_T.{h,cpp} to these files. + CosPropertyService_i_T.{h,cpp} to these files. * orbsvcs/orbsvcs/Property/CosPropertyService_i_T.{h,cpp}: Removed these files as they're no longer needed. * orbsvcs/orbsvcs/Makefile: Updated dependencies. - + Thu May 20 18:46:44 1999 Pradeep Gore <pradeep@flamenco.cs.wustl.edu> * orbsvcs/examples/CosEC/Factory/Makefile: diff --git a/TAO/orbsvcs/ImplRepo_Service/ImplRepo_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImplRepo_i.cpp index 740b0bd849c..5b3607b1a2a 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImplRepo_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImplRepo_i.cpp @@ -657,51 +657,32 @@ void IR_Forwarder::invoke (CORBA::ServerRequest_ptr /* request */, CORBA::Environment &ACE_TRY_ENV) { - // Get the POA Current object reference - CORBA::Object_var obj = this->orb_var_->resolve_initial_references ("POACurrent"); - - TAO_ORB_Core *orb_core = TAO_ORB_Core_instance (); - TAO_POA_Current *poa_current = orb_core->poa_current (); - - if (ACE_TRY_ENV.exception () != 0) - { - ACE_TRY_ENV.print_exception ("PortableServer::Current::_narrow"); - return; - } + TAO_ORB_Core *orb_core = this->orb_var_->orb_core (); + TAO_POA_Current_Impl *poa_current_impl = orb_core->poa_current ().implementation (); // The servant determines the key associated with the database entry // represented by self - PortableServer::ObjectId_var oid = poa_current->get_object_id (ACE_TRY_ENV); - if (ACE_TRY_ENV.exception () != 0) - return; + PortableServer::ObjectId_var oid = poa_current_impl->get_object_id (ACE_TRY_ENV); + ACE_CHECK; // Now convert the id into a string CORBA::String_var key = PortableServer::ObjectId_to_string (oid.in ()); - PortableServer::POA_ptr poa = poa_current->get_POA (ACE_TRY_ENV); - if (ACE_TRY_ENV.exception () != 0) - return; + PortableServer::POA_ptr poa = poa_current_impl->get_POA (ACE_TRY_ENV); + ACE_CHECK; // Now FORWARD!!! Implementation_Repository::INET_Addr *new_addr = 0; - - ACE_TRY - { - new_addr = this->ir_impl_->activate_server (poa->the_name (), - ACE_TRY_ENV); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_RETHROW; - } - ACE_ENDTRY; + new_addr = this->ir_impl_->activate_server (poa->the_name (), + ACE_TRY_ENV); + ACE_CHECK; CORBA_Object_ptr forward_object = - this->orb_var_->key_to_object (poa_current->object_key (), + this->orb_var_->key_to_object (poa_current_impl->object_key (), 0, ACE_TRY_ENV); + ACE_CHECK; TAO_Stub *stub_obj = ACE_dynamic_cast (TAO_Stub *, forward_object->_stubobj ()); @@ -713,13 +694,8 @@ IR_Forwarder::invoke (CORBA::ServerRequest_ptr /* request */, iiop_pfile->port (new_addr->port_); iiop_pfile->host (new_addr->host_); -// if (TAO_debug_level > 0) -// ACE_DEBUG ((LM_DEBUG, -// "The forward_to is <%s>\n", -// this->orb_var_->object_to_string (forward_object, ACE_TRY_ENV))); - if (!CORBA::is_nil (forward_object)) - ACE_TRY_ENV.exception (new PortableServer::ForwardRequest (forward_object)); + ACE_THROW (PortableServer::ForwardRequest (forward_object)); else ACE_ERROR ((LM_ERROR, "Error: Forward_to reference is nil.\n")); diff --git a/TAO/tao/ORB.cpp b/TAO/tao/ORB.cpp index 22529f76169..0be668c7183 100644 --- a/TAO/tao/ORB.cpp +++ b/TAO/tao/ORB.cpp @@ -108,7 +108,7 @@ CORBA_ORB::InvalidName::_is_a (const char* interface_id) const || CORBA_UserException::_is_a (interface_id)); } -CORBA_ORB::CORBA_ORB (TAO_ORB_Core* orb_core) +CORBA_ORB::CORBA_ORB (TAO_ORB_Core *orb_core) : refcount_ (1), open_called_ (0), shutdown_lock_ (0), diff --git a/TAO/tao/ORB.h b/TAO/tao/ORB.h index ff45b06fdd1..4fde0587760 100644 --- a/TAO/tao/ORB.h +++ b/TAO/tao/ORB.h @@ -333,7 +333,7 @@ public: // ORB_Core has special privileges friend class TAO_ORB_Core; - friend TAO_Export TAO_ORB_Core* TAO_ORB_Core_instance (void); + friend TAO_Export TAO_ORB_Core *TAO_ORB_Core_instance (void); class TAO_Export InvalidName : public CORBA_UserException { @@ -632,6 +632,9 @@ public: CORBA::Boolean _optimize_collocation_objects (void); // Get collocation optimization status. + TAO_ORB_Core *orb_core (void) const; + // Get the ORB core. + #if !defined(__GNUC__) || __GNUC__ > 2 || __GNUC_MINOR__ >= 8 typedef CORBA_ORB_ptr _ptr_type; typedef CORBA_ORB_var _var_type; @@ -640,7 +643,7 @@ public: protected: // We must be created via the <ORB_init> call. - CORBA_ORB (TAO_ORB_Core* orb_core); + CORBA_ORB (TAO_ORB_Core *orb_core); virtual ~CORBA_ORB (void); CORBA_Object_ptr resolve_poa_current (CORBA_Environment &TAO_IN_ENV); @@ -747,7 +750,7 @@ private: TAO_Leader_Follower_Info leader_follower_info_; // Information about the leader follower model - TAO_ORB_Core* orb_core_; + TAO_ORB_Core *orb_core_; // The ORB_Core that created us.... #ifdef TAO_HAS_VALUETYPE diff --git a/TAO/tao/ORB.i b/TAO/tao/ORB.i index 7307b6c30e9..f99fd2ee274 100644 --- a/TAO/tao/ORB.i +++ b/TAO/tao/ORB.i @@ -341,6 +341,12 @@ CORBA_ORB::_optimize_collocation_objects (void) return this->optimize_collocation_objects_; } +ACE_INLINE TAO_ORB_Core * +CORBA_ORB::orb_core (void) const +{ + return this->orb_core_; +} + // ************************************************************* // Inline operations for class CORBA_ORB_var // ************************************************************* diff --git a/TAO/tao/POA.cpp b/TAO/tao/POA.cpp index 8bc89442890..e5faa1c2f65 100644 --- a/TAO/tao/POA.cpp +++ b/TAO/tao/POA.cpp @@ -3365,7 +3365,7 @@ TAO_POA_Current::implementation (TAO_POA_Current_Impl *new_current) TAO_POA_Current_Impl *old = tss->poa_current_impl_; tss->poa_current_impl_ = new_current; return old; -}; +} #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) template class ACE_Array<PortableServer::ObjectId>; |