00001 #ifndef GM_FORWARD_H
00002 #define GM_FORWARD_H
00003
00004 #ifdef __GNUC__
00005 #if __GNUC__ < 3
00006 #include <hash_map.h>
00007 namespace Sgi { using ::hash_map; };
00008 #else
00009 #include <ext/hash_map>
00010 #if __GNUC_MINOR__ == 0
00011 namespace Sgi = std;
00012 #else
00013 namespace Sgi = ::__gnu_cxx;
00014 namespace __gnu_cxx
00015 {
00016 using namespace std;
00017
00018 template<>
00019 struct hash<string>
00020 {
00021 size_t operator()(const string& s) const
00022 {
00023 const collate<char>& c = use_facet<collate<char> >(locale::classic());
00024 return c.hash(s.c_str(), s.c_str() + s.size());
00025 }
00026 };
00027 }
00028 #endif
00029 #endif
00030 #else // ... there are other compilers, right?
00031 #include <hash_map>
00032 namespace Sgi = stdext;
00033 #endif
00034
00035
00036
00037
00038 namespace GNUMessenger
00039 {
00040
00041 class XMLManager;
00042 class SettingsManager;
00043 class ContactManager;
00044 class ProtocolManager;
00045
00046 class VBuffer;
00047 class XMLNode;
00048 class Protocol;
00049 class Contact;
00050 class NetConf;
00051 class Folder;
00052
00053 }
00054
00055 #endif