summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwilson_d <wilson_d@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-12-01 15:18:34 +0000
committerwilson_d <wilson_d@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-12-01 15:18:34 +0000
commit7b5035c2ffab78d38bd6ef85466b32b6dad9781f (patch)
tree8567f82a04310dc582432cfda5cc7f8717726764
parent3d011b8ab662d7ada26caaca352252ba9f8ba91f (diff)
downloadATCD-7b5035c2ffab78d38bd6ef85466b32b6dad9781f.tar.gz
ChangeLogTag: Mon Dec 1 09:16:28 2003 Dale Wilson <wilson_d@ociweb.com>
-rw-r--r--TAO/ChangeLog14
-rw-r--r--TAO/orbsvcs/FT_ReplicationManager/FT_ReplicationManager.cpp131
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/PG_Group_Factory.cpp4
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroupManager.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp40
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h23
6 files changed, 190 insertions, 24 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 30ddf16d77b..a4943485d1c 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,17 @@
+Mon Dec 1 09:16:28 2003 Dale Wilson <wilson_d@ociweb.com>
+
+ * orbsvcs/FT_ReplicationManager/FT_ReplicationManager.cpp:
+ Move implementation details to PG_Object_Group
+
+ * orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h:
+ * orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp:
+ Declare remaining functions to support ReplicationManager.
+ Stubbed out for now.
+
+ * orbsvcs/orbsvcs/PortableGroup/PG_Group_Factory.cpp:
+ * orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroupManager.cpp:
+ Resolve linux build warnings.
+
Sun Nov 30 11:53:38 2003 Dale Wilson <wilson_d@ociweb.com>
* orbsvcs/orbsvcs/PortableGroup/PG_Group_Factory.h:
diff --git a/TAO/orbsvcs/FT_ReplicationManager/FT_ReplicationManager.cpp b/TAO/orbsvcs/FT_ReplicationManager/FT_ReplicationManager.cpp
index 710d13b638b..cdc8741efd0 100644
--- a/TAO/orbsvcs/FT_ReplicationManager/FT_ReplicationManager.cpp
+++ b/TAO/orbsvcs/FT_ReplicationManager/FT_ReplicationManager.cpp
@@ -688,8 +688,23 @@ TAO::FT_ReplicationManager::create_member (
PortableGroup::CannotMeetCriteria))
{
PortableGroup::ObjectGroup_var result = PortableGroup::ObjectGroup::_nil();
-TODO
-//@@ TODO
+ TAO::PG_Object_Group * group = 0;
+ if (this->group_factory_.find_group (object_group, group))
+ {
+ group->create_member (the_location, type_id, the_criteria ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (PortableGroup::ObjectGroup::_nil ());
+ result = group->reference ();
+ }
+ else
+ {
+ if (TAO_debug_level > 0)
+ {
+ ACE_ERROR ( (LM_ERROR,
+ ACE_TEXT ("%T %n (%P|%t) - FT_ReplicationManager::create_member in unknown group\n")
+ ));
+ }
+ ACE_THROW_RETURN (PortableGroup::ObjectGroupNotFound (), result._retn ());
+ }
return result._retn();
}
@@ -712,12 +727,6 @@ TAO::FT_ReplicationManager::add_member (
TAO::PG_Object_Group * group = 0;
if (this->group_factory_.find_group (object_group, group))
{
-
- ///////////////////////
- // Now we do it again using
- // our own object group collection
- // @@ TODO: if this fails, we're out of synch with the OGM
- // @@ unified object group management will fix this someday.
group->add_member (
the_location,
member
@@ -738,7 +747,6 @@ TAO::FT_ReplicationManager::add_member (
ACE_THROW_RETURN (PortableGroup::ObjectGroupNotFound (), result._retn ());
}
METHOD_RETURN (TAO::FT_ReplicationManager::add_member) result._retn ();
-
}
PortableGroup::ObjectGroup_ptr
@@ -774,9 +782,27 @@ TAO::FT_ReplicationManager::locations_of_members (
ACE_THROW_SPEC ( (CORBA::SystemException,
PortableGroup::ObjectGroupNotFound))
{
- TODO
- return 0;
+ PortableGroup::Locations * result = 0;
+ // Find the object group corresponding to this IOGR
+ TAO::PG_Object_Group * group = 0;
+ if (this->group_factory_.find_group (object_group, group))
+ {
+ result = group->locations_of_members (
+ ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
+ }
+ else
+ {
+ if (TAO_debug_level > 0)
+ {
+ ACE_ERROR ( (LM_ERROR,
+ ACE_TEXT ("%T %n (%P|%t) - FT_ReplicationManager::locations_of_members: unknown group\n")
+ ));
+ }
+ ACE_THROW_RETURN (PortableGroup::ObjectGroupNotFound (), 0);
+ }
+ return result;
}
PortableGroup::ObjectGroups *
@@ -786,7 +812,8 @@ TAO::FT_ReplicationManager::groups_at_location (
ACE_THROW_SPEC ( (CORBA::SystemException))
{
TODO
- return 0;
+ ACE_UNUSED_ARG (the_location);
+ ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
}
PortableGroup::ObjectGroupId
@@ -796,8 +823,25 @@ TAO::FT_ReplicationManager::get_object_group_id (
ACE_THROW_SPEC ( (CORBA::SystemException,
PortableGroup::ObjectGroupNotFound))
{
- TODO
- return 0;
+ PortableGroup::ObjectGroupId result = 0;
+ TAO::PG_Object_Group * group = 0;
+ if (this->group_factory_.find_group (object_group, group))
+ {
+ group->get_object_group_id (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (result);
+ result = group->get_object_group_id ();
+ }
+ else
+ {
+ if (TAO_debug_level > 0)
+ {
+ ACE_ERROR ( (LM_ERROR,
+ ACE_TEXT ("%T %n (%P|%t) - FT_ReplicationManager::get_object_group_id: unknown group\n")
+ ));
+ }
+ ACE_THROW_RETURN (PortableGroup::ObjectGroupNotFound (), result);
+ }
+ return result;
}
PortableGroup::ObjectGroup_ptr
@@ -807,8 +851,24 @@ TAO::FT_ReplicationManager::get_object_group_ref (
ACE_THROW_SPEC ( (CORBA::SystemException,
PortableGroup::ObjectGroupNotFound))
{
- PortableGroup::ObjectGroup_var result = PortableGroup::ObjectGroup::_nil();
- TODO
+ PortableGroup::ObjectGroup_var result = PortableGroup::ObjectGroup::_nil ();
+
+ // Find the object group corresponding to this IOGR
+ TAO::PG_Object_Group * group = 0;
+ if (this->group_factory_.find_group (object_group, group))
+ {
+ result = group->reference ();
+ }
+ else
+ {
+ if (TAO_debug_level > 0)
+ {
+ ACE_ERROR ( (LM_ERROR,
+ ACE_TEXT ("%T %n (%P|%t) - FT_ReplicationManager::get_object_group_ref: unknown group\n")
+ ));
+ }
+ ACE_THROW_RETURN (PortableGroup::ObjectGroupNotFound (), result._retn ());
+ }
return result._retn();
}
@@ -821,8 +881,24 @@ TAO::FT_ReplicationManager::get_object_group_ref_from_id (
, PortableGroup::ObjectGroupNotFound
))
{
- PortableGroup::ObjectGroup_var result = PortableGroup::ObjectGroup::_nil();
- TODO
+ PortableGroup::ObjectGroup_var result = PortableGroup::ObjectGroup::_nil ();
+
+ // Find the object group corresponding to this IOGR
+ TAO::PG_Object_Group * group = 0;
+ if (this->group_factory_.find_group (group_id, group))
+ {
+ result = group->reference ();
+ }
+ else
+ {
+ if (TAO_debug_level > 0)
+ {
+ ACE_ERROR ( (LM_ERROR,
+ ACE_TEXT ("%T %n (%P|%t) - FT_ReplicationManager::get_object_group_ref_from_id: unknown group\n")
+ ));
+ }
+ ACE_THROW_RETURN (PortableGroup::ObjectGroupNotFound (), result._retn ());
+ }
return result._retn();
}
@@ -836,7 +912,24 @@ TAO::FT_ReplicationManager::get_member_ref (
PortableGroup::MemberNotFound))
{
CORBA::Object_var result = CORBA::Object::_nil();
- TODO
+
+ // Find the object group corresponding to this IOGR
+ TAO::PG_Object_Group * group = 0;
+ if (this->group_factory_.find_group (object_group, group))
+ {
+ result = group->get_member_reference (the_location ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (CORBA::Object::_nil());
+ }
+ else
+ {
+ if (TAO_debug_level > 0)
+ {
+ ACE_ERROR ( (LM_ERROR,
+ ACE_TEXT ("%T %n (%P|%t) - FT_ReplicationManager::get_member_ref: unknown group\n")
+ ));
+ }
+ ACE_THROW_RETURN (PortableGroup::ObjectGroupNotFound (), result._retn ());
+ }
return result._retn();
}
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Group_Factory.cpp b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Group_Factory.cpp
index 5e4861d3684..1832ddee8f7 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Group_Factory.cpp
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Group_Factory.cpp
@@ -22,7 +22,7 @@
ACE_RCSID (PortableGroup,
- PG_Group_Factory::,
+ PG_Group_Factory,
"$Id$")
@@ -89,7 +89,6 @@ TAO::PG_Object_Group * TAO::PG_Group_Factory::create_group (
PortableGroup::TagGroupTaggedComponent tagged_component;
if (! TAO::PG_Utils::get_tagged_component (empty_group, tagged_component))
{
- delete empty_group;
ACE_THROW_RETURN (PortableGroup::ObjectNotCreated(), 0);
}
@@ -111,7 +110,6 @@ TAO::PG_Object_Group * TAO::PG_Group_Factory::create_group (
if (this->group_map_.bind (group_id, objectGroup) != 0)
{
- delete empty_group;
delete objectGroup;
ACE_THROW_RETURN (PortableGroup::ObjectNotCreated(), 0);
}
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroupManager.cpp b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroupManager.cpp
index bab30deaa82..ae52bc4fc92 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroupManager.cpp
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_ObjectGroupManager.cpp
@@ -631,8 +631,6 @@ TAO_PG_ObjectGroupManager::member_count (
int
TAO_PG_ObjectGroupManager::init (CORBA::ORB_ptr orb, PortableServer::POA_ptr poa)
{
- int result = 0;
-
ACE_ASSERT (CORBA::is_nil (this->orb_.in ()));
ACE_ASSERT (CORBA::is_nil (this->poa_.in ()));
this->orb_ = CORBA::ORB::_duplicate (orb);
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp
index f8a3e2edd14..5be39951948 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp
@@ -10,6 +10,10 @@
#include <orbsvcs/PortableGroup/PG_Operators.h> // Borrow operator == on CosNaming::Name
#include <orbsvcs/PortableGroup/PG_Utils.h>
+#define TODO int todo;
+//#define TODO
+
+
TAO::PG_Object_Group::MemberInfo::MemberInfo (
CORBA::Object_ptr member,
const PortableGroup::Location & location)
@@ -556,6 +560,42 @@ void TAO::PG_Object_Group::distribute_iogr (ACE_ENV_ARG_DECL)
}
}
+void TAO::PG_Object_Group::create_member (
+ const PortableGroup::Location & the_location,
+ const char * type_id,
+ const PortableGroup::Criteria & the_criteria
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ( (CORBA::SystemException,
+ PortableGroup::MemberAlreadyPresent,
+ PortableGroup::NoFactory,
+ PortableGroup::ObjectNotCreated,
+ PortableGroup::InvalidCriteria,
+ PortableGroup::CannotMeetCriteria))
+{
+ TODO
+}
+
+PortableGroup::Locations * TAO::PG_Object_Group::locations_of_members (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ PortableGroup::Locations * result = 0;
+ TODO
+ return result;
+}
+
+CORBA::Object_ptr TAO::PG_Object_Group::get_member_reference (
+ const PortableGroup::Location & the_location
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ PortableGroup::ObjectGroupNotFound,
+ PortableGroup::MemberNotFound))
+{
+ CORBA::Object_var result = CORBA::Object::_nil ();
+ TODO
+ return result._retn ();
+}
+
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
template class ACE_Hash_Map_Manager_Ex <
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h
index 9442b30e432..910a4694e4f 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.h
@@ -216,6 +216,29 @@ namespace TAO
PortableGroup::MemberNotFound));
+ void create_member (
+ const PortableGroup::Location & the_location,
+ const char * type_id,
+ const PortableGroup::Criteria & the_criteria
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ( (CORBA::SystemException,
+ PortableGroup::MemberAlreadyPresent,
+ PortableGroup::NoFactory,
+ PortableGroup::ObjectNotCreated,
+ PortableGroup::InvalidCriteria,
+ PortableGroup::CannotMeetCriteria));
+
+ PortableGroup::Locations * locations_of_members (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ CORBA::Object_ptr get_member_reference (
+ const PortableGroup::Location & the_location
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException,
+ PortableGroup::ObjectGroupNotFound,
+ PortableGroup::MemberNotFound));
+
/////////////////////////
// Implementation methods
private: