diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2001-06-20 19:18:03 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2001-06-20 19:18:03 +0000 |
commit | e20e3f79f147ae03231eb7c00766ddb231d362a9 (patch) | |
tree | b629fb528ce98d8ccb5c3f485649d78971ed0bb7 | |
parent | 6875b5f861b1c033bc1038f22347d26ff5ecbd7c (diff) | |
download | ATCD-e20e3f79f147ae03231eb7c00766ddb231d362a9.tar.gz |
*** empty log message ***
27 files changed, 1092 insertions, 217 deletions
diff --git a/TAO/orbsvcs/orbsvcs/LB_GenericFactory.cpp b/TAO/orbsvcs/orbsvcs/LB_GenericFactory.cpp index 8c732a254c1..9718f23ef5d 100644 --- a/TAO/orbsvcs/orbsvcs/LB_GenericFactory.cpp +++ b/TAO/orbsvcs/orbsvcs/LB_GenericFactory.cpp @@ -17,7 +17,8 @@ TAO_LB_GenericFactory::TAO_LB_GenericFactory ( : poa_ (), property_manager_ (property_manager), object_group_map_ (object_group_map), - next_fcid_ (0) + next_fcid_ (0), + lock_ () { } @@ -42,24 +43,24 @@ TAO_LB_GenericFactory::create_object ( // Make sure the criteria for the object group being created are // valid. - this->property_manager_.validate_properties (the_criteria, ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); +// this->property_manager_.process_criteria (the_criteria, ACE_TRY_ENV); +// ACE_CHECK_RETURN (CORBA::Object::_nil ()); // Extract the initial number of replicas to create. LoadBalancing::InitialNumberReplicas initial_number_replicas = - this->property_manager_.get_initial_number_replicas (type_id, - the_criteria, - ACE_TRY_ENV); + this->property_manager_.initial_number_replicas (type_id, + the_criteria, + ACE_TRY_ENV); ACE_CHECK_RETURN (CORBA::Object::_nil ()); // Extract the factory information for each of the replicas. - LoadBalancing::FactoryInfos factory_infos = - this->property_manager_.get_factory_infos (type_id, - the_criteria, - ACE_TRY_ENV); + LoadBalancing::FactoryInfos_var factory_infos = + this->property_manager_.factory_infos (type_id, + the_criteria, + ACE_TRY_ENV); ACE_CHECK_RETURN (CORBA::Object::_nil ()); - CORBA::ULong factory_infos_count = factory_infos.length (); + CORBA::ULong factory_infos_count = factory_infos->length (); // If the number of factories is less than the initial number of // replicas, then the desired number of replicas cannot possibly be @@ -81,7 +82,16 @@ TAO_LB_GenericFactory::create_object ( // entry. object_group_entry->type_id = CORBA::string_dup (type_id); - CORBA::ULong fcid = this->next_fcid_; + CORBA::ULong fcid = 0; + + { + ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, + guard, + this->lock_, + CORBA::Object::_nil ()); + + fcid = this->next_fcid_; + } // The ObjectId for the newly created object group is comprised // solely of the FactoryCreationId. @@ -101,8 +111,10 @@ TAO_LB_GenericFactory::create_object ( // if (this->property_manager_.infrastructure_controlled_membership ()) // { -// this->populate_object_group (object_group_entry, ACE_TRY_ENV); -// ACE_CHECK_RETURN (CORBA::Object::_nil ()); + this->populate_object_group (object_group_entry, + factory_infos.in (), + ACE_TRY_ENV); + ACE_CHECK_RETURN (CORBA::Object::_nil ()); // } // Allocate a new FactoryCreationId for use as an "out" parameter. @@ -135,9 +147,16 @@ TAO_LB_GenericFactory::create_object ( // No longer need to protect the allocated ObjectGroup_Map entry. (void) safe_object_group_entry.release (); - // Object group was successfully created. Increment the next - // FactoryCreationId in preparation for the next object group. - this->next_fcid_++; + { + ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, + guard, + this->lock_, + CORBA::Object::_nil ()); + + // Object group was successfully created. Increment the next + // FactoryCreationId in preparation for the next object group. + this->next_fcid_++; + } return object_group._retn (); } @@ -216,11 +235,13 @@ TAO_LB_GenericFactory::poa (PortableServer::POA_ptr p) void TAO_LB_GenericFactory::populate_object_group ( TAO_LB_ObjectGroup_Map_Entry *object_group_entry, + const LoadBalancing::FactoryInfos &factory_infos, CORBA::Environment &ACE_TRY_ENV) { + CORBA::ULong factory_infos_count = factory_infos.length (); for (CORBA::ULong j = 0; j < factory_infos_count; ++j) { - LoadBalancing::FactoryInfo &factory_info = + const LoadBalancing::FactoryInfo &factory_info = factory_infos[j]; LoadBalancing::GenericFactory_ptr factory = diff --git a/TAO/orbsvcs/orbsvcs/LB_GenericFactory.h b/TAO/orbsvcs/orbsvcs/LB_GenericFactory.h index 7dbd8794728..d276e7c9780 100644 --- a/TAO/orbsvcs/orbsvcs/LB_GenericFactory.h +++ b/TAO/orbsvcs/orbsvcs/LB_GenericFactory.h @@ -98,8 +98,10 @@ private: /// Populate the object group being created. Called when the /// infrastructure-controlled membership style is used for the /// object group being created. - void populate_object_group (TAO_LB_ObjectGroup_Map_Entry *entry, - CORBA::Environment &ACE_TRY_ENV); + void populate_object_group ( + TAO_LB_ObjectGroup_Map_Entry *entry, + const LoadBalancing::FactoryInfos &factory_infos, + CORBA::Environment &ACE_TRY_ENV); /// Get a new ObjectId to be used when creating a new ObjectGroup. /** @@ -133,6 +135,10 @@ private: */ CORBA::ULong next_fcid_; + /// Lock used to synchronize access to the factory creation id + /// index (i.e. next_fcid_). + TAO_SYNCH_MUTEX lock_; + }; #endif /* TAO_LB_GENERIC_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/LB_Location_Equal_To.h b/TAO/orbsvcs/orbsvcs/LB_Location_Equal_To.h index 8252b5f588d..ce73458b3cd 100644 --- a/TAO/orbsvcs/orbsvcs/LB_Location_Equal_To.h +++ b/TAO/orbsvcs/orbsvcs/LB_Location_Equal_To.h @@ -22,7 +22,7 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "LoadbalancingC.h" +#include "orbsvcs/LoadBalancingC.h" /** * @class TAO_LB_Location_Equal_To diff --git a/TAO/orbsvcs/orbsvcs/LB_Location_Equal_To.inl b/TAO/orbsvcs/orbsvcs/LB_Location_Equal_To.inl index e001d512e7f..c73be7e8ad5 100644 --- a/TAO/orbsvcs/orbsvcs/LB_Location_Equal_To.inl +++ b/TAO/orbsvcs/orbsvcs/LB_Location_Equal_To.inl @@ -3,7 +3,7 @@ ACE_INLINE int TAO_LB_Location_Equal_To::operator () ( const LoadBalancing::Location &lhs, - const LoadBalancing::Location &rhs) + const LoadBalancing::Location &rhs) const { // @todo Interim implementation until we figure out what to do when a // location has multiple components. diff --git a/TAO/orbsvcs/orbsvcs/LB_Location_Hash.h b/TAO/orbsvcs/orbsvcs/LB_Location_Hash.h index 76b634dff61..47a21aec618 100644 --- a/TAO/orbsvcs/orbsvcs/LB_Location_Hash.h +++ b/TAO/orbsvcs/orbsvcs/LB_Location_Hash.h @@ -22,7 +22,7 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "LoadbalancingC.h" +#include "orbsvcs/LoadBalancingC.h" /** * @class TAO_LB_Location_Hash @@ -40,7 +40,7 @@ public: #if defined (__ACE_INLINE__) -#include "Lb_Location_Hash.inl" +#include "LB_Location_Hash.inl" #endif /* __ACE_INLINE__ */ #include "ace/post.h" diff --git a/TAO/orbsvcs/orbsvcs/LB_Location_Map.cpp b/TAO/orbsvcs/orbsvcs/LB_Location_Map.cpp index d81dce535e2..e752c8c5136 100644 --- a/TAO/orbsvcs/orbsvcs/LB_Location_Map.cpp +++ b/TAO/orbsvcs/orbsvcs/LB_Location_Map.cpp @@ -6,26 +6,21 @@ ACE_RCSID (LoadBalancing, LB_Location_Map, "$Id$") + #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) template class ACE_Hash_Map_Entry<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set>; -template class ACE_Hash_Map_Manager_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Base_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX>; - -template class ACE_Hash<LoadBalancing::Location>; -template class ACE_Equal_To<LoadBalancing::Location>; +template class ACE_Hash_Map_Manager_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX>; +template class ACE_Hash_Map_Iterator_Base_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX>; +template class ACE_Hash_Map_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX>; +template class ACE_Hash_Map_Reverse_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX>; #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) #pragma instantiate ACE_Hash_Map_Entry<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set> -#pragma instantiate ACE_Hash_Map_Manager_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX> - -#pragma instantiate ACE_Hash<LoadBalancing::Location> -#pragma instantiate ACE_Equal_To<LoadBalancing::Location> +#pragma instantiate ACE_Hash_Map_Manager_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX> +#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX> +#pragma instantiate ACE_Hash_Map_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX> +#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX> #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/LB_Location_Map.h b/TAO/orbsvcs/orbsvcs/LB_Location_Map.h index d2efe0c7bdb..f25d4f404a7 100644 --- a/TAO/orbsvcs/orbsvcs/LB_Location_Map.h +++ b/TAO/orbsvcs/orbsvcs/LB_Location_Map.h @@ -26,15 +26,17 @@ #include "orbsvcs/LoadBalancingC.h" #include "LB_ReplicaInfo.h" +#include "LB_Location_Hash.h" +#include "LB_Location_Equal_To.h" /// Location hash map. typedef ACE_Hash_Map_Manager_Ex< LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, - ACE_Hash<LoadBalancing::Location>, - ACE_Equal_To<LoadBalancing::Location>, - TAO_SYNCH_MUTEX> TAO_LB_ObjectGroup_Map; + TAO_LB_Location_Hash, + TAO_LB_Location_Equal_To, + TAO_SYNCH_MUTEX> TAO_LB_Location_Map; #include "ace/post.h" diff --git a/TAO/orbsvcs/orbsvcs/LB_ObjectGroupManager.cpp b/TAO/orbsvcs/orbsvcs/LB_ObjectGroupManager.cpp index 804a27552bd..f265a17dcf0 100644 --- a/TAO/orbsvcs/orbsvcs/LB_ObjectGroupManager.cpp +++ b/TAO/orbsvcs/orbsvcs/LB_ObjectGroupManager.cpp @@ -38,15 +38,16 @@ TAO_LB_ObjectGroupManager::create_member ( LoadBalancing::ObjectGroup_ptr TAO_LB_ObjectGroupManager::add_member ( - LoadBalancing::ObjectGroup_ptr object_group, - const LoadBalancing::Location &the_location, - CORBA::Object_ptr member, + LoadBalancing::ObjectGroup_ptr /* object_group */, + const LoadBalancing::Location & /* the_location */, + CORBA::Object_ptr /* member */, CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException, LoadBalancing::ObjectGroupNotFound, LoadBalancing::MemberAlreadyPresent, LoadBalancing::ObjectNotAdded)) { +#if 0 TAO_LB_ObjectGroup_Map_Entry group_entry = this->object_group_map_.get_group_entry (object_group, ACE_TRY_ENV); ACE_CHECK_RETURN (LoadBalancing::ObjectGroup::_nil ()); @@ -74,9 +75,10 @@ TAO_LB_ObjectGroupManager::add_member ( // Transfer ownership to the location map. (void) obj._retn (); - +#else ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), LoadBalancing::ObjectGroup::_nil ()); +#endif /* 0 */ } LoadBalancing::ObjectGroup_ptr @@ -96,7 +98,7 @@ TAO_LB_ObjectGroupManager::remove_member ( LoadBalancing::Locations * TAO_LB_ObjectGroupManager::locations_of_members ( - LoadBalancing::ObjectGroup_ptr object_group, + LoadBalancing::ObjectGroup_ptr /* object_group */, CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException, LoadBalancing::ObjectGroupNotFound)) @@ -143,7 +145,7 @@ TAO_LB_ObjectGroupManager::locations_of_members ( LoadBalancing::ObjectGroupId TAO_LB_ObjectGroupManager::get_object_group_id ( - LoadBalancing::ObjectGroup_ptr object_group, + LoadBalancing::ObjectGroup_ptr /* object_group */, CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException, LoadBalancing::ObjectGroupNotFound)) diff --git a/TAO/orbsvcs/orbsvcs/LB_ObjectGroupManager.h b/TAO/orbsvcs/orbsvcs/LB_ObjectGroupManager.h index f3871bd5b7e..b4426406ffa 100644 --- a/TAO/orbsvcs/orbsvcs/LB_ObjectGroupManager.h +++ b/TAO/orbsvcs/orbsvcs/LB_ObjectGroupManager.h @@ -23,6 +23,7 @@ #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "LB_ObjectGroup_Map.h" +#include "LB_Location_Map.h" /// Forward declarations. class TAO_LB_PropertyManager; diff --git a/TAO/orbsvcs/orbsvcs/LB_ObjectGroup_Map.cpp b/TAO/orbsvcs/orbsvcs/LB_ObjectGroup_Map.cpp index 6a8c24c3f35..201d4388cd4 100644 --- a/TAO/orbsvcs/orbsvcs/LB_ObjectGroup_Map.cpp +++ b/TAO/orbsvcs/orbsvcs/LB_ObjectGroup_Map.cpp @@ -33,7 +33,7 @@ TAO_LB_ObjectGroup_Map::unbind (const PortableServer::ObjectId &oid) } void -TAO_LB_ObjectGroupManager::poa (PortableServer::POA_ptr poa) +TAO_LB_ObjectGroup_Map::poa (PortableServer::POA_ptr poa) { this->poa_ = PortableServer::POA::_duplicate (poa); } @@ -53,7 +53,7 @@ TAO_LB_ObjectGroup_Map::get_group_entry ( ACE_CHECK_RETURN (0); TAO_LB_ObjectGroup_Map_Entry *group_entry = 0; - if (this->object_group_map_.find (oid.in (), group_entry) != 0) + if (this->table_.find (oid.in (), group_entry) != 0) ACE_THROW_RETURN (LoadBalancing::ObjectGroupNotFound (), 0); diff --git a/TAO/orbsvcs/orbsvcs/LB_ObjectGroup_Map.h b/TAO/orbsvcs/orbsvcs/LB_ObjectGroup_Map.h index fe74fadf50d..22fcd43e1d5 100644 --- a/TAO/orbsvcs/orbsvcs/LB_ObjectGroup_Map.h +++ b/TAO/orbsvcs/orbsvcs/LB_ObjectGroup_Map.h @@ -25,6 +25,7 @@ #include "ace/Hash_Map_Manager_T.h" #include "orbsvcs/LoadBalancingC.h" #include "tao/PortableServer/Key_Adapters.h" +#include "tao/PortableServer/PortableServerC.h" #include "LB_ReplicaInfo.h" diff --git a/TAO/orbsvcs/orbsvcs/LB_PropertyManager.cpp b/TAO/orbsvcs/orbsvcs/LB_PropertyManager.cpp index 2454edd0d63..a33bf726d22 100644 --- a/TAO/orbsvcs/orbsvcs/LB_PropertyManager.cpp +++ b/TAO/orbsvcs/orbsvcs/LB_PropertyManager.cpp @@ -1,11 +1,13 @@ // -*- C++ -*- #include "LB_PropertyManager.h" +#include "LB_ObjectGroup_Map.h" ACE_RCSID (LoadBalancing, LB_PropertyManager, "$Id$") + TAO_LB_PropertyManager::TAO_LB_PropertyManager ( TAO_LB_ObjectGroup_Map &object_group_map) : object_group_map_ (object_group_map), @@ -108,7 +110,7 @@ TAO_LB_PropertyManager::remove_type_properties ( void TAO_LB_PropertyManager::set_properties_dynamically ( - LoadBalancing::ObjectGroup_ptr object_group, + LoadBalancing::ObjectGroup_ptr /*object_group */, const LoadBalancing::Properties & overrides, CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException, @@ -119,17 +121,18 @@ TAO_LB_PropertyManager::set_properties_dynamically ( this->validate_properties (overrides, ACE_TRY_ENV); ACE_CHECK; - + ACE_THROW (CORBA::NO_IMPLEMENT ()); } LoadBalancing::Properties * TAO_LB_PropertyManager::get_properties ( - LoadBalancing::ObjectGroup_ptr object_group, + LoadBalancing::ObjectGroup_ptr /* object_group */, CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException, LoadBalancing::ObjectGroupNotFound)) { - TAO_LB_ObjectGroup_Map *entry = +#if 0 + TAO_LB_ObjectGroup_Map_Entry *entry = this->object_group_map_.get_group_entry (object_group, ACE_TRY_ENV); ACE_CHECK_RETURN (0); @@ -146,6 +149,9 @@ TAO_LB_PropertyManager::get_properties ( // Merge the default properties into the property list. return properties._retn (); +#else + ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); +#endif /* 0 */ } void @@ -160,13 +166,13 @@ TAO_LB_PropertyManager::validate_properties ( CORBA::ULong len = props.length (); for (CORBA::ULong i = 0; i < len; ++i) { - if (ACE_OS::strcmp (props[i].nam.id[0], + if (ACE_OS::strcmp (props[i].nam[0].id, "Factories") == 0) return; - else if (ACE_OS::strcmp (props[i].nam.id[0], + else if (ACE_OS::strcmp (props[i].nam[0].id, "InitialNumberReplicas") == 0) return; - else if (ACE_OS::strcmp (props[i].nam.id[0], + else if (ACE_OS::strcmp (props[i].nam[0].id, "MinimumNumberReplicas") == 0) return; else @@ -174,11 +180,29 @@ TAO_LB_PropertyManager::validate_properties ( } } +// void +// TAO_LB_PropertyManager::process_criteria ( +// const char *type_id, +// const LoadBalancing::Criteria &the_criteria, // IN +// LoadBalancing::Properties &props, // OUT +// CORBA::Environment &ACE_TRY_ENV) +// { +// this->validate_properties (the_criteria, ACE_TRY_ENV); +// ACE_CHECK; + +// CORBA::ULong len = the_criteria.length (); +// for (CORBA::ULong i = 0; i < len; ++i) +// { +// // @@ Hack to get things going. +// props[i] = the_criteria[i]; +// } +// } + LoadBalancing::InitialNumberReplicas -TAO_LB_PropertyManager::get_initial_number_replicas ( +TAO_LB_PropertyManager::initial_number_replicas ( const char * /* type_id */, const LoadBalancing::Criteria &the_criteria, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &ACE_TRY_ENV) const { // @@ Hack to get things going. @@ -187,7 +211,7 @@ TAO_LB_PropertyManager::get_initial_number_replicas ( CORBA::ULong len = the_criteria.length (); for (CORBA::ULong i = 0; i < len; ++i) { - if (ACE_OS::strcmp (the_criteria[i].nam.id[0], + if (ACE_OS::strcmp (the_criteria[i].nam[0].id, "InitialNumberReplicas") == 0) { LoadBalancing::InitialNumberReplicas initial_number_replicas = 0; @@ -195,7 +219,7 @@ TAO_LB_PropertyManager::get_initial_number_replicas ( if (the_criteria[i].val >>= initial_number_replicas) return initial_number_replicas; else - ACE_THROW_RETURN (LoadBalancing::Property ( + ACE_THROW_RETURN (LoadBalancing::InvalidProperty ( the_criteria[i].nam, the_criteria[i].val), 0); @@ -210,47 +234,74 @@ TAO_LB_PropertyManager::get_initial_number_replicas ( return 0; // @@ FIXME } - -// ----------------------------------------------------------- - -CORBA::Boolean -operator== (const LoadBalancing::Property &lhs, - const LoadBalancing::Property &rhs) +LoadBalancing::FactoryInfos * +TAO_LB_PropertyManager::factory_infos ( + const char * /* type_id */, + const LoadBalancing::Criteria &the_criteria, + CORBA::Environment &ACE_TRY_ENV) const { - // @todo Interim implementation until we figure out what to do when a - // property has multiple components. - CORBA::ULong lhs_len = lhs.length (); - CORBA::ULong rhs_len = rhs.length (); + // @@ Hack to get things going. + + // First, check if the given criteria has a desired number of + // initial replicas. + CORBA::ULong len = the_criteria.length (); + for (CORBA::ULong i = 0; i < len; ++i) + { + if (ACE_OS::strcmp (the_criteria[i].nam[0].id, + "Factories") == 0) + { + LoadBalancing::FactoryInfos *tmp = 0; + + if (the_criteria[i].val >>= tmp) + { + // The Any retains ownership of the data, so we need to + // return a copy. + LoadBalancing::FactoryInfos *factory_infos = 0; + ACE_NEW_THROW_EX ( + factory_infos, + LoadBalancing::FactoryInfos (*tmp), + CORBA::NO_MEMORY ( + CORBA::SystemException::_tao_minor_code ( + TAO_DEFAULT_MINOR_CODE, + ENOMEM), + CORBA::COMPLETED_NO)); + ACE_CHECK_RETURN (0); + + return factory_infos; + } + else + ACE_THROW_RETURN (LoadBalancing::InvalidProperty ( + the_criteria[i].nam, + the_criteria[i].val), + 0); + } + } - if (lhs_len != rhs_len) - return 0; + // Second, check if a type-specific number of initial replicas was + // set. - for (CORBA::ULong i = 0; i < lhs_len; ++i) - if (ACE_OS::strcmp (lhs[i].id, rhs[i].id) != 0 - || ACE_OS::strcmp (lhs[i].kind, rhs[i].kind) != 0) - return 0; + // Third, check if a default number of initial replicas was set. - return 1; + return 0; // @@ FIXME } -// ----------------------------------------------------------- #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) // Type-specific property hash map template instantiations template class ACE_Hash_Map_Entry<const char *, LoadBalancing::Properties>; -template class ACE_Hash_Map_Manager_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Base_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Manager_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator_Base_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Reverse_Iterator_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>; #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) // Type-specific property hash map template instantiations #pragma instantiate ACE_Hash_Map_Entry<const char *, LoadBalancing::Properties> -#pragma instantiate ACE_Hash_Map_Manager_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Manager_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex> #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/LB_PropertyManager.h b/TAO/orbsvcs/orbsvcs/LB_PropertyManager.h index 4ef2d62d53f..06260ad4a49 100644 --- a/TAO/orbsvcs/orbsvcs/LB_PropertyManager.h +++ b/TAO/orbsvcs/orbsvcs/LB_PropertyManager.h @@ -22,8 +22,15 @@ #pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +#include "ace/Functor.h" +#include "ace/Hash_Map_Manager_T.h" #include "orbsvcs/LoadBalancingC.h" + +/// Forward declarations. +class TAO_LB_ObjectGroup_Map; + + /** * @class TAO_LB_PropertyManager * @@ -163,7 +170,9 @@ public: /// Return the initial number of replicas for the given object /// group. LoadBalancing::InitialNumberReplicas - initial_number_replicas (CORBA::Object_ptr object_group) const; + initial_number_replicas (const char *type_id, + const LoadBalancing::Criteria &the_criteria, + CORBA::Environment &ACE_TRY_ENV) const; /// Return the minimum number of replicas for the given object /// group. @@ -173,7 +182,9 @@ public: /// Return the sequence FactoryInfos associated with the given /// object group. LoadBalancing::FactoryInfos * - factory_infos (CORBA::Object_ptr object_group) const; + factory_infos (const char *type_id, + const LoadBalancing::Criteria &the_criteria, + CORBA::Environment &ACE_TRY_ENV) const; //@} @@ -203,11 +214,6 @@ private: }; -/// Property sequence equality operator. -CORBA::Boolean operator== (const LoadBalancing::Properties &lhs, - const LoadBalancing::Properties &rhs); - - #include "ace/post.h" #endif /* TAO_LB_PROPERTY_MANAGER_H */ diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_GenericFactory.cpp b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_GenericFactory.cpp index 8c732a254c1..9718f23ef5d 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_GenericFactory.cpp +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_GenericFactory.cpp @@ -17,7 +17,8 @@ TAO_LB_GenericFactory::TAO_LB_GenericFactory ( : poa_ (), property_manager_ (property_manager), object_group_map_ (object_group_map), - next_fcid_ (0) + next_fcid_ (0), + lock_ () { } @@ -42,24 +43,24 @@ TAO_LB_GenericFactory::create_object ( // Make sure the criteria for the object group being created are // valid. - this->property_manager_.validate_properties (the_criteria, ACE_TRY_ENV); - ACE_CHECK_RETURN (CORBA::Object::_nil ()); +// this->property_manager_.process_criteria (the_criteria, ACE_TRY_ENV); +// ACE_CHECK_RETURN (CORBA::Object::_nil ()); // Extract the initial number of replicas to create. LoadBalancing::InitialNumberReplicas initial_number_replicas = - this->property_manager_.get_initial_number_replicas (type_id, - the_criteria, - ACE_TRY_ENV); + this->property_manager_.initial_number_replicas (type_id, + the_criteria, + ACE_TRY_ENV); ACE_CHECK_RETURN (CORBA::Object::_nil ()); // Extract the factory information for each of the replicas. - LoadBalancing::FactoryInfos factory_infos = - this->property_manager_.get_factory_infos (type_id, - the_criteria, - ACE_TRY_ENV); + LoadBalancing::FactoryInfos_var factory_infos = + this->property_manager_.factory_infos (type_id, + the_criteria, + ACE_TRY_ENV); ACE_CHECK_RETURN (CORBA::Object::_nil ()); - CORBA::ULong factory_infos_count = factory_infos.length (); + CORBA::ULong factory_infos_count = factory_infos->length (); // If the number of factories is less than the initial number of // replicas, then the desired number of replicas cannot possibly be @@ -81,7 +82,16 @@ TAO_LB_GenericFactory::create_object ( // entry. object_group_entry->type_id = CORBA::string_dup (type_id); - CORBA::ULong fcid = this->next_fcid_; + CORBA::ULong fcid = 0; + + { + ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, + guard, + this->lock_, + CORBA::Object::_nil ()); + + fcid = this->next_fcid_; + } // The ObjectId for the newly created object group is comprised // solely of the FactoryCreationId. @@ -101,8 +111,10 @@ TAO_LB_GenericFactory::create_object ( // if (this->property_manager_.infrastructure_controlled_membership ()) // { -// this->populate_object_group (object_group_entry, ACE_TRY_ENV); -// ACE_CHECK_RETURN (CORBA::Object::_nil ()); + this->populate_object_group (object_group_entry, + factory_infos.in (), + ACE_TRY_ENV); + ACE_CHECK_RETURN (CORBA::Object::_nil ()); // } // Allocate a new FactoryCreationId for use as an "out" parameter. @@ -135,9 +147,16 @@ TAO_LB_GenericFactory::create_object ( // No longer need to protect the allocated ObjectGroup_Map entry. (void) safe_object_group_entry.release (); - // Object group was successfully created. Increment the next - // FactoryCreationId in preparation for the next object group. - this->next_fcid_++; + { + ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, + guard, + this->lock_, + CORBA::Object::_nil ()); + + // Object group was successfully created. Increment the next + // FactoryCreationId in preparation for the next object group. + this->next_fcid_++; + } return object_group._retn (); } @@ -216,11 +235,13 @@ TAO_LB_GenericFactory::poa (PortableServer::POA_ptr p) void TAO_LB_GenericFactory::populate_object_group ( TAO_LB_ObjectGroup_Map_Entry *object_group_entry, + const LoadBalancing::FactoryInfos &factory_infos, CORBA::Environment &ACE_TRY_ENV) { + CORBA::ULong factory_infos_count = factory_infos.length (); for (CORBA::ULong j = 0; j < factory_infos_count; ++j) { - LoadBalancing::FactoryInfo &factory_info = + const LoadBalancing::FactoryInfo &factory_info = factory_infos[j]; LoadBalancing::GenericFactory_ptr factory = diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_GenericFactory.h b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_GenericFactory.h index 7dbd8794728..d276e7c9780 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_GenericFactory.h +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_GenericFactory.h @@ -98,8 +98,10 @@ private: /// Populate the object group being created. Called when the /// infrastructure-controlled membership style is used for the /// object group being created. - void populate_object_group (TAO_LB_ObjectGroup_Map_Entry *entry, - CORBA::Environment &ACE_TRY_ENV); + void populate_object_group ( + TAO_LB_ObjectGroup_Map_Entry *entry, + const LoadBalancing::FactoryInfos &factory_infos, + CORBA::Environment &ACE_TRY_ENV); /// Get a new ObjectId to be used when creating a new ObjectGroup. /** @@ -133,6 +135,10 @@ private: */ CORBA::ULong next_fcid_; + /// Lock used to synchronize access to the factory creation id + /// index (i.e. next_fcid_). + TAO_SYNCH_MUTEX lock_; + }; #endif /* TAO_LB_GENERIC_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Equal_To.h b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Equal_To.h index 8252b5f588d..ce73458b3cd 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Equal_To.h +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Equal_To.h @@ -22,7 +22,7 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "LoadbalancingC.h" +#include "orbsvcs/LoadBalancingC.h" /** * @class TAO_LB_Location_Equal_To diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Equal_To.inl b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Equal_To.inl index e001d512e7f..c73be7e8ad5 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Equal_To.inl +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Equal_To.inl @@ -3,7 +3,7 @@ ACE_INLINE int TAO_LB_Location_Equal_To::operator () ( const LoadBalancing::Location &lhs, - const LoadBalancing::Location &rhs) + const LoadBalancing::Location &rhs) const { // @todo Interim implementation until we figure out what to do when a // location has multiple components. diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Hash.h b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Hash.h index 76b634dff61..47a21aec618 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Hash.h +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Hash.h @@ -22,7 +22,7 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ -#include "LoadbalancingC.h" +#include "orbsvcs/LoadBalancingC.h" /** * @class TAO_LB_Location_Hash @@ -40,7 +40,7 @@ public: #if defined (__ACE_INLINE__) -#include "Lb_Location_Hash.inl" +#include "LB_Location_Hash.inl" #endif /* __ACE_INLINE__ */ #include "ace/post.h" diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Map.cpp b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Map.cpp index d81dce535e2..e752c8c5136 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Map.cpp +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Map.cpp @@ -6,26 +6,21 @@ ACE_RCSID (LoadBalancing, LB_Location_Map, "$Id$") + #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) template class ACE_Hash_Map_Entry<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set>; -template class ACE_Hash_Map_Manager_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Base_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX>; - -template class ACE_Hash<LoadBalancing::Location>; -template class ACE_Equal_To<LoadBalancing::Location>; +template class ACE_Hash_Map_Manager_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX>; +template class ACE_Hash_Map_Iterator_Base_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX>; +template class ACE_Hash_Map_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX>; +template class ACE_Hash_Map_Reverse_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX>; #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) #pragma instantiate ACE_Hash_Map_Entry<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set> -#pragma instantiate ACE_Hash_Map_Manager_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, ACE_Hash<LoadBalancing::Location>, ACE_Equal_To<LoadBalancing::Location>, TAO_SYNCH_MUTEX> - -#pragma instantiate ACE_Hash<LoadBalancing::Location> -#pragma instantiate ACE_Equal_To<LoadBalancing::Location> +#pragma instantiate ACE_Hash_Map_Manager_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX> +#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX> +#pragma instantiate ACE_Hash_Map_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX> +#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, TAO_LB_Location_Hash, TAO_LB_Location_Equal_To, TAO_SYNCH_MUTEX> #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Map.h b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Map.h index d2efe0c7bdb..f25d4f404a7 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Map.h +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_Location_Map.h @@ -26,15 +26,17 @@ #include "orbsvcs/LoadBalancingC.h" #include "LB_ReplicaInfo.h" +#include "LB_Location_Hash.h" +#include "LB_Location_Equal_To.h" /// Location hash map. typedef ACE_Hash_Map_Manager_Ex< LoadBalancing::Location, TAO_LB_ReplicaInfo_Set, - ACE_Hash<LoadBalancing::Location>, - ACE_Equal_To<LoadBalancing::Location>, - TAO_SYNCH_MUTEX> TAO_LB_ObjectGroup_Map; + TAO_LB_Location_Hash, + TAO_LB_Location_Equal_To, + TAO_SYNCH_MUTEX> TAO_LB_Location_Map; #include "ace/post.h" diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroupManager.cpp b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroupManager.cpp index 804a27552bd..f265a17dcf0 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroupManager.cpp +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroupManager.cpp @@ -38,15 +38,16 @@ TAO_LB_ObjectGroupManager::create_member ( LoadBalancing::ObjectGroup_ptr TAO_LB_ObjectGroupManager::add_member ( - LoadBalancing::ObjectGroup_ptr object_group, - const LoadBalancing::Location &the_location, - CORBA::Object_ptr member, + LoadBalancing::ObjectGroup_ptr /* object_group */, + const LoadBalancing::Location & /* the_location */, + CORBA::Object_ptr /* member */, CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException, LoadBalancing::ObjectGroupNotFound, LoadBalancing::MemberAlreadyPresent, LoadBalancing::ObjectNotAdded)) { +#if 0 TAO_LB_ObjectGroup_Map_Entry group_entry = this->object_group_map_.get_group_entry (object_group, ACE_TRY_ENV); ACE_CHECK_RETURN (LoadBalancing::ObjectGroup::_nil ()); @@ -74,9 +75,10 @@ TAO_LB_ObjectGroupManager::add_member ( // Transfer ownership to the location map. (void) obj._retn (); - +#else ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), LoadBalancing::ObjectGroup::_nil ()); +#endif /* 0 */ } LoadBalancing::ObjectGroup_ptr @@ -96,7 +98,7 @@ TAO_LB_ObjectGroupManager::remove_member ( LoadBalancing::Locations * TAO_LB_ObjectGroupManager::locations_of_members ( - LoadBalancing::ObjectGroup_ptr object_group, + LoadBalancing::ObjectGroup_ptr /* object_group */, CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException, LoadBalancing::ObjectGroupNotFound)) @@ -143,7 +145,7 @@ TAO_LB_ObjectGroupManager::locations_of_members ( LoadBalancing::ObjectGroupId TAO_LB_ObjectGroupManager::get_object_group_id ( - LoadBalancing::ObjectGroup_ptr object_group, + LoadBalancing::ObjectGroup_ptr /* object_group */, CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException, LoadBalancing::ObjectGroupNotFound)) diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroupManager.h b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroupManager.h index f3871bd5b7e..b4426406ffa 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroupManager.h +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroupManager.h @@ -23,6 +23,7 @@ #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "LB_ObjectGroup_Map.h" +#include "LB_Location_Map.h" /// Forward declarations. class TAO_LB_PropertyManager; diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroup_Map.cpp b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroup_Map.cpp index 6a8c24c3f35..201d4388cd4 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroup_Map.cpp +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroup_Map.cpp @@ -33,7 +33,7 @@ TAO_LB_ObjectGroup_Map::unbind (const PortableServer::ObjectId &oid) } void -TAO_LB_ObjectGroupManager::poa (PortableServer::POA_ptr poa) +TAO_LB_ObjectGroup_Map::poa (PortableServer::POA_ptr poa) { this->poa_ = PortableServer::POA::_duplicate (poa); } @@ -53,7 +53,7 @@ TAO_LB_ObjectGroup_Map::get_group_entry ( ACE_CHECK_RETURN (0); TAO_LB_ObjectGroup_Map_Entry *group_entry = 0; - if (this->object_group_map_.find (oid.in (), group_entry) != 0) + if (this->table_.find (oid.in (), group_entry) != 0) ACE_THROW_RETURN (LoadBalancing::ObjectGroupNotFound (), 0); diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroup_Map.h b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroup_Map.h index fe74fadf50d..22fcd43e1d5 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroup_Map.h +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_ObjectGroup_Map.h @@ -25,6 +25,7 @@ #include "ace/Hash_Map_Manager_T.h" #include "orbsvcs/LoadBalancingC.h" #include "tao/PortableServer/Key_Adapters.h" +#include "tao/PortableServer/PortableServerC.h" #include "LB_ReplicaInfo.h" diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_PropertyManager.cpp b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_PropertyManager.cpp index 2454edd0d63..a33bf726d22 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_PropertyManager.cpp +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_PropertyManager.cpp @@ -1,11 +1,13 @@ // -*- C++ -*- #include "LB_PropertyManager.h" +#include "LB_ObjectGroup_Map.h" ACE_RCSID (LoadBalancing, LB_PropertyManager, "$Id$") + TAO_LB_PropertyManager::TAO_LB_PropertyManager ( TAO_LB_ObjectGroup_Map &object_group_map) : object_group_map_ (object_group_map), @@ -108,7 +110,7 @@ TAO_LB_PropertyManager::remove_type_properties ( void TAO_LB_PropertyManager::set_properties_dynamically ( - LoadBalancing::ObjectGroup_ptr object_group, + LoadBalancing::ObjectGroup_ptr /*object_group */, const LoadBalancing::Properties & overrides, CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException, @@ -119,17 +121,18 @@ TAO_LB_PropertyManager::set_properties_dynamically ( this->validate_properties (overrides, ACE_TRY_ENV); ACE_CHECK; - + ACE_THROW (CORBA::NO_IMPLEMENT ()); } LoadBalancing::Properties * TAO_LB_PropertyManager::get_properties ( - LoadBalancing::ObjectGroup_ptr object_group, + LoadBalancing::ObjectGroup_ptr /* object_group */, CORBA::Environment &ACE_TRY_ENV) ACE_THROW_SPEC ((CORBA::SystemException, LoadBalancing::ObjectGroupNotFound)) { - TAO_LB_ObjectGroup_Map *entry = +#if 0 + TAO_LB_ObjectGroup_Map_Entry *entry = this->object_group_map_.get_group_entry (object_group, ACE_TRY_ENV); ACE_CHECK_RETURN (0); @@ -146,6 +149,9 @@ TAO_LB_PropertyManager::get_properties ( // Merge the default properties into the property list. return properties._retn (); +#else + ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0); +#endif /* 0 */ } void @@ -160,13 +166,13 @@ TAO_LB_PropertyManager::validate_properties ( CORBA::ULong len = props.length (); for (CORBA::ULong i = 0; i < len; ++i) { - if (ACE_OS::strcmp (props[i].nam.id[0], + if (ACE_OS::strcmp (props[i].nam[0].id, "Factories") == 0) return; - else if (ACE_OS::strcmp (props[i].nam.id[0], + else if (ACE_OS::strcmp (props[i].nam[0].id, "InitialNumberReplicas") == 0) return; - else if (ACE_OS::strcmp (props[i].nam.id[0], + else if (ACE_OS::strcmp (props[i].nam[0].id, "MinimumNumberReplicas") == 0) return; else @@ -174,11 +180,29 @@ TAO_LB_PropertyManager::validate_properties ( } } +// void +// TAO_LB_PropertyManager::process_criteria ( +// const char *type_id, +// const LoadBalancing::Criteria &the_criteria, // IN +// LoadBalancing::Properties &props, // OUT +// CORBA::Environment &ACE_TRY_ENV) +// { +// this->validate_properties (the_criteria, ACE_TRY_ENV); +// ACE_CHECK; + +// CORBA::ULong len = the_criteria.length (); +// for (CORBA::ULong i = 0; i < len; ++i) +// { +// // @@ Hack to get things going. +// props[i] = the_criteria[i]; +// } +// } + LoadBalancing::InitialNumberReplicas -TAO_LB_PropertyManager::get_initial_number_replicas ( +TAO_LB_PropertyManager::initial_number_replicas ( const char * /* type_id */, const LoadBalancing::Criteria &the_criteria, - CORBA::Environment &ACE_TRY_ENV) + CORBA::Environment &ACE_TRY_ENV) const { // @@ Hack to get things going. @@ -187,7 +211,7 @@ TAO_LB_PropertyManager::get_initial_number_replicas ( CORBA::ULong len = the_criteria.length (); for (CORBA::ULong i = 0; i < len; ++i) { - if (ACE_OS::strcmp (the_criteria[i].nam.id[0], + if (ACE_OS::strcmp (the_criteria[i].nam[0].id, "InitialNumberReplicas") == 0) { LoadBalancing::InitialNumberReplicas initial_number_replicas = 0; @@ -195,7 +219,7 @@ TAO_LB_PropertyManager::get_initial_number_replicas ( if (the_criteria[i].val >>= initial_number_replicas) return initial_number_replicas; else - ACE_THROW_RETURN (LoadBalancing::Property ( + ACE_THROW_RETURN (LoadBalancing::InvalidProperty ( the_criteria[i].nam, the_criteria[i].val), 0); @@ -210,47 +234,74 @@ TAO_LB_PropertyManager::get_initial_number_replicas ( return 0; // @@ FIXME } - -// ----------------------------------------------------------- - -CORBA::Boolean -operator== (const LoadBalancing::Property &lhs, - const LoadBalancing::Property &rhs) +LoadBalancing::FactoryInfos * +TAO_LB_PropertyManager::factory_infos ( + const char * /* type_id */, + const LoadBalancing::Criteria &the_criteria, + CORBA::Environment &ACE_TRY_ENV) const { - // @todo Interim implementation until we figure out what to do when a - // property has multiple components. - CORBA::ULong lhs_len = lhs.length (); - CORBA::ULong rhs_len = rhs.length (); + // @@ Hack to get things going. + + // First, check if the given criteria has a desired number of + // initial replicas. + CORBA::ULong len = the_criteria.length (); + for (CORBA::ULong i = 0; i < len; ++i) + { + if (ACE_OS::strcmp (the_criteria[i].nam[0].id, + "Factories") == 0) + { + LoadBalancing::FactoryInfos *tmp = 0; + + if (the_criteria[i].val >>= tmp) + { + // The Any retains ownership of the data, so we need to + // return a copy. + LoadBalancing::FactoryInfos *factory_infos = 0; + ACE_NEW_THROW_EX ( + factory_infos, + LoadBalancing::FactoryInfos (*tmp), + CORBA::NO_MEMORY ( + CORBA::SystemException::_tao_minor_code ( + TAO_DEFAULT_MINOR_CODE, + ENOMEM), + CORBA::COMPLETED_NO)); + ACE_CHECK_RETURN (0); + + return factory_infos; + } + else + ACE_THROW_RETURN (LoadBalancing::InvalidProperty ( + the_criteria[i].nam, + the_criteria[i].val), + 0); + } + } - if (lhs_len != rhs_len) - return 0; + // Second, check if a type-specific number of initial replicas was + // set. - for (CORBA::ULong i = 0; i < lhs_len; ++i) - if (ACE_OS::strcmp (lhs[i].id, rhs[i].id) != 0 - || ACE_OS::strcmp (lhs[i].kind, rhs[i].kind) != 0) - return 0; + // Third, check if a default number of initial replicas was set. - return 1; + return 0; // @@ FIXME } -// ----------------------------------------------------------- #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) // Type-specific property hash map template instantiations template class ACE_Hash_Map_Entry<const char *, LoadBalancing::Properties>; -template class ACE_Hash_Map_Manager_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Base_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Iterator_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex>; -template class ACE_Hash_Map_Reverse_Iterator_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Manager_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator_Base_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Iterator_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>; +template class ACE_Hash_Map_Reverse_Iterator_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex>; #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) // Type-specific property hash map template instantiations #pragma instantiate ACE_Hash_Map_Entry<const char *, LoadBalancing::Properties> -#pragma instantiate ACE_Hash_Map_Manager_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Iterator_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex> -#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<const char *, LoadBalancing::Properties, TAO_ObjectId_Hash, ACE_Equal_To<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Manager_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Iterator_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex> +#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<const char *, LoadBalancing::Properties, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex> #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_PropertyManager.h b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_PropertyManager.h index 4ef2d62d53f..06260ad4a49 100644 --- a/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_PropertyManager.h +++ b/TAO/orbsvcs/orbsvcs/LoadBalancing/LB_PropertyManager.h @@ -22,8 +22,15 @@ #pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +#include "ace/Functor.h" +#include "ace/Hash_Map_Manager_T.h" #include "orbsvcs/LoadBalancingC.h" + +/// Forward declarations. +class TAO_LB_ObjectGroup_Map; + + /** * @class TAO_LB_PropertyManager * @@ -163,7 +170,9 @@ public: /// Return the initial number of replicas for the given object /// group. LoadBalancing::InitialNumberReplicas - initial_number_replicas (CORBA::Object_ptr object_group) const; + initial_number_replicas (const char *type_id, + const LoadBalancing::Criteria &the_criteria, + CORBA::Environment &ACE_TRY_ENV) const; /// Return the minimum number of replicas for the given object /// group. @@ -173,7 +182,9 @@ public: /// Return the sequence FactoryInfos associated with the given /// object group. LoadBalancing::FactoryInfos * - factory_infos (CORBA::Object_ptr object_group) const; + factory_infos (const char *type_id, + const LoadBalancing::Criteria &the_criteria, + CORBA::Environment &ACE_TRY_ENV) const; //@} @@ -203,11 +214,6 @@ private: }; -/// Property sequence equality operator. -CORBA::Boolean operator== (const LoadBalancing::Properties &lhs, - const LoadBalancing::Properties &rhs); - - #include "ace/post.h" #endif /* TAO_LB_PROPERTY_MANAGER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Makefile.LoadBalancing b/TAO/orbsvcs/orbsvcs/Makefile.LoadBalancing index 7dd5fdd7352..4c45988c39a 100644 --- a/TAO/orbsvcs/orbsvcs/Makefile.LoadBalancing +++ b/TAO/orbsvcs/orbsvcs/Makefile.LoadBalancing @@ -39,6 +39,9 @@ IDL_FILES += \ CPP_SRCS += \ LoadBalancing/LB_Balancing_Strategy \ LoadBalancing/LB_GenericFactory \ + LoadBalancing/LB_Location_Equal_To \ + LoadBalancing/LB_Location_Hash \ + LoadBalancing/LB_Location_Map \ LoadBalancing/LB_Minimum_Dispersion \ LoadBalancing/LB_ObjectGroupManager \ LoadBalancing/LB_ObjectGroup_Map \ @@ -570,6 +573,642 @@ realclean: clean $(ACE_ROOT)/ace/Auto_Ptr.i \ $(ACE_ROOT)/ace/Auto_Ptr.cpp +.obj/LB_Location_Equal_To.o .obj/LB_Location_Equal_To.so .shobj/LB_Location_Equal_To.o .shobj/LB_Location_Equal_To.so: LoadBalancing/LB_Location_Equal_To.cpp \ + LoadBalancing/LB_Location_Equal_To.h \ + $(ACE_ROOT)/ace/pre.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/svc_export.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + LoadBalancingC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object_Proxy_Broker.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/PortableInterceptor.h \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ + $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/PollableC.i \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + $(TAO_ROOT)/tao/Interceptor_List.h \ + $(ACE_ROOT)/ace/Array_Base.h \ + $(ACE_ROOT)/ace/Array_Base.inl \ + $(ACE_ROOT)/ace/Array_Base.cpp \ + $(TAO_ROOT)/tao/Interceptor_List.inl \ + $(TAO_ROOT)/tao/PortableInterceptor.i \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + LoadBalancing/LoadBalancing_export.h \ + CosNamingC.h \ + Naming/naming_export.h \ + CosNamingC.i \ + LoadBalancingC.i \ + LoadBalancing/LB_Location_Equal_To.inl + +.obj/LB_Location_Hash.o .obj/LB_Location_Hash.so .shobj/LB_Location_Hash.o .shobj/LB_Location_Hash.so: LoadBalancing/LB_Location_Hash.cpp \ + LoadBalancing/LB_Location_Hash.h \ + $(ACE_ROOT)/ace/pre.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/svc_export.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + LoadBalancingC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object_Proxy_Broker.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/PortableInterceptor.h \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ + $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/PollableC.i \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + $(TAO_ROOT)/tao/Interceptor_List.h \ + $(ACE_ROOT)/ace/Array_Base.h \ + $(ACE_ROOT)/ace/Array_Base.inl \ + $(ACE_ROOT)/ace/Array_Base.cpp \ + $(TAO_ROOT)/tao/Interceptor_List.inl \ + $(TAO_ROOT)/tao/PortableInterceptor.i \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + LoadBalancing/LoadBalancing_export.h \ + CosNamingC.h \ + Naming/naming_export.h \ + CosNamingC.i \ + LoadBalancingC.i \ + LoadBalancing/LB_Location_Hash.inl + +.obj/LB_Location_Map.o .obj/LB_Location_Map.so .shobj/LB_Location_Map.o .shobj/LB_Location_Map.so: LoadBalancing/LB_Location_Map.cpp \ + LoadBalancing/LB_Location_Map.h \ + $(ACE_ROOT)/ace/pre.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/svc_export.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Record.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/Log_Record.i \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + LoadBalancingC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/try_macros.h \ + $(TAO_ROOT)/tao/orbconf.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/Any.h \ + $(TAO_ROOT)/tao/CDR.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Object_Proxy_Broker.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/Services.h \ + $(TAO_ROOT)/tao/Services.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/ObjectIDList.h \ + $(TAO_ROOT)/tao/ObjectIDList.i \ + $(TAO_ROOT)/tao/PortableInterceptor.h \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/MessagingC.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ + $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/PollableC.h \ + $(TAO_ROOT)/tao/PollableC.i \ + $(TAO_ROOT)/tao/MessagingC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + $(TAO_ROOT)/tao/Interceptor_List.h \ + $(ACE_ROOT)/ace/Array_Base.h \ + $(ACE_ROOT)/ace/Array_Base.inl \ + $(ACE_ROOT)/ace/Array_Base.cpp \ + $(TAO_ROOT)/tao/Interceptor_List.inl \ + $(TAO_ROOT)/tao/PortableInterceptor.i \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + LoadBalancing/LoadBalancing_export.h \ + CosNamingC.h \ + Naming/naming_export.h \ + CosNamingC.i \ + LoadBalancingC.i \ + LoadBalancing/LB_ReplicaInfo.h LoadBalancing/LB_Location_Hash.h \ + LoadBalancing/LB_Location_Hash.inl \ + LoadBalancing/LB_Location_Equal_To.h \ + LoadBalancing/LB_Location_Equal_To.inl + .obj/LB_Minimum_Dispersion.o .obj/LB_Minimum_Dispersion.so .shobj/LB_Minimum_Dispersion.o .shobj/LB_Minimum_Dispersion.so: LoadBalancing/LB_Minimum_Dispersion.cpp \ LoadBalancing/LB_Minimum_Dispersion.h \ $(ACE_ROOT)/ace/pre.h \ @@ -1102,7 +1741,10 @@ realclean: clean $(ACE_ROOT)/ace/Map_T.i \ $(ACE_ROOT)/ace/Map_T.cpp \ $(TAO_ROOT)/tao/PortableServer/Key_Adapters.i \ - LoadBalancing/LB_ReplicaInfo.h + LoadBalancing/LB_ReplicaInfo.h LoadBalancing/LB_Location_Map.h \ + LoadBalancing/LB_Location_Hash.h LoadBalancing/LB_Location_Hash.inl \ + LoadBalancing/LB_Location_Equal_To.h \ + LoadBalancing/LB_Location_Equal_To.inl .obj/LB_ObjectGroup_Map.o .obj/LB_ObjectGroup_Map.so .shobj/LB_ObjectGroup_Map.o .shobj/LB_ObjectGroup_Map.so: LoadBalancing/LB_ObjectGroup_Map.cpp \ LoadBalancing/LB_ObjectGroup_Map.h \ @@ -1366,13 +2008,7 @@ realclean: clean $(ACE_ROOT)/ace/OS_Errno.h \ $(ACE_ROOT)/ace/OS_Export.h \ $(ACE_ROOT)/ace/OS_Errno.inl \ - LoadBalancingC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/corbafwd.h \ - $(ACE_ROOT)/ace/CDR_Base.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Functor.h \ $(ACE_ROOT)/ace/ACE.h \ $(ACE_ROOT)/ace/OS.h \ $(ACE_ROOT)/ace/OS_Dirent.h \ @@ -1385,6 +2021,8 @@ realclean: clean $(ACE_ROOT)/ace/OS_TLI.inl \ $(ACE_ROOT)/ace/Min_Max.h \ $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ $(ACE_ROOT)/ace/Trace.h \ $(ACE_ROOT)/ace/OS.i \ $(ACE_ROOT)/ace/Flag_Manip.h \ @@ -1398,15 +2036,18 @@ realclean: clean $(ACE_ROOT)/ace/Sock_Connect.h \ $(ACE_ROOT)/ace/Sock_Connect.i \ $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ $(ACE_ROOT)/ace/Log_Msg.h \ $(ACE_ROOT)/ace/Log_Record.h \ $(ACE_ROOT)/ace/Log_Priority.h \ $(ACE_ROOT)/ace/Log_Record.i \ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ $(ACE_ROOT)/ace/Synch.h \ $(ACE_ROOT)/ace/Synch.i \ $(ACE_ROOT)/ace/Synch_T.h \ @@ -1419,31 +2060,64 @@ realclean: clean $(ACE_ROOT)/ace/Thread.i \ $(ACE_ROOT)/ace/Atomic_Op.i \ $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Service_Object.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ $(ACE_ROOT)/ace/Free_List.h \ $(ACE_ROOT)/ace/Free_List.i \ $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ $(ACE_ROOT)/ace/Malloc_T.i \ $(ACE_ROOT)/ace/Malloc_T.cpp \ $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ $(ACE_ROOT)/ace/Mem_Map.h \ $(ACE_ROOT)/ace/Mem_Map.i \ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Unbounded_Set.h \ - $(ACE_ROOT)/ace/Node.h \ - $(ACE_ROOT)/ace/Node.cpp \ - $(ACE_ROOT)/ace/Unbounded_Set.inl \ - $(ACE_ROOT)/ace/Unbounded_Set.cpp \ $(ACE_ROOT)/ace/Memory_Pool.i \ + LoadBalancingC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Message_Block.h \ $(ACE_ROOT)/ace/Message_Block.i \ $(ACE_ROOT)/ace/Message_Block_T.h \ $(ACE_ROOT)/ace/Message_Block_T.i \ @@ -1457,8 +2131,6 @@ realclean: clean $(TAO_ROOT)/tao/corbafwd.i \ $(TAO_ROOT)/tao/Typecode.h \ $(TAO_ROOT)/tao/Exception.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ $(TAO_ROOT)/tao/Exception.i \ $(TAO_ROOT)/tao/Typecode.i \ $(TAO_ROOT)/tao/Any.h \ @@ -1474,9 +2146,6 @@ realclean: clean $(TAO_ROOT)/tao/Object.i \ $(TAO_ROOT)/tao/Any.i \ $(TAO_ROOT)/tao/NVList.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.h \ - $(ACE_ROOT)/ace/Unbounded_Queue.inl \ - $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ $(TAO_ROOT)/tao/NVList.i \ $(TAO_ROOT)/tao/LocalObject.h \ $(TAO_ROOT)/tao/LocalObject.i \ @@ -1554,7 +2223,31 @@ realclean: clean CosNamingC.h \ Naming/naming_export.h \ CosNamingC.i \ - LoadBalancingC.i + LoadBalancingC.i \ + LoadBalancing/LB_ObjectGroup_Map.h \ + $(TAO_ROOT)/tao/PortableServer/Key_Adapters.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ + $(ACE_ROOT)/ace/Map.h \ + $(ACE_ROOT)/ace/Map_T.h \ + $(ACE_ROOT)/ace/Pair.h \ + $(ACE_ROOT)/ace/Pair_T.h \ + $(ACE_ROOT)/ace/Pair_T.i \ + $(ACE_ROOT)/ace/Pair_T.cpp \ + $(ACE_ROOT)/ace/Map_Manager.h \ + $(ACE_ROOT)/ace/Map_Manager.i \ + $(ACE_ROOT)/ace/Map_Manager.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager.h \ + $(ACE_ROOT)/ace/Active_Map_Manager.h \ + $(ACE_ROOT)/ace/Active_Map_Manager.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Map_T.i \ + $(ACE_ROOT)/ace/Map_T.cpp \ + $(TAO_ROOT)/tao/PortableServer/Key_Adapters.i \ + LoadBalancing/LB_ReplicaInfo.h .obj/LB_RPMS_Monitor.o .obj/LB_RPMS_Monitor.so .shobj/LB_RPMS_Monitor.o .shobj/LB_RPMS_Monitor.so: LoadBalancing/LB_RPMS_Monitor.cpp \ LoadBalancing/LB_RPMS_Monitor.h \ @@ -2877,7 +3570,10 @@ realclean: clean $(TAO_ROOT)/tao/PortableServer/Key_Adapters.i \ LoadBalancing/LB_ReplicaInfo.h LoadBalancing/LB_PropertyManager.h \ LoadBalancing/LB_GenericFactory.h \ - LoadBalancing/LB_ObjectGroupManager.h + LoadBalancing/LB_ObjectGroupManager.h LoadBalancing/LB_Location_Map.h \ + LoadBalancing/LB_Location_Hash.h LoadBalancing/LB_Location_Hash.inl \ + LoadBalancing/LB_Location_Equal_To.h \ + LoadBalancing/LB_Location_Equal_To.inl .obj/LoadBalancingI.o .obj/LoadBalancingI.so .shobj/LoadBalancingI.o .shobj/LoadBalancingI.so: LoadBalancing/LoadBalancingI.cpp \ LoadBalancing/LoadBalancingI.h \ @@ -3154,10 +3850,19 @@ realclean: clean $(TAO_ROOT)/tao/PortableServer/Key_Adapters.i \ LoadBalancing/LB_ReplicaInfo.h LoadBalancing/LB_PropertyManager.h \ LoadBalancing/LB_GenericFactory.h \ - LoadBalancing/LB_ObjectGroupManager.h \ + LoadBalancing/LB_ObjectGroupManager.h LoadBalancing/LB_Location_Map.h \ + LoadBalancing/LB_Location_Hash.h LoadBalancing/LB_Location_Hash.inl \ + LoadBalancing/LB_Location_Equal_To.h \ + LoadBalancing/LB_Location_Equal_To.inl \ LoadBalancing/LB_ReplicaLocator.h \ LoadBalancing/LB_Balancing_Strategy.h \ - LoadBalancing/LoadBalancing_export.h + LoadBalancing/LoadBalancing_export.h \ + LoadBalancing/LB_Minimum_Dispersion.h \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp .obj/LoadBalancingS.o .obj/LoadBalancingS.so .shobj/LoadBalancingS.o .shobj/LoadBalancingS.so: LoadBalancingS.cpp LoadBalancingS.h \ $(ACE_ROOT)/ace/pre.h \ |