summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Location_Hash.inl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/PortableGroup/PG_Location_Hash.inl')
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup/PG_Location_Hash.inl25
1 files changed, 25 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Location_Hash.inl b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Location_Hash.inl
new file mode 100644
index 00000000000..a0b591b1068
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Location_Hash.inl
@@ -0,0 +1,25 @@
+// -*- C++ -*-
+//
+// $Id$
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_INLINE CORBA::ULong
+TAO_PG_Location_Hash::operator() (
+ const PortableGroup::Location &location) const
+{
+ // @todo Interim implementation until we figure out what to do when a
+ // location has multiple components.
+
+ CORBA::ULong len = location.length ();
+ CORBA::ULong hash = 0;
+
+ for (CORBA::ULong i = 0; i < len; ++i)
+ hash +=
+ ACE::hash_pjw (location[i].id.in ()) +
+ ACE::hash_pjw (location[i].kind.in ());
+
+ return hash;
+}
+
+TAO_END_VERSIONED_NAMESPACE_DECL