x = NULL;
}
-/** Template function to convert any input type to std::string
+/** Template functions to convert any input type to std::string
*/
-template<typename T> inline std::string ConvToStr(const T &in)
+template<typename T> inline std::string ConvNumeric(const T &in)
+{
+ if (in == 0) return "0";
+ char res[MAXBUF];
+ char* out = res;
+ T quotient = in;
+ while (quotient) {
+ *out = "0123456789"[ std::abs( (long)quotient % 10 ) ];
+ ++out;
+ quotient /= 10;
+ }
+ if ( in < 0)
+ *out++ = '-';
+ *out = 0;
+ std::reverse(res,out);
+ return res;
+}
+
+inline std::string ConvToStr(const int in)
+{
+ return ConvNumeric(in);
+}
+
+inline std::string ConvToStr(const long in)
+{
+ return ConvNumeric(in);
+}
+
+inline std::string ConvToStr(const unsigned long in)
+{
+ return ConvNumeric(in);
+}
+
+inline std::string ConvToStr(const char* in)
+{
+ return in;
+}
+
+inline std::string ConvToStr(const bool in)
+{
+ return (in ? "1" : "0");
+}
+
+inline std::string ConvToStr(char in)
+{
+ return std::string(in,1);
+}
+
+template <class T> inline std::string ConvToStr(const T &in)
{
std::stringstream tmp;
if (!(tmp << in)) return std::string();
*/
void RehashUsersAndChans();
+ /** Resets the cached max bans value on all channels.
+ * Called by rehash.
+ */
+ void ResetMaxBans();
+
/** Begin execution of the server.
* NOTE: this function NEVER returns. Internally,
* after performing some initialisation routines,