summaryrefslogtreecommitdiffstats
path: root/libcommuni/src/core/irc.cpp
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2014-10-06 15:03:54 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2014-10-06 15:03:54 +0200
commit529f38bd8878b6b1bea2b5457031ce936aab8d80 (patch)
tree1193caefcad12f6a36f818048e4547e60add4398 /libcommuni/src/core/irc.cpp
parent3b58b5536935adff242928ed9f30e1c0262fbd7c (diff)
downloadmanager-529f38bd8878b6b1bea2b5457031ce936aab8d80.tar.gz
manager-529f38bd8878b6b1bea2b5457031ce936aab8d80.zip
addedd communi
Diffstat (limited to 'libcommuni/src/core/irc.cpp')
-rw-r--r--libcommuni/src/core/irc.cpp172
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 &lt;Irc&gt;
+ */
+
+/*!
+ \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>&lt;nick&gt;</b> [ '!' &lt;ident&gt; ] [ '@' &lt;host&gt; ]
+ </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>
+ &lt;nick&gt; [ '!' <b>&lt;ident&gt;</b> ] [ '@' &lt;host&gt; ]
+ </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>
+ &lt;nick&gt; [ '!' &lt;ident&gt; ] [ '@' <b>&lt;host&gt;</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