X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fhashcomp.h;h=5626a389df339ddf84882c299fe0b8ff48435449;hb=2bf0722dde6938f3c423b0c3c8c494ce3f64437d;hp=f0e092729d9618cec08e4b01972280721af3a022;hpb=0e6b18ff9180fc7794cea53d0566411b9afb0d7e;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/hashcomp.h b/include/hashcomp.h index f0e092729..5626a389d 100644 --- a/include/hashcomp.h +++ b/include/hashcomp.h @@ -1,12 +1,17 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2011 Adam + * Copyright (C) 2019 linuxdaemon + * Copyright (C) 2013, 2018-2019 Sadie Powell + * Copyright (C) 2013 Adam + * Copyright (C) 2012-2013, 2016 Attila Molnar + * Copyright (C) 2012 Robby + * Copyright (C) 2009 Uli Schlachter * Copyright (C) 2009 Daniel De Graaf - * Copyright (C) 2007, 2009 Dennis Friis - * Copyright (C) 2005-2009 Craig Edwards - * Copyright (C) 2007-2008 Robin Burchell + * Copyright (C) 2008 Robin Burchell * Copyright (C) 2008 Pippijn van Steenhoven + * Copyright (C) 2007 Dennis Friis + * Copyright (C) 2006-2010 Craig Edwards * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -31,6 +36,7 @@ #include #include #include "inspircd.h" +#include "convto.h" /******************************************************* * This file contains classes and templates that deal @@ -139,6 +145,21 @@ namespace irc */ bool GetToken(std::string& token); + /** Fetch the next numeric token from the stream + * @param token The next token from the stream is placed here + * @return True if tokens still remain, false if there are none left + */ + template + bool GetNumericToken(Numeric& token) + { + std::string str; + if (!GetToken(str)) + return false; + + token = ConvToNum(str); + return true; + } + /** Fetch the entire remaining stream, without tokenizing * @return The remaining part of the stream */ @@ -148,6 +169,12 @@ namespace irc * @return True if the end of the stream has been reached, otherwise false */ bool StreamEnd(); + + /** Returns true if the specified value exists in the stream + * @param value The value to search for + * @return True if the value was found, False otherwise + */ + bool Contains(const std::string& value); }; /** A derived form of sepstream, which seperates on commas @@ -197,7 +224,10 @@ namespace irc public: /** Create a tokenstream and fill it with the provided data. */ - tokenstream(const std::string& msg, size_t start = 0); + tokenstream(const std::string& msg, size_t start = 0, size_t end = std::string::npos); + + /** Retrieves the underlying message. */ + std::string& GetMessage() { return message; } /** Retrieve the next \ token in the token stream. * @param token The next token available, or an empty string if none remain.