X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspircd.h;h=9311488842374005b4c0c25cbde4707fb7b88dc5;hb=da29af8cba49d51e53d6e68237ccbf6370b6dd1f;hp=5a7f3ae02323d1a12dfcad08a839669112f1102b;hpb=f62654a6859998f9d63eb22702c572d5ebcff15c;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspircd.h b/include/inspircd.h index 5a7f3ae02..931148884 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -44,7 +45,9 @@ #include #include "intrusive_list.h" +#include "flat_map.h" #include "compat.h" +#include "aligned_storage.h" #include "typedefs.h" #include "stdalgo.h" @@ -62,6 +65,7 @@ struct fakederef }; #include "config.h" +#include "convto.h" #include "dynref.h" #include "consolecolors.h" #include "caller.h" @@ -69,6 +73,7 @@ struct fakederef #include "extensible.h" #include "fileutils.h" #include "numerics.h" +#include "numeric.h" #include "uid.h" #include "server.h" #include "users.h" @@ -92,88 +97,6 @@ struct fakederef #include "bancache.h" #include "isupportmanager.h" -/** Template function to convert any input type to std::string - */ -template inline std::string ConvNumeric(const T &in) -{ - if (in == 0) - return "0"; - T quotient = in; - std::string out; - while (quotient) - { - out += "0123456789"[ std::abs( (long)quotient % 10 ) ]; - quotient /= 10; - } - if (in < 0) - out += '-'; - std::reverse(out.begin(), out.end()); - return out; -} - -/** Template function to convert any input type to std::string - */ -inline std::string ConvToStr(const int in) -{ - return ConvNumeric(in); -} - -/** Template function to convert any input type to std::string - */ -inline std::string ConvToStr(const long in) -{ - return ConvNumeric(in); -} - -/** Template function to convert any input type to std::string - */ -inline std::string ConvToStr(const char* in) -{ - return in; -} - -/** Template function to convert any input type to std::string - */ -inline std::string ConvToStr(const bool in) -{ - return (in ? "1" : "0"); -} - -/** Template function to convert any input type to std::string - */ -inline std::string ConvToStr(char in) -{ - return std::string(1, in); -} - -/** Template function to convert any input type to std::string - */ -template inline std::string ConvToStr(const T &in) -{ - std::stringstream tmp; - if (!(tmp << in)) return std::string(); - return tmp.str(); -} - -/** Template function to convert any input type to any other type - * (usually an integer or numeric type) - */ -template inline long ConvToInt(const T &in) -{ - std::stringstream tmp; - if (!(tmp << in)) return 0; - return atol(tmp.str().c_str()); -} - -inline uint64_t ConvToUInt64(const std::string& in) -{ - uint64_t ret; - std::istringstream tmp(in); - if (!(tmp >> ret)) - return 0; - return ret; -} - /** This class contains various STATS counters * It is used by the InspIRCd class, which internally * has an instance of it. @@ -436,15 +359,6 @@ class CoreExport InspIRCd */ int BindPorts(FailedPortList &failed_ports); - /** Binds a socket on an already open file descriptor - * @param sockfd A valid file descriptor of an open socket - * @param port The port number to bind to - * @param addr The address to bind to (IP only) - * @param dolisten Should this port be listened on? - * @return True if the port was bound successfully - */ - bool BindSocket(int sockfd, int port, const char* addr, bool dolisten = true); - /** Find a user in the nick hash. * If the user cant be found in the nick hash check the uuid hash * @param nick The nickname to find @@ -509,11 +423,6 @@ class CoreExport InspIRCd static const char* Format(const char* formatString, ...) CUSTOM_PRINTF(1, 2); static const char* Format(va_list &vaList, const char* formatString) CUSTOM_PRINTF(2, 0); - /** Send an error notice to all local users, opered and unopered - * @param s The error string to send - */ - void SendError(const std::string &s); - /** Return true if a nickname is valid * @param n A nickname to verify * @return True if the nick is valid @@ -558,7 +467,7 @@ class CoreExport InspIRCd */ static bool IsValidMask(const std::string& mask); - /** Strips all color codes from the given string + /** Strips all color and control codes except 001 from the given string * @param sentence The string to strip from */ static void StripColor(std::string &sentence); @@ -611,23 +520,6 @@ class CoreExport InspIRCd */ InspIRCd(int argc, char** argv); - /** Send a line of WHOIS data to a user. - * @param user user to send the line to - * @param dest user being WHOISed - * @param numeric Numeric to send - * @param text Text of the numeric - */ - void SendWhoisLine(User* user, User* dest, int numeric, const std::string &text); - - /** Send a line of WHOIS data to a user. - * @param user user to send the line to - * @param dest user being WHOISed - * @param numeric Numeric to send - * @param format Format string for the numeric - * @param ... Parameters for the format string - */ - void SendWhoisLine(User* user, User* dest, int numeric, const char* format, ...) CUSTOM_PRINTF(5, 6); - /** Called to check whether a channel restriction mode applies to a user * @param User that is attempting some action * @param Channel that the action is being performed on @@ -692,3 +584,6 @@ inline void stdalgo::culldeleter::operator()(classbase* item) if (item) ServerInstance->GlobalCulls.AddItem(item); } + +#include "numericbuilder.h" +#include "modules/whois.h"