]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/hashcomp.h
Bump API version
[user/henk/code/inspircd.git] / include / hashcomp.h
index 6e171549d091d9bd45b6889d4674a7b1e8f90f76..445c4c4ea2319c1997b63ee4ba0baa6487c235b0 100644 (file)
@@ -2,12 +2,9 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
- *                       E-mail:
- *                <brain@chatspike.net>
- *                <Craig@chatspike.net>
+ *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ * See: http://www.inspircd.org/wiki/index.php/Credits
  *
- * Written by Craig Edwards, Craig McLure, and others.
  * This program is free but copyrighted software; see
  *            the file COPYING for details.
  *
@@ -39,7 +36,6 @@
 using namespace std;
 using irc::sockets::insp_aton;
 using irc::sockets::insp_ntoa;
-using irc::sockets::insp_inaddr;
 
 #ifndef LOWERMAP
 #define LOWERMAP
@@ -72,17 +68,6 @@ namespace nspace
         */
        void strlower(char *n);
 
-       /** Hashing function to hash insp_inaddr structs
-        */
-        template<> struct hash<insp_inaddr>
-        {
-               /** Hash an insp_inaddr
-                * @param a An insp_inaddr to hash
-                * @return The hash value
-                */
-                size_t operator()(const insp_inaddr &a) const;
-        };
-
        /** Hashing function to hash std::string without respect to case
         */
         template<> struct hash<std::string>
@@ -112,17 +97,6 @@ namespace irc
        };
 
 
-       /** This class returns true if two insp_inaddr structs match.
-        * Checking is done by copying both into a size_t then doing a
-        * numeric comparison of the two.
-        */
-       struct InAddr_HashComp
-       {
-               /** The operator () does the actual comparison in hash_map
-                */
-               bool operator()(const insp_inaddr &s1, const insp_inaddr &s2) const;
-       };
-
        /** irc::stringjoiner joins string lists into a string, using
         * the given seperator string.
         * This class can join a vector of std::string, a deque of
@@ -288,6 +262,11 @@ namespace irc
                 * @return The next token is returned, or an empty string if none remain
                 */
                virtual const std::string GetToken();
+               
+               /** Returns true if the end of the stream has been reached
+                * @return True if the end of the stream has been reached, otherwise false
+                */
+               virtual bool StreamEnd();
        };
 
        /** A derived form of sepstream, which seperates on commas
@@ -390,6 +369,7 @@ namespace irc
         * just required to make the pointer static and specific to this class
         * type.
         *
+        * \code
         * class mydbitmask : public irc::dynamicbitmask
         * {
         *  private:
@@ -419,6 +399,7 @@ namespace irc
         *          freebits = freebt;
         *      }
         * };
+        * \endcode
         */
        class dynamicbitmask : public classbase
        {
@@ -428,6 +409,7 @@ namespace irc
                 * more than 32 entries with Allocate().
                 */
                unsigned char* bits;
+        protected:
                /** Current set size (size of freebits and bits).
                 * Both freebits and bits will ALWAYS be the
                 * same length.
@@ -521,7 +503,7 @@ namespace irc
         */
        typedef basic_string<char, irc_char_traits, allocator<char> > string;
 
-       const char* Spacify(char* n);
+       const char* Spacify(const char* n);
 }
 
 /* Define operators for using >> and << with irc::string to an ostream on an istream. */
@@ -538,4 +520,17 @@ irc::string operator+ (irc::string& leftval, std::string& rightval);
 bool operator== (std::string& leftval, irc::string& rightval);
 bool operator== (irc::string& leftval, std::string& rightval);
 
+std::string assign(const irc::string &other);
+irc::string assign(const std::string &other);
+
+namespace nspace
+{
+       /** Hashing function to hash irc::string
+        */
+       template<> struct hash<irc::string>
+       {
+               size_t operator()(const irc::string &s) const;
+       };
+}
+
 #endif