X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fhashcomp.h;h=4eb65823db6e775743a18ff7aebe37f5ebe399d0;hb=99a1ea0892b575c6d66d9f4c0aab5042c261ce4a;hp=0556f4399aefda9fb46042f0a0f24942fbfd3755;hpb=f2acdbc3820f0f4f5ef76a0a64e73d2a320df91f;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/hashcomp.h b/include/hashcomp.h index 0556f4399..4eb65823d 100644 --- a/include/hashcomp.h +++ b/include/hashcomp.h @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * InspIRCd: (C) 2002-2007 InspIRCd Development Team + * InspIRCd: (C) 2002-2008 InspIRCd Development Team * See: http://www.inspircd.org/wiki/index.php/Credits * * This program is free but copyrighted software; see @@ -14,8 +14,8 @@ #ifndef _HASHCOMP_H_ #define _HASHCOMP_H_ -#include "inspircd_config.h" -#include "socket.h" +//#include "inspircd_config.h" +//#include "socket.h" #include "hash_map.h" /******************************************************* @@ -33,15 +33,6 @@ * aware of irc::string. *******************************************************/ -/** Required namespaces and symbols */ -using namespace std; - -/** aton() */ -using irc::sockets::insp_aton; - -/** nota() */ -using irc::sockets::insp_ntoa; - #ifndef LOWERMAP #define LOWERMAP /** A mapping of uppercase to lowercase, including scandinavian @@ -133,15 +124,15 @@ namespace irc /** This typedef declares irc::string based upon irc_char_traits. */ - typedef basic_string > string; + typedef std::basic_string > string; /** 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 - * std::string, or a const char** array, using overloaded + * std::string, or a const char* const* array, using overloaded * constructors. */ - class CoreExport stringjoiner + class CoreExport stringjoiner : public classbase { private: /** Output string @@ -168,7 +159,7 @@ namespace irc * @param begin The starting element in the sequence to be joined * @param end The ending element in the sequence to be joined */ - stringjoiner(const std::string &seperator, const char** sequence, int begin, int end); + stringjoiner(const std::string &seperator, const char* const* sequence, int begin, int end); /** Get the joined sequence * @return A reference to the joined string @@ -180,7 +171,7 @@ namespace irc * It can then reproduce this list, clamped to a maximum of MAXMODES * values per line. */ - class CoreExport modestacker + class CoreExport modestacker : public classbase { private: /** The mode sequence and its parameters @@ -251,7 +242,7 @@ namespace irc * list will be ":item". This is to allow for parsing 'source' fields * from data. */ - class CoreExport tokenstream + class CoreExport tokenstream : public classbase { private: /** Original string @@ -324,9 +315,10 @@ namespace irc virtual ~sepstream(); /** Fetch the next token from the stream - * @return The next token is returned, or an empty string if none remain + * @param token The next token from the stream is placed here + * @return True if tokens still remain, false if there are none left */ - virtual const std::string GetToken(); + virtual bool GetToken(std::string &token); /** Fetch the entire remaining stream, without tokenizing * @return The remaining part of the stream @@ -437,8 +429,8 @@ namespace irc * To use this class, you must derive from it. * This is because each derived instance has its own freebits array * which can determine what bitfields are allocated on a TYPE BY TYPE - * basis, e.g. an irc::dynamicbitmask type for userrecs, and one for - * chanrecs, etc. You should inheret it in a very simple way as follows. + * basis, e.g. an irc::dynamicbitmask type for Users, and one for + * Channels, etc. You should inheret it in a very simple way as follows. * The base class will resize and maintain freebits as required, you are * just required to make the pointer static and specific to this class * type. @@ -545,7 +537,7 @@ namespace irc /** Set free bits mask */ - virtual void SetFreeBits(unsigned char* freebits) { } + virtual void SetFreeBits(unsigned char* freebits) { freebits = freebits; } }; /** Turn _ characters in a string into spaces @@ -613,6 +605,20 @@ inline bool operator== (const irc::string& leftval, const std::string& rightval) return (leftval == rightval.c_str()); } +/* Define operators != for irc::string to std::string for easy comparison + */ +inline bool operator!= (const irc::string& leftval, const std::string& rightval) +{ + return !(leftval == rightval.c_str()); +} + +/* Define operators != for std::string to irc::string for easy comparison + */ +inline bool operator!= (const std::string& leftval, const irc::string& rightval) +{ + return !(leftval.c_str() == rightval); +} + /** Assign an irc::string to a std::string. */ inline std::string assign(const irc::string &other) { return other.c_str(); } @@ -696,7 +702,7 @@ namespace nspace * @param s A string to hash * @return The hash value */ - size_t operator()(const string &s) const; + size_t operator()(const std::string &s) const; }; #endif