diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-05-15 04:44:48 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-05-15 04:44:48 +0000 |
commit | a10024d9e354a2c5567976fd4ee8e5469e939302 (patch) | |
tree | ab45304b43d0f0675ca717b0181c65d7e0cea13f /src | |
parent | 0f3dee8bcde7912e158f06c038430f3ebf807901 (diff) |
Added comments to hashcomp.cpp
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1389 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r-- | src/hashcomp.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/hashcomp.cpp b/src/hashcomp.cpp index 7fe2fed6f..a216792dd 100644 --- a/src/hashcomp.cpp +++ b/src/hashcomp.cpp @@ -30,6 +30,35 @@ #define nspace std #endif +/****************************************************** + * + * The hash functions of InspIRCd are the centrepoint + * of the entire system. If these functions are + * inefficient or wasteful, the whole program suffers + * as a result. A lot of C programmers in the ircd + * scene spend a lot of time debating (arguing) about + * the best way to write hash functions to hash irc + * nicknames, channels etc. + * We are lucky as C++ developers as hash_map does + * a lot of this for us. It does intellegent memory + * requests, bucketing, search functions, insertion + * and deletion etc. All we have to do is write some + * overloaded comparison and hash value operators which + * cause it to act in an irc-like way. The features we + * add to the standard hash_map are: + * + * Case insensitivity: The hash_map will be case + * insensitive. + * + * Scandanavian Comparisons: The characters [, ], \ will + * be considered the lowercase of {, } and |. + * + * This file also contains hashing methods for hashing + * in_addr structs, we use this if we want to cache IP + * addresses. + * + ******************************************************/ + using namespace std; size_t nspace::hash<in_addr>::operator()(const struct in_addr &a) const |