diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/PortableGroup/PG_Location_Hash.inl')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/PortableGroup/PG_Location_Hash.inl | 25 |
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 |