X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fircdecoder.h;h=fcafcfea5499f94a734fda7cb013da73c709beff;hb=2491fb92519912fa2169fb9d7dbc631a03bf5570;hp=20fda4977a2f997bfb43e21919790945f891eba0;hpb=a95ad2de573027f9bee36db972bcae4195168d0c;p=quassel.git diff --git a/src/common/ircdecoder.h b/src/common/ircdecoder.h index 20fda497..fcafcfea 100644 --- a/src/common/ircdecoder.h +++ b/src/common/ircdecoder.h @@ -39,6 +39,24 @@ public: * @param parameters[out] Parsed list of parameters */ static void parseMessage(const std::function& decode, const QByteArray& raw, QHash& tags, QString& prefix, QString& command, QList& parameters); + + /** + * Extracts a space-delimited fragment from an IRC message + * @param raw Raw Message + * @param start Current index into the message, will be advanced automatically + * @param end End of fragment, if already known. Default is -1, in which case it will be set to the next whitespace + * character or the end of the string + * @param prefix Required prefix. Default is 0. If set, this only parses a fragment if it starts with the given prefix. + * @return Fragment + */ + static QByteArray extractFragment(const QByteArray& raw, int& start, int end = -1, char prefix = 0); + + /** + * Skips empty parts in the message + * @param raw Raw Message + * @param start Current index into the message, will be advanced automatically + */ + static void skipEmptyParts(const QByteArray& raw, int& start); private: /** * Parses an encoded IRCv3 message tag value