From eb7125445e8740e177ad05a74a5cc90324a35f98 Mon Sep 17 00:00:00 2001 From: brain Date: Sun, 15 May 2005 03:17:33 +0000 Subject: (Untested) added hashcomp.cpp, seperates out the stl hash_map stuff git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1384 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/hashcomp.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/hashcomp.cpp (limited to 'src/hashcomp.cpp') diff --git a/src/hashcomp.cpp b/src/hashcomp.cpp new file mode 100644 index 000000000..ea845489f --- /dev/null +++ b/src/hashcomp.cpp @@ -0,0 +1,55 @@ +#include +#include "inspircd.h" +#include "hashcomp.h" +#include "helperfuncs.h" +#ifdef GCC3 +#include +#else +#include +#endif + +#ifdef GCC3 +#define nspace __gnu_cxx +#else +#define nspace std +#endif + +using namespace std; + +size_t nspace::hash::operator()(const struct in_addr &a) const +{ + size_t q; + memcpy(&q,&a,sizeof(size_t)); + return q; +} + +size_t nspace::hash::operator()(const string &s) const +{ + char a[MAXBUF]; + static struct hash strhash; + strlcpy(a,s.c_str(),MAXBUF); + strlower(a); + return strhash(a); +} + +bool StrHashComp::operator()(const string& s1, const string& s2) const +{ + char a[MAXBUF],b[MAXBUF]; + strlcpy(a,s1.c_str(),MAXBUF); + strlcpy(b,s2.c_str(),MAXBUF); + strlower(a); + strlower(b); + return (strcasecmp(a,b) == 0); +} + +bool InAddr_HashComp::operator()(const in_addr &s1, const in_addr &s2) const +{ + size_t q; + size_t p; + + memcpy(&q,&s1,sizeof(size_t)); + memcpy(&p,&s2,sizeof(size_t)); + + return (q == p); +} + -- cgit v1.3.1-10-gc9f91