summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-06-22 04:34:29 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-06-22 04:34:29 +0000
commitbdb846618b856a1efdef51706e633e9b2f5e725d (patch)
tree027243dd9739585a7058c9cea5fb76e0b55df2b5
parent63aa58639a381e9aa184c2e84abbf8c1300a484e (diff)
downloadATCD-bdb846618b856a1efdef51706e633e9b2f5e725d.tar.gz
ChangeLogTag:Mon Jun 21 23:34:06 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r--TAO/ChangeLog-99c11
-rw-r--r--TAO/tao/IORManipulation.cpp24
-rw-r--r--TAO/tao/IORManipulation.h36
-rw-r--r--TAO/tao/IORS.cpp13
-rw-r--r--TAO/tao/IORS.h4
5 files changed, 80 insertions, 8 deletions
diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c
index 668c37f8123..f8704bf1117 100644
--- a/TAO/ChangeLog-99c
+++ b/TAO/ChangeLog-99c
@@ -1,3 +1,14 @@
+Mon Jun 21 23:34:06 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
+
+ * tao/IORManipulation.h:
+ * tao/IORManipulation.cpp:
+ Fixed throw specs
+
+ * tao/IORS.h:
+ * tao/IORS.cpp:
+ Fixed problems with the _tao_create_collocated()
+ implementation.
+
Mon Jun 21 22:56:17 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/tests/Event/Event.dsw:
diff --git a/TAO/tao/IORManipulation.cpp b/TAO/tao/IORManipulation.cpp
index 306b87adbc6..30bb984721f 100644
--- a/TAO/tao/IORManipulation.cpp
+++ b/TAO/tao/IORManipulation.cpp
@@ -35,6 +35,10 @@ CORBA::Object_ptr
TAO_IOR_Manipulation_impl::merge_iors (
const TAO_IOP::TAO_IOR_Manipulation::IORList & iors,
CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ TAO_IOP::TAO_IOR_Manipulation::EmptyProfileList,
+ TAO_IOP::TAO_IOR_Manipulation::Duplicate,
+ TAO_IOP::TAO_IOR_Manipulation::Invalid_IOR))
{
// we need to create a new CORBA::Object which has the union of the
// two profile lists. However, if any profiles are duplicates (i.e. in
@@ -133,6 +137,12 @@ TAO_IOR_Manipulation_impl::add_profiles (
CORBA::Object_ptr ior1,
CORBA::Object_ptr ior2,
CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ TAO_IOP::TAO_IOR_Manipulation::EmptyProfileList,
+ TAO_IOP::TAO_IOR_Manipulation::Duplicate,
+ TAO_IOP::TAO_IOR_Manipulation::Invalid_IOR
+ ))
{
// Get an estimate of the number of profiles
@@ -148,6 +158,12 @@ TAO_IOR_Manipulation_impl::remove_profiles (
CORBA::Object_ptr ior1,
CORBA::Object_ptr ior2,
CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ TAO_IOP::TAO_IOR_Manipulation::Invalid_IOR,
+ TAO_IOP::TAO_IOR_Manipulation::EmptyProfileList,
+ TAO_IOP::TAO_IOR_Manipulation::NotFound
+ ))
{
// First verify they are the same type!
CORBA::String_var type_id = ior1->_stubobj ()->type_id;
@@ -221,6 +237,10 @@ TAO_IOR_Manipulation_impl::is_in_ior (
CORBA::Object_ptr ior1,
CORBA::Object_ptr ior2,
CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ TAO_IOP::TAO_IOR_Manipulation::NotFound
+ ))
{
CORBA::ULong count=0;
TAO_Profile *pfile1, *pfile2;
@@ -249,6 +269,10 @@ CORBA::ULong
TAO_IOR_Manipulation_impl::get_profile_count (
CORBA::Object_ptr ior,
CORBA::Environment &ACE_TRY_ENV)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ TAO_IOP::TAO_IOR_Manipulation::EmptyProfileList
+ ))
{
CORBA::ULong count;
count = ior->_stubobj ()->get_base_profiles ().profile_count ();
diff --git a/TAO/tao/IORManipulation.h b/TAO/tao/IORManipulation.h
index ed991faca10..c7616d8ec75 100644
--- a/TAO/tao/IORManipulation.h
+++ b/TAO/tao/IORManipulation.h
@@ -41,26 +41,52 @@ public:
virtual CORBA::Object_ptr merge_iors (
const TAO_IOP::TAO_IOR_Manipulation::IORList & iors,
- CORBA::Environment &ACE_TRY_ENV = CORBA::default_environment ());
+ CORBA::Environment &ACE_TRY_ENV = CORBA::default_environment ())
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ TAO_IOP::TAO_IOR_Manipulation::EmptyProfileList,
+ TAO_IOP::TAO_IOR_Manipulation::Duplicate,
+ TAO_IOP::TAO_IOR_Manipulation::Invalid_IOR
+ ));
virtual CORBA::Object_ptr add_profiles (
CORBA::Object_ptr ior1,
CORBA::Object_ptr ior2,
- CORBA::Environment &ACE_TRY_ENV = CORBA::default_environment ());
+ CORBA::Environment &ACE_TRY_ENV = CORBA::default_environment ())
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ TAO_IOP::TAO_IOR_Manipulation::EmptyProfileList,
+ TAO_IOP::TAO_IOR_Manipulation::Duplicate,
+ TAO_IOP::TAO_IOR_Manipulation::Invalid_IOR
+ ));
virtual CORBA::Object_ptr remove_profiles (
CORBA::Object_ptr ior1,
CORBA::Object_ptr ior2,
- CORBA::Environment &ACE_TRY_ENV = CORBA::default_environment ());
+ CORBA::Environment &ACE_TRY_ENV = CORBA::default_environment ())
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ TAO_IOP::TAO_IOR_Manipulation::Invalid_IOR,
+ TAO_IOP::TAO_IOR_Manipulation::EmptyProfileList,
+ TAO_IOP::TAO_IOR_Manipulation::NotFound
+ ));
virtual CORBA::ULong is_in_ior (
CORBA::Object_ptr ior1,
CORBA::Object_ptr ior2,
- CORBA::Environment &ACE_TRY_ENV = CORBA::default_environment ());
+ CORBA::Environment &ACE_TRY_ENV = CORBA::default_environment ())
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ TAO_IOP::TAO_IOR_Manipulation::NotFound
+ ));
virtual CORBA::ULong get_profile_count (
CORBA::Object_ptr ior,
- CORBA::Environment &ACE_TRY_ENV = CORBA::default_environment ());
+ CORBA::Environment &ACE_TRY_ENV = CORBA::default_environment ())
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ TAO_IOP::TAO_IOR_Manipulation::EmptyProfileList
+ ));
};
#endif /* TAO_IOR_MANIPULATION_H */
diff --git a/TAO/tao/IORS.cpp b/TAO/tao/IORS.cpp
index 1a4eca1700d..ec9b0171a95 100644
--- a/TAO/tao/IORS.cpp
+++ b/TAO/tao/IORS.cpp
@@ -69,9 +69,18 @@ POA_TAO_IOP::TAO_IOR_Manipulation::_this (CORBA_Environment &ACE_TRY_ENV)
}
void*
-POA_TAO_IOP::TAO_IOR_Manipulation::_create_collocated_objref (CORBA::ULong type, TAO_Stub *stub)
+POA_TAO_IOP::TAO_IOR_Manipulation::_create_collocated_objref (
+ const char* repository_id,
+ CORBA::ULong type,
+ TAO_Stub *stub)
{
- return new POA_TAO_IOP::_tao_collocated_TAO_IOR_Manipulation (this, stub);
+ ACE_UNUSED_ARG (type);
+ if (!strcmp ("IDL:TAO_IOP/TAO_IOR_Manipulation:1.0",repository_id))
+ return ACE_static_cast (
+ TAO_IOP::TAO_IOR_Manipulation_ptr,
+ new POA_TAO_IOP::_tao_collocated_TAO_IOR_Manipulation (this, stub)
+ );
+ return 0;
}
POA_TAO_IOP::_tao_collocated_TAO_IOR_Manipulation::_tao_collocated_TAO_IOR_Manipulation (
diff --git a/TAO/tao/IORS.h b/TAO/tao/IORS.h
index 61b4bb7f15f..121b00547a2 100644
--- a/TAO/tao/IORS.h
+++ b/TAO/tao/IORS.h
@@ -54,7 +54,9 @@ TAO_NAMESPACE POA_TAO_IOP
virtual const char* _interface_repository_id (void) const;
-virtual void* _create_collocated_objref(CORBA::ULong type, TAO_Stub *sobj);
+ virtual void* _create_collocated_objref(const char *repository_id,
+ CORBA::ULong type,
+ TAO_Stub *sobj);
virtual CORBA::Object_ptr merge_iors (
const TAO_IOP::TAO_IOR_Manipulation::IORList & iors,