From a10024d9e354a2c5567976fd4ee8e5469e939302 Mon Sep 17 00:00:00 2001 From: brain Date: Sun, 15 May 2005 04:44:48 +0000 Subject: [PATCH] Added comments to hashcomp.cpp git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1389 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/hashcomp.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) 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::operator()(const struct in_addr &a) const -- 2.39.2