KeyRingMetric Class Reference

#include <Comparator.h>

List of all members.


Detailed Description

OverlayKey Ring Metric.

Public Member Functions

OverlayKey distance (const OverlayKey &x, const OverlayKey &y) const
 calculates the difference between x and y on a bidirectional ring

Member Function Documentation

OverlayKey KeyRingMetric::distance ( const OverlayKey x,
const OverlayKey y 
) const [inline]

calculates the difference between x and y on a bidirectional ring

Parameters:
x first parameter
y second parameter
Returns:
|x-y| on a bidirectional ring
00097     {
00098         const OverlayKey* smaller;
00099         const OverlayKey* bigger;
00100         
00101         if (x > y)
00102         {
00103             smaller = &y;
00104             bigger = &x;
00105         }
00106         else
00107         {
00108             smaller = &x;
00109             bigger = &y;
00110         }
00111         
00112         OverlayKey diff1(*bigger - *smaller);
00113         OverlayKey diff2(*smaller + (OverlayKey::max() - *bigger) + 1);
00114         
00115         if (diff1 > diff2)
00116             return diff2;
00117         else
00118             return diff1;
00119     }


The documentation for this class was generated from the following file:
Generated on Thu Apr 17 13:19:29 2008 for ITM OverSim by  doxygen 1.5.3