summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/LoadBalancing/LoadBalancingI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/LoadBalancing/LoadBalancingI.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/LoadBalancing/LoadBalancingI.cpp81
1 files changed, 57 insertions, 24 deletions
diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LoadBalancingI.cpp b/TAO/orbsvcs/orbsvcs/LoadBalancing/LoadBalancingI.cpp
index 14ba8a32ae4..f8500c09cf2 100644
--- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LoadBalancingI.cpp
+++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LoadBalancingI.cpp
@@ -4,6 +4,11 @@
#include "LoadBalancingI.h"
+ACE_RCSID (LoadBalancing,
+ LoadBalancingI,
+ "$Id$")
+
+
// Implementation skeleton constructor
TAO_LoadBalancing_ReplicationManager_i::TAO_LoadBalancing_ReplicationManager_i
(void)
@@ -22,14 +27,16 @@ TAO_LoadBalancing_ReplicationManager_i::~TAO_LoadBalancing_ReplicationManager_i
void
TAO_LoadBalancing_ReplicationManager_i::register_load_notifier (
- TAO_LoadBalancing::LoadNotifier_ptr /* load_notifier */)
+ TAO_LoadBalancing::LoadNotifier_ptr /* load_notifier */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException))
{
ACE_THROW (CORBA::NO_IMPLEMENT());
}
TAO_LoadBalancing::LoadNotifier_ptr
-TAO_LoadBalancing_ReplicationManager_i::get_load_notifier (void)
+TAO_LoadBalancing_ReplicationManager_i::get_load_notifier (
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::InterfaceNotFound))
{
@@ -38,7 +45,8 @@ TAO_LoadBalancing_ReplicationManager_i::get_load_notifier (void)
void
TAO_LoadBalancing_ReplicationManager_i::set_default_properties (
- const TAO_LoadBalancing::Properties & /* props */)
+ const TAO_LoadBalancing::Properties & /* props */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::InvalidProperty,
TAO_LoadBalancing::UnsupportedProperty))
@@ -47,7 +55,8 @@ TAO_LoadBalancing_ReplicationManager_i::set_default_properties (
}
TAO_LoadBalancing::Properties *
-TAO_LoadBalancing_ReplicationManager_i::get_default_properties (void)
+TAO_LoadBalancing_ReplicationManager_i::get_default_properties (
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException))
{
ACE_THROW (CORBA::NO_IMPLEMENT ());
@@ -55,7 +64,8 @@ TAO_LoadBalancing_ReplicationManager_i::get_default_properties (void)
void
TAO_LoadBalancing_ReplicationManager_i::remove_default_properties (
- const TAO_LoadBalancing::Properties & /* props */)
+ const TAO_LoadBalancing::Properties & /* props */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::InvalidProperty,
TAO_LoadBalancing::UnsupportedProperty))
@@ -66,7 +76,8 @@ TAO_LoadBalancing_ReplicationManager_i::remove_default_properties (
void
TAO_LoadBalancing_ReplicationManager_i::set_type_properties (
const char * /* type_id */,
- const TAO_LoadBalancing::Properties & /* overrides */)
+ const TAO_LoadBalancing::Properties & /* overrides */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::InvalidProperty,
TAO_LoadBalancing::UnsupportedProperty))
@@ -76,7 +87,8 @@ TAO_LoadBalancing_ReplicationManager_i::set_type_properties (
TAO_LoadBalancing::Properties *
TAO_LoadBalancing_ReplicationManager_i::get_type_properties (
- const char * /* type_id */)
+ const char * /* type_id */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException))
{
ACE_THROW (CORBA::NO_IMPLEMENT ());
@@ -85,7 +97,8 @@ TAO_LoadBalancing_ReplicationManager_i::get_type_properties (
void
TAO_LoadBalancing_ReplicationManager_i::remove_type_properties (
const char * /* type_id */,
- const TAO_LoadBalancing::Properties & /* props */)
+ const TAO_LoadBalancing::Properties & /* props */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::InvalidProperty,
TAO_LoadBalancing::UnsupportedProperty))
@@ -96,7 +109,8 @@ TAO_LoadBalancing_ReplicationManager_i::remove_type_properties (
void
TAO_LoadBalancing_ReplicationManager_i::set_properties_dynamically (
TAO_LoadBalancing::ObjectGroup_ptr /* object_group */,
- const TAO_LoadBalancing::Properties & /* overrides */)
+ const TAO_LoadBalancing::Properties & /* overrides */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::ObjectGroupNotFound,
TAO_LoadBalancing::InvalidProperty,
@@ -107,7 +121,8 @@ TAO_LoadBalancing_ReplicationManager_i::set_properties_dynamically (
TAO_LoadBalancing::Properties *
TAO_LoadBalancing_ReplicationManager_i::get_properties (
- TAO_LoadBalancing::ObjectGroup_ptr /* object_group */)
+ TAO_LoadBalancing::ObjectGroup_ptr /* object_group */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::ObjectGroupNotFound))
{
@@ -119,7 +134,8 @@ TAO_LoadBalancing_ReplicationManager_i::create_member (
TAO_LoadBalancing::ObjectGroup_ptr /* object_group */,
const TAO_LoadBalancing::Location & /* the_location */,
const char * /* type_id */,
- const TAO_LoadBalancing::Criteria & /* the_criteria */)
+ const TAO_LoadBalancing::Criteria & /* the_criteria */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::ObjectGroupNotFound,
TAO_LoadBalancing::MemberAlreadyPresent,
@@ -135,7 +151,8 @@ TAO_LoadBalancing::ObjectGroup_ptr
TAO_LoadBalancing_ReplicationManager_i::add_member (
TAO_LoadBalancing::ObjectGroup_ptr /* object_group */,
const TAO_LoadBalancing::Location & /* the_location */,
- CORBA::Object_ptr /* member */)
+ CORBA::Object_ptr /* member */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::ObjectGroupNotFound,
TAO_LoadBalancing::MemberAlreadyPresent,
@@ -147,7 +164,8 @@ TAO_LoadBalancing_ReplicationManager_i::add_member (
TAO_LoadBalancing::ObjectGroup_ptr
TAO_LoadBalancing_ReplicationManager_i::remove_member (
TAO_LoadBalancing::ObjectGroup_ptr /* object_group */,
- const TAO_LoadBalancing::Location & /* the_location */)
+ const TAO_LoadBalancing::Location & /* the_location */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::ObjectGroupNotFound,
TAO_LoadBalancing::MemberNotFound))
@@ -158,7 +176,8 @@ TAO_LoadBalancing_ReplicationManager_i::remove_member (
TAO_LoadBalancing::ObjectGroup_ptr
TAO_LoadBalancing_ReplicationManager_i::set_primary_member (
TAO_LoadBalancing::ObjectGroup_ptr /* object_group */,
- const TAO_LoadBalancing::Location & /* the_location */)
+ const TAO_LoadBalancing::Location & /* the_location */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::ObjectGroupNotFound,
TAO_LoadBalancing::MemberNotFound,
@@ -170,7 +189,8 @@ TAO_LoadBalancing_ReplicationManager_i::set_primary_member (
TAO_LoadBalancing::Locations *
TAO_LoadBalancing_ReplicationManager_i::locations_of_members (
- TAO_LoadBalancing::ObjectGroup_ptr /* object_group */)
+ TAO_LoadBalancing::ObjectGroup_ptr /* object_group */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::ObjectGroupNotFound))
{
@@ -179,7 +199,8 @@ TAO_LoadBalancing_ReplicationManager_i::locations_of_members (
TAO_LoadBalancing::ObjectGroupId
TAO_LoadBalancing_ReplicationManager_i::get_object_group_id (
- TAO_LoadBalancing::ObjectGroup_ptr /* object_group */)
+ TAO_LoadBalancing::ObjectGroup_ptr /* object_group */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::ObjectGroupNotFound))
{
@@ -188,7 +209,8 @@ TAO_LoadBalancing_ReplicationManager_i::get_object_group_id (
TAO_LoadBalancing::ObjectGroup_ptr
TAO_LoadBalancing_ReplicationManager_i::get_object_group_ref (
- TAO_LoadBalancing::ObjectGroup_ptr /* object_group */)
+ TAO_LoadBalancing::ObjectGroup_ptr /* object_group */,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::ObjectGroupNotFound))
{
@@ -198,7 +220,8 @@ TAO_LoadBalancing_ReplicationManager_i::get_object_group_ref (
CORBA::Object_ptr
TAO_LoadBalancing_ReplicationManager_i::get_member_ref (
TAO_LoadBalancing::ObjectGroup_ptr /* object_group */,
- const TAO_LoadBalancing::Location & loc)
+ const TAO_LoadBalancing::Location & loc,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::ObjectGroupNotFound,
TAO_LoadBalancing::MemberNotFound))
@@ -251,7 +274,7 @@ TAO_LoadBalancing_ReplicationManager_i::create_object (
}
// Obtain the FactoryInfos from the_criteria. This method also
- // ensure that GenericFactories at different locations are used.
+ // ensures that GenericFactories at different locations are used.
else if (this->get_factory_infos (type_id,
the_criteria[i],
factory_infos) == 0)
@@ -323,7 +346,7 @@ TAO_LoadBalancing_ReplicationManager_i::create_object_i (
// FactoryInfo with a "Location" member that matches
// the location at which to create the desired
// replica.
- // @@ It is also used to ensure the only one replica of
+ // @@ It is also used to ensure that only one replica of
// a given type is created at a given location.
@@ -392,8 +415,16 @@ TAO_LoadBalancing_ReplicationManager_i::create_object_i (
replica_entry->factory_creation_id = replica_factory_creation_id;
if (object_group_entry.replica_map.bind (replica_entry) != 0)
- ACE_THROW_RETURN (TAO_LoadBalancer::ObjectNotCreated (),
- CORBA::Object::_nil ());
+ {
+ // An Object of incorrect type was created. Delete it, and
+ // throw a NoFactory exception.
+ factory->delete_object (replica_factory_creation_id,
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (CORBA::Object::_nil ());
+
+ ACE_THROW_RETURN (TAO_LoadBalancer::ObjectNotCreated (),
+ CORBA::Object::_nil ());
+ }
// No longer need to protect the allocated Replica_Map.
safe_replica_entry.release ();
@@ -443,7 +474,9 @@ TAO_LoadBalancing_ReplicationManager_i::get_factory_infos ()
void
TAO_LoadBalancing_ReplicationManager_i::delete_object (
- const TAO_LoadBalancing::GenericFactory::FactoryCreationId & factory_creation_id)
+ const TAO_LoadBalancing::GenericFactory::FactoryCreationId &
+ factory_creation_id,
+ CORBA::Environment &ACE_TRY_ENV)
ACE_THROW_SPEC ((CORBA::SystemException,
TAO_LoadBalancing::ObjectNotFound))
{
@@ -578,7 +611,7 @@ TAO_LoadBalancing_ReplicationManager_i::operator= (
TAO_LoadBalancing::FactoryInfo &lhs,
const TAO_LoadBalancing::FactoryInfo &rhs)
{
- lhs.facgtory =
+ lhs.factory =
TAO_LoadBalancing::GenericFactory::_duplicate (rhs.factory);
lhs.the_location = rhs.the_location;