Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

Hash.h

Go to the documentation of this file.
00001 // HashString.h: HashString generates unique HashString for anchors
00002 // and annotations
00003 // Author: Xiaoyi Ma, Steven Bird
00004 // Copyright (C) 2001 Linguistic Data Consortium, U Penn.
00005 // Web: http://www.ldc.upenn.edu/; Email: ldc@ldc.upenn.edu
00006 // For license information, see the file `LICENSE' included
00007 // with the distribution.
00008 
00009 
00010 #ifndef HashString_h
00011 #define HashString_h
00012 
00013 
00014 #include <string>
00015 
00016 #if (__GNUC__ == 3)
00017 #include <ext/hash_map>
00018 #include <ext/hash_set>
00019   #if (__GNUC_MINOR__ >= 1)
00020   using namespace __gnu_cxx;
00021   #endif
00022 #else
00023 #include <hash_map>
00024 #include <hash_set>
00025 #endif
00026 
00028 class StringEqual
00029 {
00030  public:
00031   size_t operator()(string const &s1, string const &s2) const
00032     {
00033       return (s1 == s2);
00034     }
00035 };
00036 
00038 class hashString
00039 {
00040  public:
00041   size_t operator()(string const &str) const
00042     {
00043       hash<char const *> h;      
00044       return (h(str.c_str()));
00045     }
00046 };
00047 
00049 class StringPairEqual
00050 {
00051  public:
00052   size_t operator()(pair<string,string> const &sp1, pair<string,string> const &sp2) const
00053     {
00054       return (sp1.first == sp2.first && sp1.second == sp2.second);
00055     }
00056 };
00057 
00062 class hashStringPair
00063 {
00064  public:
00065   size_t operator()(pair<string,string> const &sp) const
00066     {
00067       hash<char const *> h;
00068       return (h((sp.first+sp.second).c_str()));
00069     }
00070 };
00071 
00073 class PointerEqual
00074 {
00075  public:
00076   size_t operator()(void*  const &p1, void* const &p2) const
00077     {
00078       return (p1 == p2);
00079     }
00080 };
00081 
00083 class hashPointer
00084 {
00085  public:
00086   size_t operator()(void* const &p) const
00087     {
00088       return (size_t)p;
00089     }
00090 };
00091 
00092 
00093 #endif

Generated at Wed Jul 3 14:54:03 2002 for Annotation Graph API by doxygen1.2.7 written by Dimitri van Heesch, © 1997-2001