common/include/pion/PionHashMap.hpp

00001 // -----------------------------------------------------------------------
00002 // pion-common: a collection of common libraries used by the Pion Platform
00003 // -----------------------------------------------------------------------
00004 // Copyright (C) 2007-2008 Atomic Labs, Inc.  (http://www.atomiclabs.com)
00005 //
00006 // Distributed under the Boost Software License, Version 1.0.
00007 // See http://www.boost.org/LICENSE_1_0.txt
00008 //
00009 
00010 #ifndef __PION_PIONHASHMAP_HEADER__
00011 #define __PION_PIONHASHMAP_HEADER__
00012 
00013 #include <boost/functional/hash.hpp>
00014 #include <pion/PionConfig.hpp>
00015 
00016 
00017 #if defined(PION_HAVE_UNORDERED_MAP)
00018     #include <tr1/unordered_map>
00019     #define PION_HASH_MAP std::tr1::unordered_map
00020     #define PION_HASH_MULTIMAP std::tr1::unordered_multimap
00021     #define PION_HASH_STRING boost::hash<std::string>
00022     #define PION_HASH(TYPE) boost::hash<TYPE>
00023 #elif defined(PION_HAVE_EXT_HASH_MAP)
00024     #include <ext/hash_map>
00025     #if __GNUC__ >= 3
00026         #define PION_HASH_MAP __gnu_cxx::hash_map
00027         #define PION_HASH_MULTIMAP __gnu_cxx::hash_multimap
00028     #else
00029         #define PION_HASH_MAP hash_map
00030         #define PION_HASH_MULTIMAP hash_multimap
00031     #endif
00032     #define PION_HASH_STRING boost::hash<std::string>
00033     #define PION_HASH(TYPE) boost::hash<TYPE>
00034 #elif defined(PION_HAVE_HASH_MAP)
00035     #include <hash_map>
00036     #ifdef _MSC_VER
00037         #define PION_HASH_MAP stdext::hash_map
00038         #define PION_HASH_MULTIMAP stdext::hash_multimap
00039         #define PION_HASH_STRING stdext::hash_compare<std::string, std::less<std::string> >
00040         #define PION_HASH(TYPE) stdext::hash_compare<TYPE, std::less<TYPE> >
00041     #else
00042         #define PION_HASH_MAP hash_map
00043         #define PION_HASH_MULTIMAP hash_multimap
00044         #define PION_HASH_STRING boost::hash<std::string>
00045         #define PION_HASH(TYPE) boost::hash<TYPE>
00046     #endif
00047 #endif
00048 
00049 
00050 #endif

Generated on Fri Dec 4 08:54:29 2009 for pion-net by  doxygen 1.4.7