diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2014-10-06 15:03:54 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2014-10-06 15:03:54 +0200 |
| commit | 529f38bd8878b6b1bea2b5457031ce936aab8d80 (patch) | |
| tree | 1193caefcad12f6a36f818048e4547e60add4398 /libcommuni/src/core/irc.cpp | |
| parent | 3b58b5536935adff242928ed9f30e1c0262fbd7c (diff) | |
| download | manager-529f38bd8878b6b1bea2b5457031ce936aab8d80.tar.gz manager-529f38bd8878b6b1bea2b5457031ce936aab8d80.zip | |
addedd communi
Diffstat (limited to 'libcommuni/src/core/irc.cpp')
| -rw-r--r-- | libcommuni/src/core/irc.cpp | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/libcommuni/src/core/irc.cpp b/libcommuni/src/core/irc.cpp new file mode 100644 index 0000000..5a51645 --- /dev/null +++ b/libcommuni/src/core/irc.cpp @@ -0,0 +1,172 @@ +/* + Copyright (C) 2008-2014 The Communi Project + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include "irc.h" +#include "irccore.h" +#include "irccommand.h" +#include "ircconnection.h" +#include "ircmessage_p.h" +#include <QMetaEnum> +#include <QDebug> + +IRC_BEGIN_NAMESPACE + +/*! + \file irc.h + \brief \#include <Irc> + */ + +/*! + \namespace Irc + \ingroup core + \brief Miscellaneous identifiers used throughout the library. + */ + +/*! + Returns the version number of Communi at run-time as a string (for example, "1.2.3"). + This may be a different version than the version the application was compiled against. + + \sa IRC_VERSION, IRC_VERSION_STR + */ +QString Irc::version() +{ + return QLatin1String(IRC_VERSION_STR); +} + +/*! + Returns the numeric \a code as a string or a null string if the code is unknown. + + \sa Irc::Code, IrcNumericMessage::code() + */ +QString Irc::codeToString(int code) +{ + const int index = Irc::staticMetaObject.indexOfEnumerator("Code"); + QMetaEnum enumerator = Irc::staticMetaObject.enumerator(index); + return QLatin1String(enumerator.valueToKey(code)); +} + +/*! + Returns the nick part of the specified \a prefix. + + Nick part of a prefix as specified in RFC 1459: + <pre> + <b><nick></b> [ '!' <ident> ] [ '@' <host> ] + </pre> + + \sa IrcMessage::prefix, IrcMessage::nick + */ +QString Irc::nickFromPrefix(const QString& prefix) +{ + QString nick; + IrcMessagePrivate::parsePrefix(prefix, &nick, 0, 0); + return nick; +} + +/*! + Returns the ident part of the specified \a prefix. + + Ident part of a prefix as specified in RFC 1459: + <pre> + <nick> [ '!' <b><ident></b> ] [ '@' <host> ] + </pre> + + \sa IrcMessage::prefix, IrcMessage::ident + */ +QString Irc::identFromPrefix(const QString& prefix) +{ + QString ident; + IrcMessagePrivate::parsePrefix(prefix, 0, &ident, 0); + return ident; +} + +/*! + Returns the host part of the specified \a prefix. + + Host part of a prefix as specified in RFC 1459: + <pre> + <nick> [ '!' <ident> ] [ '@' <b><host></b> ] + </pre> + + \sa IrcMessage::prefix, IrcMessage::host + */ +QString Irc::hostFromPrefix(const QString& prefix) +{ + QString host; + IrcMessagePrivate::parsePrefix(prefix, 0, 0, &host); + return host; +} + +/*! + \deprecated Use IrcCore::registerMetaTypes() instead. + */ +void Irc::registerMetaTypes() +{ + IrcCore::registerMetaTypes(); +} + +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug debug, Irc::Code code) +{ + const int index = Irc::staticMetaObject.indexOfEnumerator("Code"); + QMetaEnum enumerator = Irc::staticMetaObject.enumerator(index); + const char* key = enumerator.valueToKey(code); + debug << (key ? key : "Unknown"); + return debug; +} + +QDebug operator<<(QDebug debug, Irc::DataRole role) +{ + const int index = Irc::staticMetaObject.indexOfEnumerator("DataRole"); + QMetaEnum enumerator = Irc::staticMetaObject.enumerator(index); + const char* key = enumerator.valueToKey(role); + debug << (key ? key : "Unknown"); + return debug; +} + +QDebug operator<<(QDebug debug, Irc::Color color) +{ + const int index = Irc::staticMetaObject.indexOfEnumerator("Color"); + QMetaEnum enumerator = Irc::staticMetaObject.enumerator(index); + const char* key = enumerator.valueToKey(color); + debug << (key ? key : "Unknown"); + return debug; +} + +QDebug operator<<(QDebug debug, Irc::SortMethod method) +{ + const int index = Irc::staticMetaObject.indexOfEnumerator("SortMethod"); + QMetaEnum enumerator = Irc::staticMetaObject.enumerator(index); + const char* key = enumerator.valueToKey(method); + debug << (key ? key : "Unknown"); + return debug; +} +#endif // QT_NO_DEBUG_STREAM + +#include "moc_irc.cpp" + +IRC_END_NAMESPACE |
