summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-05-21 01:38:16 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-05-21 01:38:16 +0000
commitdf9eb80fce8b5cc9c7b39553c88c2eb5087cebfc (patch)
treef56a8e39db58f5f5e3d484b4b6f471aac2803441 /TAO
parentdbc86102e20945b4d937dcdad06aba8271d926f4 (diff)
downloadATCD-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-99c19
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImplRepo_i.cpp48
-rw-r--r--TAO/tao/ORB.cpp2
-rw-r--r--TAO/tao/ORB.h9
-rw-r--r--TAO/tao/ORB.i6
-rw-r--r--TAO/tao/POA.cpp2
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>;