summaryrefslogtreecommitdiffstats
path: root/src/libcommuni/doc
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2015-09-09 19:00:56 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2015-09-09 19:02:23 +0200
commit8a6d4b06f2291c363f3dea17837ed20893852453 (patch)
treec091375499e35eaa1810586454e0834c06e6c9b2 /src/libcommuni/doc
parentf554a27046f203e56a07baaf214d90834942e3f5 (diff)
downloadmanager-8a6d4b06f2291c363f3dea17837ed20893852453.tar.gz
manager-8a6d4b06f2291c363f3dea17837ed20893852453.zip
Cleanup repo with some directories
Diffstat (limited to 'src/libcommuni/doc')
-rw-r--r--src/libcommuni/doc/bot.dox99
-rw-r--r--src/libcommuni/doc/bot.pngbin0 -> 13985 bytes
-rw-r--r--src/libcommuni/doc/client.dox67
-rw-r--r--src/libcommuni/doc/client.pngbin0 -> 70323 bytes
-rw-r--r--src/libcommuni/doc/communi.pngbin0 -> 4612 bytes
-rw-r--r--src/libcommuni/doc/debugging.dox45
-rw-r--r--src/libcommuni/doc/doc.pri20
-rw-r--r--src/libcommuni/doc/enums.dox1957
-rw-r--r--src/libcommuni/doc/header.html55
-rw-r--r--src/libcommuni/doc/mainpage.dox54
-rw-r--r--src/libcommuni/doc/minimal.dox46
-rw-r--r--src/libcommuni/doc/modules.dox85
-rw-r--r--src/libcommuni/doc/qml.dox160
-rw-r--r--src/libcommuni/doc/qmlbot.dox71
-rw-r--r--src/libcommuni/doc/qmlbot.pngbin0 -> 4804 bytes
-rw-r--r--src/libcommuni/doc/quick.dox91
-rw-r--r--src/libcommuni/doc/quick.pngbin0 -> 110519 bytes
-rw-r--r--src/libcommuni/doc/usage.dox81
18 files changed, 2831 insertions, 0 deletions
diff --git a/src/libcommuni/doc/bot.dox b/src/libcommuni/doc/bot.dox
new file mode 100644
index 0000000..8f28ee7
--- /dev/null
+++ b/src/libcommuni/doc/bot.dox
@@ -0,0 +1,99 @@
+/*
+ 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.
+*/
+
+/*!
+ \page bot Bot example
+
+ The example presents a simple IRC bot that can handle half a dozen commands.
+ This article focuses on handling messages, and parsing and sending commands.
+ See the \ref minimal "Minimal example" for basics on setting up an IRC
+ connection.
+
+ \image html bot.png "The bot example in action"
+
+ The bot uses IrcCommandParser for parsing commands from messages received
+ from other clients. In order to take it in use, the desired commands must
+ be first introduced.
+
+ \snippet bot/ircbot.cpp commands
+
+ Some of the commands are context sensitive. Thus, the parser must know
+ the list of channels the bot is on. This is easily achieved with help of
+ IrcBufferModel.
+
+ \snippet bot/ircbot.cpp channels
+
+ Furthermore, the current target of the parser is later updated whenever
+ messages are received and parsed for commands.
+
+ In order for the bot to be able to process private and channel
+ messages, it connects to the \ref IrcConnection::messageReceived()
+ "IrcConnection::privateMessageReceived()" signal.
+
+ \snippet bot/ircbot.cpp messages
+
+ The current target of the parser, and command triggers are chosen depending
+ on whether the received message is a channel or private message. The next
+ snippet illustrates how the logic of the bot has been implemented using
+ IrcCommandParser.
+
+ \snippet bot/ircbot.cpp receive
+
+ Notice how the help command is implemented as a "custom" command. This is
+ because it does not correspond to any actual IRC command, but we want the
+ bot to reply with a help message instead of performing an actual command.
+
+ Finally, the last snippet shows the bot in action!
+
+ \code
+ [17:42:44] ! CommuniBot172375 (~communi@12.34.56.78) joined #communi
+ [17:42:59] <jpnurmi> !say Communi rocks!
+ [17:42:59] <CommuniBot172375> Communi rocks!
+ [17:44:05] <jpnurmi> CommuniBot172375: nick CommuniRocks
+ [17:44:05] ! CommuniBot172375 changed nick to CommuniRocks
+ [17:44:18] <jpnurmi> CommuniRocks: quit
+ [17:44:19] ! CommuniRocks (~communi@12.34.56.78) has quit (Client Quit)
+ \endcode
+
+ Files:
+ \li \ref examples/bot/main.cpp
+ \li \ref examples/bot/ircbot.h
+ \li \ref examples/bot/ircbot.cpp
+
+ \file examples/bot/main.cpp
+ \brief \ref bot
+ \include examples/bot/main.cpp
+
+ \file examples/bot/ircbot.h
+ \brief \ref bot
+ \include examples/bot/ircbot.h
+
+ \file examples/bot/ircbot.cpp
+ \brief \ref bot
+ \include examples/bot/ircbot.cpp
+ */
diff --git a/src/libcommuni/doc/bot.png b/src/libcommuni/doc/bot.png
new file mode 100644
index 0000000..eed773b
--- /dev/null
+++ b/src/libcommuni/doc/bot.png
Binary files differ
diff --git a/src/libcommuni/doc/client.dox b/src/libcommuni/doc/client.dox
new file mode 100644
index 0000000..f23e57f
--- /dev/null
+++ b/src/libcommuni/doc/client.dox
@@ -0,0 +1,67 @@
+/*
+ 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.
+*/
+
+/*!
+ \page client Client example
+
+ The example illustrates how to create a simple GUI client. See \ref minimal
+ and \ref bot for getting familiar with the core concepts of Communi.
+
+ \image html client.png "The client example in action"
+
+ If you're curious what the example does behind the scenes, try setting an
+ environment variable \c IRC_DEBUG=1 in order to enable verbose debug output
+ as explained in \ref debugging.
+
+ Files:
+ \li \ref examples/client/main.cpp
+ \li \ref examples/client/ircclient.h
+ \li \ref examples/client/ircclient.cpp
+ \li \ref examples/client/ircmessageformatter.h
+ \li \ref examples/client/ircmessageformatter.cpp
+
+ \file examples/client/main.cpp
+ \brief \ref client
+ \include examples/client/main.cpp
+
+ \file examples/client/ircclient.h
+ \brief \ref client
+ \include examples/client/ircclient.h
+
+ \file examples/client/ircclient.cpp
+ \brief \ref client
+ \include examples/client/ircclient.cpp
+
+ \file examples/client/ircmessageformatter.h
+ \brief \ref client
+ \include examples/client/ircmessageformatter.h
+
+ \file examples/client/ircmessageformatter.cpp
+ \brief \ref client
+ \include examples/client/ircmessageformatter.cpp
+ */
diff --git a/src/libcommuni/doc/client.png b/src/libcommuni/doc/client.png
new file mode 100644
index 0000000..43308ab
--- /dev/null
+++ b/src/libcommuni/doc/client.png
Binary files differ
diff --git a/src/libcommuni/doc/communi.png b/src/libcommuni/doc/communi.png
new file mode 100644
index 0000000..ad02367
--- /dev/null
+++ b/src/libcommuni/doc/communi.png
Binary files differ
diff --git a/src/libcommuni/doc/debugging.dox b/src/libcommuni/doc/debugging.dox
new file mode 100644
index 0000000..8edb5bf
--- /dev/null
+++ b/src/libcommuni/doc/debugging.dox
@@ -0,0 +1,45 @@
+/*
+ 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.
+*/
+
+/*!
+ \page debugging Debugging techniques
+
+ Communi recognizes the following environment variables at runtime:
+
+ <table>
+ <tr>
+ <th>Variable</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>IRC_DEBUG</td>
+ <td>Set to a non-zero value to make Communi print out connection status
+ changes and all activity including the received messages and sent commands.</td>
+ </tr>
+ </table>
+ */
diff --git a/src/libcommuni/doc/doc.pri b/src/libcommuni/doc/doc.pri
new file mode 100644
index 0000000..055b5c9
--- /dev/null
+++ b/src/libcommuni/doc/doc.pri
@@ -0,0 +1,20 @@
+######################################################################
+# Communi
+######################################################################
+
+OTHER_FILES += $$PWD/bot.dox
+OTHER_FILES += $$PWD/client.dox
+OTHER_FILES += $$PWD/communi.png
+OTHER_FILES += $$PWD/debugging.dox
+OTHER_FILES += $$PWD/enums.dox
+OTHER_FILES += $$PWD/mainpage.dox
+OTHER_FILES += $$PWD/minimal.dox
+OTHER_FILES += $$PWD/modules.dox
+OTHER_FILES += $$PWD/qml.dox
+OTHER_FILES += $$PWD/qmlbot.dox
+OTHER_FILES += $$PWD/usage.dox
+
+isEqual(_PRO_FILE_PWD_, $$OUT_PWD) {
+ docs.commands += QT_INSTALL_DOCS=$$[QT_INSTALL_DOCS] doxygen
+ QMAKE_EXTRA_TARGETS += docs
+}
diff --git a/src/libcommuni/doc/enums.dox b/src/libcommuni/doc/enums.dox
new file mode 100644
index 0000000..0cbe240
--- /dev/null
+++ b/src/libcommuni/doc/enums.dox
@@ -0,0 +1,1957 @@
+/*
+ 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.
+*/
+
+/*!
+ \enum Irc::Color
+ This enum describes the (m)IRC colors.
+
+ The default values are
+ <a href="http://www.w3.org/TR/SVG/types.html#ColorKeywords">SVG color keyword names</a>
+ provided by the World Wide Web Consortium
+
+ \sa IrcPalette
+ */
+
+/*!
+ \var Irc::White
+ \brief The default value is \c "white"
+ */
+
+/*!
+ \var Irc::Black
+ \brief The default value is \c "black"
+ */
+
+/*!
+ \var Irc::Blue
+ \brief The default value is \c "blue"
+ */
+
+/*!
+ \var Irc::Green
+ \brief The default value is \c "green"
+ */
+
+/*!
+ \var Irc::Red
+ \brief The default value is \c "red"
+ */
+
+/*!
+ \var Irc::Brown
+ \brief The default value is \c "brown"
+ */
+
+/*!
+ \var Irc::Purple
+ \brief The default value is \c "purple"
+ */
+
+/*!
+ \var Irc::Orange
+ \brief The default value is \c "orange"
+ */
+
+/*!
+ \var Irc::Yellow
+ \brief The default value is \c "yellow"
+ */
+
+/*!
+ \var Irc::LightGreen
+ \brief The default value is \c "lightgreen"
+ */
+
+/*!
+ \var Irc::Cyan
+ \brief The default value is \c "cyan"
+ */
+
+/*!
+ \var Irc::LightCyan
+ \brief The default value is \c "lightcyan"
+ */
+
+/*!
+ \var Irc::LightBlue
+ \brief The default value is \c "lightblue"
+ */
+
+/*!
+ \var Irc::Pink
+ \brief The default value is \c "pink"
+ */
+
+/*!
+ \var Irc::Gray
+ \brief The default value is \c "gray"
+ */
+
+/*!
+ \var Irc::LightGray
+ \brief The default value is \c "lightgray"
+ */
+
+/*!
+ \enum Irc::SortMethod
+ This enum describes the available model sort methods.
+
+ \sa IrcBufferModel, IrcUserModel
+ */
+
+/*!
+ \var Irc::SortByHand
+ \brief Sort by hand by calling sort()
+ */
+
+/*!
+ \var Irc::SortByName
+ \brief Sort by name (Irc::NameRole)
+ */
+
+/*!
+ \var Irc::SortByTitle
+ \brief Sort by title (Irc::TitleRole)
+ */
+
+/*!
+ \var Irc::SortByActivity
+ \brief Sort by activity
+ */
+
+/*!
+ \enum Irc::Code
+
+ The command responses and error replies as defined in
+ <a href="http://tools.ietf.org/html/rfc1459">RFC 1459</a>,
+ <a href="http://tools.ietf.org/html/rfc2812">RFC 2812</a>,
+ and various <a href="http://www.alien.net.au/irc/irc2numerics.html">IRCd specific extensions</a>.
+ */
+
+/*!
+ \var Irc::RPL_WELCOME
+ \brief 1
+ */
+/*!
+ \var Irc::RPL_YOURHOST
+ \brief 2
+ */
+/*!
+ \var Irc::RPL_CREATED
+ \brief 3
+ */
+/*!
+ \var Irc::RPL_MYINFO
+ \brief 4
+ */
+/*!
+ \var Irc::RPL_ISUPPORT
+ \brief 5
+ */
+/*!
+ \var Irc::RPL_SNOMASK
+ \brief 8
+ */
+/*!
+ \var Irc::RPL_STATMEMTOT
+ \brief 9
+ */
+/*!
+ \var Irc::RPL_BOUNCE
+ \brief 10
+ */
+/*!
+ \var Irc::RPL_STATMEM
+ \brief 10
+ */
+/*!
+ \var Irc::RPL_YOURCOOKIE
+ \brief 14
+ */
+/*!
+ \var Irc::RPL_YOURID
+ \brief 42
+ */
+/*!
+ \var Irc::RPL_SAVENICK
+ \brief 43
+ */
+/*!
+ \var Irc::RPL_ATTEMPTINGJUNC
+ \brief 50
+ */
+/*!
+ \var Irc::RPL_ATTEMPTINGREROUTE
+ \brief 51
+ */
+/*!
+ \var Irc::RPL_TRACELINK
+ \brief 200
+ */
+/*!
+ \var Irc::RPL_TRACECONNECTING
+ \brief 201
+ */
+/*!
+ \var Irc::RPL_TRACEHANDSHAKE
+ \brief 202
+ */
+/*!
+ \var Irc::RPL_TRACEUNKNOWN
+ \brief 203
+ */
+/*!
+ \var Irc::RPL_TRACEOPERATOR
+ \brief 204
+ */
+/*!
+ \var Irc::RPL_TRACEUSER
+ \brief 205
+ */
+/*!
+ \var Irc::RPL_TRACESERVER
+ \brief 206
+ */
+/*!
+ \var Irc::RPL_TRACESERVICE
+ \brief 207
+ */
+/*!
+ \var Irc::RPL_TRACENEWTYPE
+ \brief 208
+ */
+/*!
+ \var Irc::RPL_TRACECLASS
+ \brief 209
+ */
+/*!
+ \var Irc::RPL_TRACERECONNECT
+ \brief 210
+ */
+/*!
+ \var Irc::RPL_STATS
+ \brief 210
+ */
+/*!
+ \var Irc::RPL_STATSLINKINFO
+ \brief 211
+ */
+/*!
+ \var Irc::RPL_STATSCOMMANDS
+ \brief 212
+ */
+/*!
+ \var Irc::RPL_STATSCLINE
+ \brief 213
+ */
+/*!
+ \var Irc::RPL_STATSNLINE
+ \brief 214
+ */
+/*!
+ \var Irc::RPL_STATSILINE
+ \brief 215
+ */
+/*!
+ \var Irc::RPL_STATSKLINE
+ \brief 216
+ */
+/*!
+ \var Irc::RPL_STATSQLINE
+ \brief 217
+ */
+/*!
+ \var Irc::RPL_STATSYLINE
+ \brief 218
+ */
+/*!
+ \var Irc::RPL_ENDOFSTATS
+ \brief 219
+ */
+/*!
+ \var Irc::RPL_UMODEIS
+ \brief 221
+ */
+/*!
+ \var Irc::RPL_MODLIST
+ \brief 222
+ */
+/*!
+ \var Irc::RPL_SQLINE_NICK
+ \brief 222
+ */
+/*!
+ \var Irc::RPL_STATSZLINE
+ \brief 225
+ */
+/*!
+ \var Irc::RPL_STATSCOUNT
+ \brief 226
+ */
+/*!
+ \var Irc::RPL_SERVICEINFO
+ \brief 231
+ */
+/*!
+ \var Irc::RPL_ENDOFSERVICES
+ \brief 232
+ */
+/*!
+ \var Irc::RPL_SERVICE
+ \brief 233
+ */
+/*!
+ \var Irc::RPL_SERVLIST
+ \brief 234
+ */
+/*!
+ \var Irc::RPL_SERVLISTEND
+ \brief 235
+ */
+/*!
+ \var Irc::RPL_STATSVERBOSE
+ \brief 236
+ */
+/*!
+ \var Irc::RPL_STATSENGINE
+ \brief 237
+ */
+/*!
+ \var Irc::RPL_STATSIAUTH
+ \brief 239
+ */
+/*!
+ \var Irc::RPL_STATSVLINE
+ \brief 240
+ */
+/*!
+ \var Irc::RPL_STATSLLINE
+ \brief 241
+ */
+/*!
+ \var Irc::RPL_STATSUPTIME
+ \brief 242
+ */
+/*!
+ \var Irc::RPL_STATSOLINE
+ \brief 243
+ */
+/*!
+ \var Irc::RPL_STATSHLINE
+ \brief 244
+ */
+/*!
+ \var Irc::RPL_STATSSLINE
+ \brief 245
+ */
+/*!
+ \var Irc::RPL_STATSPING
+ \brief 246
+ */
+/*!
+ \var Irc::RPL_STATSBLINE
+ \brief 247
+ */
+/*!
+ \var Irc::RPL_STATSDEFINE
+ \brief 248
+ */
+/*!
+ \var Irc::RPL_STATSDEBUG
+ \brief 249
+ */
+/*!
+ \var Irc::RPL_STATSDLINE
+ \brief 250
+ */
+/*!
+ \var Irc::RPL_STATSCONN
+ \brief 250
+ */
+/*!
+ \var Irc::RPL_LUSERCLIENT
+ \brief 251
+ */
+/*!
+ \var Irc::RPL_LUSEROP
+ \brief 252
+ */
+/*!
+ \var Irc::RPL_LUSERUNKNOWN
+ \brief 253
+ */
+/*!
+ \var Irc::RPL_LUSERCHANNELS
+ \brief 254
+ */
+/*!
+ \var Irc::RPL_LUSERME
+ \brief 255
+ */
+/*!
+ \var Irc::RPL_ADMINME
+ \brief 256
+ */
+/*!
+ \var Irc::RPL_ADMINLOC1
+ \brief 257
+ */
+/*!
+ \var Irc::RPL_ADMINLOC2
+ \brief 258
+ */
+/*!
+ \var Irc::RPL_ADMINEMAIL
+ \brief 259
+ */
+/*!
+ \var Irc::RPL_TRACELOG
+ \brief 261
+ */
+/*!
+ \var Irc::RPL_TRACEPING
+ \brief 262
+ */
+/*!
+ \var Irc::RPL_TRACEEND
+ \brief 262
+ */
+/*!
+ \var Irc::RPL_TRYAGAIN
+ \brief 263
+ */
+/*!
+ \var Irc::RPL_LOCALUSERS
+ \brief 265
+ */
+/*!
+ \var Irc::RPL_GLOBALUSERS
+ \brief 266
+ */
+/*!
+ \var Irc::RPL_START_NETSTAT
+ \brief 267
+ */
+/*!
+ \var Irc::RPL_NETSTAT
+ \brief 268
+ */
+/*!
+ \var Irc::RPL_END_NETSTAT
+ \brief 269
+ */
+/*!
+ \var Irc::RPL_PRIVS
+ \brief 270
+ */
+/*!
+ \var Irc::RPL_SILELIST
+ \brief 271
+ */
+/*!
+ \var Irc::RPL_ENDOFSILELIST
+ \brief 272
+ */
+/*!
+ \var Irc::RPL_NOTIFY
+ \brief 273
+ */
+/*!
+ \var Irc::RPL_ENDNOTIFY
+ \brief 274
+ */
+/*!
+ \var Irc::RPL_STATSDELTA
+ \brief 274
+ */
+/*!
+ \var Irc::RPL_VCHANEXIST
+ \brief 276
+ */
+/*!
+ \var Irc::RPL_VCHANLIST
+ \brief 277
+ */
+/*!
+ \var Irc::RPL_VCHANHELP
+ \brief 278
+ */
+/*!
+ \var Irc::RPL_GLIST
+ \brief 280
+ */
+/*!
+ \var Irc::RPL_ENDOFGLIST
+ \brief 281
+ */
+/*!
+ \var Irc::RPL_ACCEPTLIST
+ \brief 281
+ */
+/*!
+ \var Irc::RPL_ENDOFACCEPT
+ \brief 282
+ */
+/*!
+ \var Irc::RPL_JUPELIST
+ \brief 282
+ */
+/*!
+ \var Irc::RPL_ENDOFJUPELIST
+ \brief 283
+ */
+/*!
+ \var Irc::RPL_FEATURE
+ \brief 284
+ */
+/*!
+ \var Irc::RPL_GLIST_HASH
+ \brief 285
+ */
+/*!
+ \var Irc::RPL_CHANINFO_HANDLE
+ \brief 285
+ */
+/*!
+ \var Irc::RPL_NEWHOSTIS
+ \brief 285
+ */
+/*!
+ \var Irc::RPL_CHANINFO_USERS
+ \brief 286
+ */
+/*!
+ \var Irc::RPL_CHKHEAD
+ \brief 286
+ */
+/*!
+ \var Irc::RPL_CHANINFO_CHOPS
+ \brief 287
+ */
+/*!
+ \var Irc::RPL_CHANUSER
+ \brief 287
+ */
+/*!
+ \var Irc::RPL_CHANINFO_VOICES
+ \brief 288
+ */
+/*!
+ \var Irc::RPL_PATCHHEAD
+ \brief 288
+ */
+/*!
+ \var Irc::RPL_CHANINFO_AWAY
+ \brief 289
+ */
+/*!
+ \var Irc::RPL_PATCHCON
+ \brief 289
+ */
+/*!
+ \var Irc::RPL_CHANINFO_OPERS
+ \brief 290
+ */
+/*!
+ \var Irc::RPL_HELPHDR
+ \brief 290
+ */
+/*!
+ \var Irc::RPL_DATASTR
+ \brief 290
+ */
+/*!
+ \var Irc::RPL_CHANINFO_BANNED
+ \brief 291
+ */
+/*!
+ \var Irc::RPL_HELPOP
+ \brief 291
+ */
+/*!
+ \var Irc::RPL_ENDOFCHECK
+ \brief 291
+ */
+/*!
+ \var Irc::RPL_CHANINFO_BANS
+ \brief 292
+ */
+/*!
+ \var Irc::RPL_HELPTLR
+ \brief 292
+ */
+/*!
+ \var Irc::RPL_CHANINFO_INVITE
+ \brief 293
+ */
+/*!
+ \var Irc::RPL_HELPHLP
+ \brief 293
+ */
+/*!
+ \var Irc::RPL_CHANINFO_INVITES
+ \brief 294
+ */
+/*!
+ \var Irc::RPL_HELPFWD
+ \brief 294
+ */
+/*!
+ \var Irc::RPL_CHANINFO_KICK
+ \brief 295
+ */
+/*!
+ \var Irc::RPL_HELPIGN
+ \brief 295
+ */
+/*!
+ \var Irc::RPL_CHANINFO_KICKS
+ \brief 296
+ */
+/*!
+ \var Irc::RPL_END_CHANINFO
+ \brief 299
+ */
+/*!
+ \var Irc::RPL_NONE
+ \brief 300
+ */
+/*!
+ \var Irc::RPL_AWAY
+ \brief 301
+ */
+/*!
+ \var Irc::RPL_USERHOST
+ \brief 302
+ */
+/*!
+ \var Irc::RPL_ISON
+ \brief 303
+ */
+/*!
+ \var Irc::RPL_TEXT
+ \brief 304
+ */
+/*!
+ \var Irc::RPL_UNAWAY
+ \brief 305
+ */
+/*!
+ \var Irc::RPL_NOWAWAY
+ \brief 306
+ */
+/*!
+ \var Irc::RPL_WHOISREGNICK
+ \brief 307
+ */
+/*!
+ \var Irc::RPL_SUSERHOST
+ \brief 307
+ */
+/*!
+ \var Irc::RPL_NOTIFYACTION
+ \brief 308
+ */
+/*!
+ \var Irc::RPL_WHOISADMIN
+ \brief 308
+ */
+/*!
+ \var Irc::RPL_NICKTRACE
+ \brief 309
+ */
+/*!
+ \var Irc::RPL_WHOISSADMIN
+ \brief 309
+ */
+/*!
+ \var Irc::RPL_WHOISHELPER
+ \brief 309
+ */
+/*!
+ \var Irc::RPL_WHOISSVCMSG
+ \brief 310
+ */
+/*!
+ \var Irc::RPL_WHOISHELPOP
+ \brief 310
+ */
+/*!
+ \var Irc::RPL_WHOISSERVICE
+ \brief 310
+ */
+/*!
+ \var Irc::RPL_WHOISUSER
+ \brief 311
+ */
+/*!
+ \var Irc::RPL_WHOISSERVER
+ \brief 312
+ */
+/*!
+ \var Irc::RPL_WHOISOPERATOR
+ \brief 313
+ */
+/*!
+ \var Irc::RPL_WHOWASUSER
+ \brief 314
+ */
+/*!
+ \var Irc::RPL_ENDOFWHO
+ \brief 315
+ */
+/*!
+ \var Irc::RPL_WHOISCHANOP
+ \brief 316
+ */
+/*!
+ \var Irc::RPL_WHOISIDLE
+ \brief 317
+ */
+/*!
+ \var Irc::RPL_ENDOFWHOIS
+ \brief 318
+ */
+/*!
+ \var Irc::RPL_WHOISCHANNELS
+ \brief 319
+ */
+/*!
+ \var Irc::RPL_WHOISVIRT
+ \brief 320
+ */
+/*!
+ \var Irc::RPL_WHOIS_HIDDEN
+ \brief 320
+ */
+/*!
+ \var Irc::RPL_WHOISSPECIAL
+ \brief 320
+ */
+/*!
+ \var Irc::RPL_LISTSTART
+ \brief 321
+ */
+/*!
+ \var Irc::RPL_LIST
+ \brief 322
+ */
+/*!
+ \var Irc::RPL_LISTEND
+ \brief 323
+ */
+/*!
+ \var Irc::RPL_CHANNELMODEIS
+ \brief 324
+ */
+/*!
+ \var Irc::RPL_UNIQOPIS
+ \brief 325
+ */
+/*!
+ \var Irc::RPL_CHANNELPASSIS
+ \brief 325
+ */
+/*!
+ \var Irc::RPL_NOCHANPASS
+ \brief 326
+ */
+/*!
+ \var Irc::RPL_CHPASSUNKNOWN
+ \brief 327
+ */
+/*!
+ \var Irc::RPL_CHANNEL_URL
+ \brief 328
+ */
+/*!
+ \var Irc::RPL_CREATIONTIME
+ \brief 329
+ */
+/*!
+ \var Irc::RPL_WHOWAS_TIME
+ \brief 330
+ */
+/*!
+ \var Irc::RPL_WHOISACCOUNT
+ \brief 330
+ */
+/*!
+ \var Irc::RPL_NOTOPIC
+ \brief 331
+ */
+/*!
+ \var Irc::RPL_TOPIC
+ \brief 332
+ */
+/*!
+ \var Irc::RPL_TOPICWHOTIME
+ \brief 333
+ */
+/*!
+ \var Irc::RPL_LISTUSAGE
+ \brief 334
+ */
+/*!
+ \var Irc::RPL_COMMANDSYNTAX
+ \brief 334
+ */
+/*!
+ \var Irc::RPL_LISTSYNTAX
+ \brief 334
+ */
+/*!
+ \var Irc::RPL_CHANPASSOK
+ \brief 338
+ */
+/*!
+ \var Irc::RPL_WHOISACTUALLY
+ \brief 338
+ */
+/*!
+ \var Irc::RPL_BADCHANPASS
+ \brief 339
+ */
+/*!
+ \var Irc::RPL_INVITING
+ \brief 341
+ */
+/*!
+ \var Irc::RPL_SUMMONING
+ \brief 342
+ */
+/*!
+ \var Irc::RPL_INVITED
+ \brief 345
+ */
+/*!
+ \var Irc::RPL_INVITELIST
+ \brief 346
+ */
+/*!
+ \var Irc::RPL_ENDOFINVITELIST
+ \brief 347
+ */
+/*!
+ \var Irc::RPL_EXCEPTLIST
+ \brief 348
+ */
+/*!
+ \var Irc::RPL_ENDOFEXCEPTLIST
+ \brief 349
+ */
+/*!
+ \var Irc::RPL_VERSION
+ \brief 351
+ */
+/*!
+ \var Irc::RPL_WHOREPLY
+ \brief 352
+ */
+/*!
+ \var Irc::RPL_NAMREPLY
+ \brief 353
+ */
+/*!
+ \var Irc::RPL_WHOSPCRPL
+ \brief 354
+ */
+/*!
+ \var Irc::RPL_NAMREPLY_
+ \brief 355
+ */
+/*!
+ \var Irc::RPL_KILLDONE
+ \brief 361
+ */
+/*!
+ \var Irc::RPL_CLOSING
+ \brief 362
+ */
+/*!
+ \var Irc::RPL_CLOSEEND
+ \brief 363
+ */
+/*!
+ \var Irc::RPL_LINKS
+ \brief 364
+ */
+/*!
+ \var Irc::RPL_ENDOFLINKS
+ \brief 365
+ */
+/*!
+ \var Irc::RPL_ENDOFNAMES
+ \brief 366
+ */
+/*!
+ \var Irc::RPL_BANLIST
+ \brief 367
+ */
+/*!
+ \var Irc::RPL_ENDOFBANLIST
+ \brief 368
+ */
+/*!
+ \var Irc::RPL_ENDOFWHOWAS
+ \brief 369
+ */
+/*!
+ \var Irc::RPL_INFO
+ \brief 371
+ */
+/*!
+ \var Irc::RPL_MOTD
+ \brief 372
+ */
+/*!
+ \var Irc::RPL_INFOSTART
+ \brief 373
+ */
+/*!
+ \var Irc::RPL_ENDOFINFO
+ \brief 374
+ */
+/*!
+ \var Irc::RPL_MOTDSTART
+ \brief 375
+ */
+/*!
+ \var Irc::RPL_ENDOFMOTD
+ \brief 376
+ */
+/*!
+ \var Irc::RPL_KICKEXPIRED
+ \brief 377
+ */
+/*!
+ \var Irc::RPL_SPAM
+ \brief 377
+ */
+/*!
+ \var Irc::RPL_BANEXPIRED
+ \brief 378
+ */
+/*!
+ \var Irc::RPL_WHOISHOST
+ \brief 378
+ */
+/*!
+ \var Irc::RPL_KICKLINKED
+ \brief 379
+ */
+/*!
+ \var Irc::RPL_WHOISMODES
+ \brief 379
+ */
+/*!
+ \var Irc::RPL_BANLINKED
+ \brief 380
+ */
+/*!
+ \var Irc::RPL_YOURHELPER
+ \brief 380
+ */
+/*!
+ \var Irc::RPL_YOUREOPER
+ \brief 381
+ */
+/*!
+ \var Irc::RPL_REHASHING
+ \brief 382
+ */
+/*!
+ \var Irc::RPL_YOURESERVICE
+ \brief 383
+ */
+/*!
+ \var Irc::RPL_MYPORTIS
+ \brief 384
+ */
+/*!
+ \var Irc::RPL_NOTOPERANYMORE
+ \brief 385
+ */
+/*!
+ \var Irc::RPL_QLIST
+ \brief 386
+ */
+/*!
+ \var Irc::RPL_IRCOPS
+ \brief 386
+ */
+/*!
+ \var Irc::RPL_ENDOFQLIST
+ \brief 387
+ */
+/*!
+ \var Irc::RPL_ENDOFIRCOPS
+ \brief 387
+ */
+/*!
+ \var Irc::RPL_ALIST
+ \brief 388
+ */
+/*!
+ \var Irc::RPL_ENDOFALIST
+ \brief 389
+ */
+/*!
+ \var Irc::RPL_TIME
+ \brief 391
+ */
+/*!
+ \var Irc::RPL_USERSSTART
+ \brief 392
+ */
+/*!
+ \var Irc::RPL_USERS
+ \brief 393
+ */
+/*!
+ \var Irc::RPL_ENDOFUSERS
+ \brief 394
+ */
+/*!
+ \var Irc::RPL_NOUSERS
+ \brief 395
+ */
+/*!
+ \var Irc::RPL_HOSTHIDDEN
+ \brief 396
+ */
+/*!
+ \var Irc::ERR_UNKNOWNERROR
+ \brief 400
+ */
+/*!
+ \var Irc::ERR_NOSUCHNICK
+ \brief 401
+ */
+/*!
+ \var Irc::ERR_NOSUCHSERVER
+ \brief 402
+ */
+/*!
+ \var Irc::ERR_NOSUCHCHANNEL
+ \brief 403
+ */
+/*!
+ \var Irc::ERR_CANNOTSENDTOCHAN
+ \brief 404
+ */
+/*!
+ \var Irc::ERR_TOOMANYCHANNELS
+ \brief 405
+ */
+/*!
+ \var Irc::ERR_WASNOSUCHNICK
+ \brief 406
+ */
+/*!
+ \var Irc::ERR_TOOMANYTARGETS
+ \brief 407
+ */
+/*!
+ \var Irc::ERR_NOSUCHSERVICE
+ \brief 408
+ */
+/*!
+ \var Irc::ERR_NOCOLORSONCHAN
+ \brief 408
+ */
+/*!
+ \var Irc::ERR_NOORIGIN
+ \brief 409
+ */
+/*!
+ \var Irc::ERR_NORECIPIENT
+ \brief 411
+ */
+/*!
+ \var Irc::ERR_NOTEXTTOSEND
+ \brief 412
+ */
+/*!
+ \var Irc::ERR_NOTOPLEVEL
+ \brief 413
+ */
+/*!
+ \var Irc::ERR_WILDTOPLEVEL
+ \brief 414
+ */
+/*!
+ \var Irc::ERR_BADMASK
+ \brief 415
+ */
+/*!
+ \var Irc::ERR_TOOMANYMATCHES
+ \brief 416
+ */
+/*!
+ \var Irc::ERR_QUERYTOOLONG
+ \brief 416
+ */
+/*!
+ \var Irc::ERR_LENGTHTRUNCATED
+ \brief 419
+ */
+/*!
+ \var Irc::ERR_UNKNOWNCOMMAND
+ \brief 421
+ */
+/*!
+ \var Irc::ERR_NOMOTD
+ \brief 422
+ */
+/*!
+ \var Irc::ERR_NOADMININFO
+ \brief 423
+ */
+/*!
+ \var Irc::ERR_FILEERROR
+ \brief 424
+ */
+/*!
+ \var Irc::ERR_NOOPERMOTD
+ \brief 425
+ */
+/*!
+ \var Irc::ERR_TOOMANYAWAY
+ \brief 429
+ */
+/*!
+ \var Irc::ERR_EVENTNICKCHANGE
+ \brief 430
+ */
+/*!
+ \var Irc::ERR_NONICKNAMEGIVEN
+ \brief 431
+ */
+/*!
+ \var Irc::ERR_ERRONEUSNICKNAME
+ \brief 432
+ */
+/*!
+ \var Irc::ERR_NICKNAMEINUSE
+ \brief 433
+ */
+/*!
+ \var Irc::ERR_SERVICENAMEINUSE
+ \brief 434
+ */
+/*!
+ \var Irc::ERR_NORULES
+ \brief 434
+ */
+/*!
+ \var Irc::ERR_SERVICECONFUSED
+ \brief 435
+ */
+/*!
+ \var Irc::ERR_BANONCHAN
+ \brief 435
+ */
+/*!
+ \var Irc::ERR_NICKCOLLISION
+ \brief 436
+ */
+/*!
+ \var Irc::ERR_UNAVAILRESOURCE
+ \brief 437
+ */
+/*!
+ \var Irc::ERR_BANNICKCHANGE
+ \brief 437
+ */
+/*!
+ \var Irc::ERR_NICKTOOFAST
+ \brief 438
+ */
+/*!
+ \var Irc::ERR_DEAD
+ \brief 438
+ */
+/*!
+ \var Irc::ERR_TARGETTOOFAST
+ \brief 439
+ */
+/*!
+ \var Irc::ERR_SERVICESDOWN
+ \brief 440
+ */
+/*!
+ \var Irc::ERR_USERNOTINCHANNEL
+ \brief 441
+ */
+/*!
+ \var Irc::ERR_NOTONCHANNEL
+ \brief 442
+ */
+/*!
+ \var Irc::ERR_USERONCHANNEL
+ \brief 443
+ */
+/*!
+ \var Irc::ERR_NOLOGIN
+ \brief 444
+ */
+/*!
+ \var Irc::ERR_SUMMONDISABLED
+ \brief 445
+ */
+/*!
+ \var Irc::ERR_USERSDISABLED
+ \brief 446
+ */
+/*!
+ \var Irc::ERR_NONICKCHANGE
+ \brief 447
+ */
+/*!
+ \var Irc::ERR_NOTIMPLEMENTED
+ \brief 449
+ */
+/*!
+ \var Irc::ERR_NOTREGISTERED
+ \brief 451
+ */
+/*!
+ \var Irc::ERR_IDCOLLISION
+ \brief 452
+ */
+/*!
+ \var Irc::ERR_NICKLOST
+ \brief 453
+ */
+/*!
+ \var Irc::ERR_HOSTILENAME
+ \brief 455
+ */
+/*!
+ \var Irc::ERR_ACCEPTFULL
+ \brief 456
+ */
+/*!
+ \var Irc::ERR_ACCEPTEXIST
+ \brief 457
+ */
+/*!
+ \var Irc::ERR_ACCEPTNOT
+ \brief 458
+ */
+/*!
+ \var Irc::ERR_NOHIDING
+ \brief 459
+ */
+/*!
+ \var Irc::ERR_NOTFORHALFOPS
+ \brief 460
+ */
+/*!
+ \var Irc::ERR_NEEDMOREPARAMS
+ \brief 461
+ */
+/*!
+ \var Irc::ERR_ALREADYREGISTERED
+ \brief 462
+ */
+/*!
+ \var Irc::ERR_NOPERMFORHOST
+ \brief 463
+ */
+/*!
+ \var Irc::ERR_PASSWDMISMATCH
+ \brief 464
+ */
+/*!
+ \var Irc::ERR_YOUREBANNEDCREEP
+ \brief 465
+ */
+/*!
+ \var Irc::ERR_YOUWILLBEBANNED
+ \brief 466
+ */
+/*!
+ \var Irc::ERR_KEYSET
+ \brief 467
+ */
+/*!
+ \var Irc::ERR_INVALIDUSERNAME
+ \brief 468
+ */
+/*!
+ \var Irc::ERR_ONLYSERVERSCANCHANGE
+ \brief 468
+ */
+/*!
+ \var Irc::ERR_LINKSET
+ \brief 469
+ */
+/*!
+ \var Irc::ERR_LINKCHANNEL
+ \brief 470
+ */
+/*!
+ \var Irc::ERR_KICKEDFROMCHAN
+ \brief 470
+ */
+/*!
+ \var Irc::ERR_CHANNELISFULL
+ \brief 471
+ */
+/*!
+ \var Irc::ERR_UNKNOWNMODE
+ \brief 472
+ */
+/*!
+ \var Irc::ERR_INVITEONLYCHAN
+ \brief 473
+ */
+/*!
+ \var Irc::ERR_BANNEDFROMCHAN
+ \brief 474
+ */
+/*!
+ \var Irc::ERR_BADCHANNELKEY
+ \brief 475
+ */
+/*!
+ \var Irc::ERR_BADCHANMASK
+ \brief 476
+ */
+/*!
+ \var Irc::ERR_NOCHANMODES
+ \brief 477
+ */
+/*!
+ \var Irc::ERR_NEEDREGGEDNICK
+ \brief 477
+ */
+/*!
+ \var Irc::ERR_BANLISTFULL
+ \brief 478
+ */
+/*!
+ \var Irc::ERR_BADCHANNAME
+ \brief 479
+ */
+/*!
+ \var Irc::ERR_LINKFAIL
+ \brief 479
+ */
+/*!
+ \var Irc::ERR_NOULINE
+ \brief 480
+ */
+/*!
+ \var Irc::ERR_CANNOTKNOCK
+ \brief 480
+ */
+/*!
+ \var Irc::ERR_NOPRIVILEGES
+ \brief 481
+ */
+/*!
+ \var Irc::ERR_CHANOPRIVSNEEDED
+ \brief 482
+ */
+/*!
+ \var Irc::ERR_CANTKILLSERVER
+ \brief 483
+ */
+/*!
+ \var Irc::ERR_RESTRICTED
+ \brief 484
+ */
+/*!
+ \var Irc::ERR_ISCHANSERVICE
+ \brief 484
+ */
+/*!
+ \var Irc::ERR_DESYNC
+ \brief 484
+ */
+/*!
+ \var Irc::ERR_ATTACKDENY
+ \brief 484
+ */
+/*!
+ \var Irc::ERR_UNIQOPRIVSNEEDED
+ \brief 485
+ */
+/*!
+ \var Irc::ERR_KILLDENY
+ \brief 485
+ */
+/*!
+ \var Irc::ERR_CANTKICKADMIN
+ \brief 485
+ */
+/*!
+ \var Irc::ERR_ISREALSERVICE
+ \brief 485
+ */
+/*!
+ \var Irc::ERR_NONONREG
+ \brief 486
+ */
+/*!
+ \var Irc::ERR_HTMDISABLED
+ \brief 486
+ */
+/*!
+ \var Irc::ERR_ACCOUNTONLY
+ \brief 486
+ */
+/*!
+ \var Irc::ERR_CHANTOORECENT
+ \brief 487
+ */
+/*!
+ \var Irc::ERR_MSGSERVICES
+ \brief 487
+ */
+/*!
+ \var Irc::ERR_TSLESSCHAN
+ \brief 488
+ */
+/*!
+ \var Irc::ERR_VOICENEEDED
+ \brief 489
+ */
+/*!
+ \var Irc::ERR_SECUREONLYCHAN
+ \brief 489
+ */
+/*!
+ \var Irc::ERR_NOOPERHOST
+ \brief 491
+ */
+/*!
+ \var Irc::ERR_NOSERVICEHOST
+ \brief 492
+ */
+/*!
+ \var Irc::ERR_NOFEATURE
+ \brief 493
+ */
+/*!
+ \var Irc::ERR_BADFEATURE
+ \brief 494
+ */
+/*!
+ \var Irc::ERR_BADLOGTYPE
+ \brief 495
+ */
+/*!
+ \var Irc::ERR_BADLOGSYS
+ \brief 496
+ */
+/*!
+ \var Irc::ERR_BADLOGVALUE
+ \brief 497
+ */
+/*!
+ \var Irc::ERR_ISOPERLCHAN
+ \brief 498
+ */
+/*!
+ \var Irc::ERR_CHANOWNPRIVNEEDED
+ \brief 499
+ */
+/*!
+ \var Irc::ERR_UMODEUNKNOWNFLAG
+ \brief 501
+ */
+/*!
+ \var Irc::ERR_USERSDONTMATCH
+ \brief 502
+ */
+/*!
+ \var Irc::ERR_GHOSTEDCLIENT
+ \brief 503
+ */
+/*!
+ \var Irc::ERR_VWORLDWARN
+ \brief 503
+ */
+/*!
+ \var Irc::ERR_USERNOTONSERV
+ \brief 504
+ */
+/*!
+ \var Irc::ERR_SILELISTFULL
+ \brief 511
+ */
+/*!
+ \var Irc::ERR_TOOMANYWATCH
+ \brief 512
+ */
+/*!
+ \var Irc::ERR_BADPING
+ \brief 513
+ */
+/*!
+ \var Irc::ERR_INVALID_ERROR
+ \brief 514
+ */
+/*!
+ \var Irc::ERR_TOOMANYDCC
+ \brief 514
+ */
+/*!
+ \var Irc::ERR_BADEXPIRE
+ \brief 515
+ */
+/*!
+ \var Irc::ERR_DONTCHEAT
+ \brief 516
+ */
+/*!
+ \var Irc::ERR_DISABLED
+ \brief 517
+ */
+/*!
+ \var Irc::ERR_NOINVITE
+ \brief 518
+ */
+/*!
+ \var Irc::ERR_LONGMASK
+ \brief 518
+ */
+/*!
+ \var Irc::ERR_ADMONLY
+ \brief 519
+ */
+/*!
+ \var Irc::ERR_TOOMANYUSERS
+ \brief 519
+ */
+/*!
+ \var Irc::ERR_OPERONLY
+ \brief 520
+ */
+/*!
+ \var Irc::ERR_MASKTOOWIDE
+ \brief 520
+ */
+/*!
+ \var Irc::ERR_WHOTRUNC
+ \brief 520
+ */
+/*!
+ \var Irc::ERR_LISTSYNTAX
+ \brief 521
+ */
+/*!
+ \var Irc::ERR_WHOSYNTAX
+ \brief 522
+ */
+/*!
+ \var Irc::ERR_WHOLIMEXCEED
+ \brief 523
+ */
+/*!
+ \var Irc::ERR_QUARANTINED
+ \brief 524
+ */
+/*!
+ \var Irc::ERR_OPERSPVERIFY
+ \brief 524
+ */
+/*!
+ \var Irc::ERR_REMOTEPFX
+ \brief 525
+ */
+/*!
+ \var Irc::ERR_PFXUNROUTABLE
+ \brief 526
+ */
+/*!
+ \var Irc::ERR_BADHOSTMASK
+ \brief 550
+ */
+/*!
+ \var Irc::ERR_HOSTUNAVAIL
+ \brief 551
+ */
+/*!
+ \var Irc::ERR_USINGSLINE
+ \brief 552
+ */
+/*!
+ \var Irc::ERR_STATSSLINE
+ \brief 553
+ */
+/*!
+ \var Irc::RPL_LOGON
+ \brief 600
+ */
+/*!
+ \var Irc::RPL_LOGOFF
+ \brief 601
+ */
+/*!
+ \var Irc::RPL_WATCHOFF
+ \brief 602
+ */
+/*!
+ \var Irc::RPL_WATCHSTAT
+ \brief 603
+ */
+/*!
+ \var Irc::RPL_NOWON
+ \brief 604
+ */
+/*!
+ \var Irc::RPL_NOWOFF
+ \brief 605
+ */
+/*!
+ \var Irc::RPL_WATCHLIST
+ \brief 606
+ */
+/*!
+ \var Irc::RPL_ENDOFWATCHLIST
+ \brief 607
+ */
+/*!
+ \var Irc::RPL_WATCHCLEAR
+ \brief 608
+ */
+/*!
+ \var Irc::RPL_ISOPER
+ \brief 610
+ */
+/*!
+ \var Irc::RPL_ISLOCOP
+ \brief 611
+ */
+/*!
+ \var Irc::RPL_ISNOTOPER
+ \brief 612
+ */
+/*!
+ \var Irc::RPL_ENDOFISOPER
+ \brief 613
+ */
+/*!
+ \var Irc::RPL_DCCSTATUS
+ \brief 617
+ */
+/*!
+ \var Irc::RPL_DCCLIST
+ \brief 618
+ */
+/*!
+ \var Irc::RPL_ENDOFDCCLIST
+ \brief 619
+ */
+/*!
+ \var Irc::RPL_WHOWASHOST
+ \brief 619
+ */
+/*!
+ \var Irc::RPL_DCCINFO
+ \brief 620
+ */
+/*!
+ \var Irc::RPL_ENDOFO
+ \brief 626
+ */
+/*!
+ \var Irc::RPL_SETTINGS
+ \brief 630
+ */
+/*!
+ \var Irc::RPL_ENDOFSETTINGS
+ \brief 631
+ */
+/*!
+ \var Irc::RPL_DUMPING
+ \brief 640
+ */
+/*!
+ \var Irc::RPL_DUMPRPL
+ \brief 641
+ */
+/*!
+ \var Irc::RPL_EODUMP
+ \brief 642
+ */
+/*!
+ \var Irc::RPL_TRACEROUTE_HOP
+ \brief 660
+ */
+/*!
+ \var Irc::RPL_TRACEROUTE_START
+ \brief 661
+ */
+/*!
+ \var Irc::RPL_MODECHANGEWARN
+ \brief 662
+ */
+/*!
+ \var Irc::RPL_CHANREDIR
+ \brief 663
+ */
+/*!
+ \var Irc::RPL_SERVMODEIS
+ \brief 664
+ */
+/*!
+ \var Irc::RPL_OTHERUMODEIS
+ \brief 665
+ */
+/*!
+ \var Irc::RPL_ENDOF_GENERIC
+ \brief 666
+ */
+/*!
+ \var Irc::RPL_WHOWASDETAILS
+ \brief 670
+ */
+/*!
+ \var Irc::RPL_WHOISSECURE
+ \brief 671
+ */
+/*!
+ \var Irc::RPL_UNKNOWNMODES
+ \brief 672
+ */
+/*!
+ \var Irc::RPL_CANNOTSETMODES
+ \brief 673
+ */
+/*!
+ \var Irc::RPL_LUSERSTAFF
+ \brief 678
+ */
+/*!
+ \var Irc::RPL_TIMEONSERVERIS
+ \brief 679
+ */
+/*!
+ \var Irc::RPL_NETWORKS
+ \brief 682
+ */
+/*!
+ \var Irc::RPL_YOURLANGUAGEIS
+ \brief 687
+ */
+/*!
+ \var Irc::RPL_LANGUAGE
+ \brief 688
+ */
+/*!
+ \var Irc::RPL_WHOISSTAFF
+ \brief 689
+ */
+/*!
+ \var Irc::RPL_WHOISLANGUAGE
+ \brief 690
+ */
+/*!
+ \var Irc::RPL_HELPSTART
+ \brief 704
+ */
+/*!
+ \var Irc::RPL_HELPTXT
+ \brief 705
+ */
+/*!
+ \var Irc::RPL_ENDOFHELP
+ \brief 706
+ */
+/*!
+ \var Irc::RPL_ETRACEFULL
+ \brief 708
+ */
+/*!
+ \var Irc::RPL_ETRACE
+ \brief 709
+ */
+/*!
+ \var Irc::RPL_KNOCK
+ \brief 710
+ */
+/*!
+ \var Irc::RPL_KNOCKDLVR
+ \brief 711
+ */
+/*!
+ \var Irc::ERR_TOOMANYKNOCK
+ \brief 712
+ */
+/*!
+ \var Irc::ERR_CHANOPEN
+ \brief 713
+ */
+/*!
+ \var Irc::ERR_KNOCKONCHAN
+ \brief 714
+ */
+/*!
+ \var Irc::ERR_KNOCKDISABLED
+ \brief 715
+ */
+/*!
+ \var Irc::RPL_TARGUMODEG
+ \brief 716
+ */
+/*!
+ \var Irc::RPL_TARGNOTIFY
+ \brief 717
+ */
+/*!
+ \var Irc::RPL_UMODEGMSG
+ \brief 718
+ */
+/*!
+ \var Irc::RPL_ENDOFOMOTD
+ \brief 722
+ */
+/*!
+ \var Irc::ERR_NOPRIVS
+ \brief 723
+ */
+/*!
+ \var Irc::RPL_TESTMARK
+ \brief 724
+ */
+/*!
+ \var Irc::RPL_TESTLINE
+ \brief 725
+ */
+/*!
+ \var Irc::RPL_NOTESTLINE
+ \brief 726
+ */
+/*!
+ \var Irc::RPL_XINFO
+ \brief 771
+ */
+/*!
+ \var Irc::RPL_XINFOSTART
+ \brief 773
+ */
+/*!
+ \var Irc::RPL_XINFOEND
+ \brief 774
+ */
+/*!
+ \var Irc::ERR_CANNOTDOCOMMAND
+ \brief 972
+ */
+/*!
+ \var Irc::ERR_CANNOTCHANGEUMODE
+ \brief 973
+ */
+/*!
+ \var Irc::ERR_CANNOTCHANGECHANMODE
+ \brief 974
+ */
+/*!
+ \var Irc::ERR_CANNOTCHANGESERVERMODE
+ \brief 975
+ */
+/*!
+ \var Irc::ERR_CANNOTSENDTONICK
+ \brief 976
+ */
+/*!
+ \var Irc::ERR_UNKNOWNSERVERMODE
+ \brief 977
+ */
+/*!
+ \var Irc::ERR_SERVERMODELOCK
+ \brief 979
+ */
+/*!
+ \var Irc::ERR_BADCHARENCODING
+ \brief 980
+ */
+/*!
+ \var Irc::ERR_TOOMANYLANGUAGES
+ \brief 981
+ */
+/*!
+ \var Irc::ERR_NOLANGUAGE
+ \brief 982
+ */
+/*!
+ \var Irc::ERR_TEXTTOOSHORT
+ \brief 983
+ */
+/*!
+ \var Irc::ERR_NUMERIC_ERR
+ \brief 999
+ */
+
+/*!
+ \enum Irc::DataRole
+ This enum describes the available model data roles.
+
+ \sa IrcBufferModel, IrcUserModel
+ */
+
+/*!
+ \var Irc::UserRole
+ \brief User object (\ref IrcUser*)
+ */
+
+/*!
+ \var Irc::BufferRole
+ \brief Buffer object (\ref IrcBuffer*)
+ */
+
+/*!
+ \var Irc::ChannelRole
+ \brief Channel object (\ref IrcChannel*)
+ */
+
+/*!
+ \var Irc::NameRole
+ \brief Buffer/user name (QString)
+ */
+
+/*!
+ \var Irc::PrefixRole
+ \brief Channel/user prefix (QString)
+ */
+
+/*!
+ \var Irc::ModeRole
+ \brief User mode (QString)
+ */
+
+/*!
+ \var Irc::TitleRole
+ \brief Channel/user prefix and name (QString)
+ */
diff --git a/src/libcommuni/doc/header.html b/src/libcommuni/doc/header.html
new file mode 100644
index 0000000..435f194
--- /dev/null
+++ b/src/libcommuni/doc/header.html
@@ -0,0 +1,55 @@
+<!-- HTML header for doxygen 1.8.5-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen $doxygenversion"/>
+<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
+<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
+<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="$relpath^jquery.js"></script>
+<script type="text/javascript" src="$relpath^dynsections.js"></script>
+$treeview
+$search
+$mathjax
+<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
+$extrastylesheet
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+
+<!--BEGIN TITLEAREA-->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <!--BEGIN PROJECT_LOGO-->
+ <td id="projectlogo"><a href="http://communi.github.com"><img alt="Logo" src="$relpath^$projectlogo"/></a></td>
+ <!--END PROJECT_LOGO-->
+ <!--BEGIN PROJECT_NAME-->
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">$projectname
+ <!--BEGIN PROJECT_NUMBER-->&#160;<span id="projectnumber">$projectnumber</span><!--END PROJECT_NUMBER-->
+ </div>
+ <!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF-->
+ </td>
+ <!--END PROJECT_NAME-->
+ <!--BEGIN !PROJECT_NAME-->
+ <!--BEGIN PROJECT_BRIEF-->
+ <td style="padding-left: 0.5em;">
+ <div id="projectbrief">$projectbrief</div>
+ </td>
+ <!--END PROJECT_BRIEF-->
+ <!--END !PROJECT_NAME-->
+ <!--BEGIN DISABLE_INDEX-->
+ <!--BEGIN SEARCHENGINE-->
+ <td>$searchbox</td>
+ <!--END SEARCHENGINE-->
+ <!--END DISABLE_INDEX-->
+ </tr>
+ </tbody>
+</table>
+</div>
+<!--END TITLEAREA-->
+<!-- end header part -->
diff --git a/src/libcommuni/doc/mainpage.dox b/src/libcommuni/doc/mainpage.dox
new file mode 100644
index 0000000..622fb23
--- /dev/null
+++ b/src/libcommuni/doc/mainpage.dox
@@ -0,0 +1,54 @@
+/*
+ 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.
+*/
+
+/*!
+ \mainpage Communi - a cross-platform IRC framework written with %Qt
+
+ \section introduction Introduction
+
+ Communi is a cross-platform <a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat">IRC</a>
+ framework written with <a href="http://qt-project.org/">Qt</a>. Communi provides a set of tools
+ for enabling IRC connectivity in Qt-based C++ and QML applications.
+
+ IRC (Internet Relay Chat protocol) is a simple text-based communication protocol. IRC was created
+ back in 1988 and is still popular particularly amongst open source projects. The Communi project's
+ own IRC channel \c \#communi is located on <a href="http://freenode.net/">Freenode</a>.
+
+ \section getting-started Getting started
+
+ Communi is divided in three <a href="modules.html" style="font-weight: bold;">modules</a>.
+ The following classes from the \ref core module are the most essential classes to get started.
+
+ \li IrcConnection manages a connection to an IRC server.
+ \li IrcNetwork provides information about the connected IRC network.
+ \li IrcMessage represents a message received from the IRC server.
+ \li IrcCommand represents a command sent to the IRC server.
+
+ Refer to the \ref usage document, and the list of
+ <a href="pages.html" style="font-weight: bold;">examples</a> for further details and help.
+ */
diff --git a/src/libcommuni/doc/minimal.dox b/src/libcommuni/doc/minimal.dox
new file mode 100644
index 0000000..810f404
--- /dev/null
+++ b/src/libcommuni/doc/minimal.dox
@@ -0,0 +1,46 @@
+/*
+ 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.
+*/
+
+/*!
+ \page minimal Minimal example
+
+ The example illustrates the minimum amount of code required for:
+ \li Setting up and opening a connection,
+ \li joining a channel,
+ \li sending a channel message,
+ \li and quiting.
+
+ \snippet minimal/main.cpp minimal
+
+ Files:
+ \li \ref examples/minimal/main.cpp
+
+ \file examples/minimal/main.cpp
+ \brief \ref minimal
+ \include examples/minimal/main.cpp
+ */
diff --git a/src/libcommuni/doc/modules.dox b/src/libcommuni/doc/modules.dox
new file mode 100644
index 0000000..ee72180
--- /dev/null
+++ b/src/libcommuni/doc/modules.dox
@@ -0,0 +1,85 @@
+/*
+ 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.
+*/
+
+/*!
+ \file irccore.h
+ \brief \#include &lt;\ref core "IrcCore"&gt;
+ */
+
+/*!
+ \file ircmodel.h
+ \brief \#include &lt;\ref models "IrcModel"&gt;
+ */
+
+/*!
+ \file ircutil.h
+ \brief \#include &lt;\ref util "IrcUtil"&gt;
+ */
+
+/*!
+ \defgroup core IrcCore
+ \brief Core classes to manage IRC connections, receive messages and send commands.
+
+ In order to enable the module, add the following lines to your qmake project (.pro) file:
+ \code
+ CONFIG += communi
+ COMMUNI += core
+ \endcode
+
+ This sets up the necessary include paths and linker rules in order to use the module.
+ */
+
+/*!
+ \defgroup models IrcModel
+ \brief Model classes to keep track of queries, channels and users.
+
+ In order to enable the module, add the following lines to your qmake project (.pro) file:
+ \code
+ CONFIG += communi
+ COMMUNI += core model
+ \endcode
+
+ This sets up the necessary include paths and linker rules in order to use the module.
+
+ \note IrcModel depends on \ref core "IrcCore"
+ */
+
+/*!
+ \defgroup util IrcUtil
+ \brief Miscellaneous utility classes for common IRC client related needs.
+
+ In order to enable the module, add the following lines to your qmake project (.pro) file:
+ \code
+ CONFIG += communi
+ COMMUNI += core model util
+ \endcode
+
+ This sets up the necessary include paths and linker rules in order to use the module.
+
+ \note IrcUtil depends on \ref core "IrcCore" and \ref models "IrcModel"
+ */
diff --git a/src/libcommuni/doc/qml.dox b/src/libcommuni/doc/qml.dox
new file mode 100644
index 0000000..da46191
--- /dev/null
+++ b/src/libcommuni/doc/qml.dox
@@ -0,0 +1,160 @@
+/*
+ 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.
+*/
+
+/*!
+ \page qml QML compatibility
+
+ Communi strives for full QML support. The property-based APIs have been
+ designed QML compatibility in mind. Almost all the types can be registered
+ to QML and used as is.
+
+ A ready-made QML plugin is also provided for convenience. The plugin does
+ QML type registration and is made available via the following import:
+
+ \code
+ import Communi 3.0
+ \endcode
+
+ \section qml-type-registration Type registration
+
+ The following snippet illustrates how the Communi QML plugin does the type
+ registration. The same can be done manually in application code to avoid
+ the need of deploying the Communi QML plugin.
+
+ \snippet src/imports/qml2/plugin.cpp qml-register-types
+
+ \section qml-connecting-to-irc Connecting to IRC
+
+ In order to connect to IRC in QML, declare an IrcConnection instance,
+ set the desired properties, and call \ref IrcConnection::open()
+ "connection.open()".
+
+ \code
+ IrcConnection {
+ id: freenode
+ host: "irc.freenode.net"
+ userName: "communi"
+ nickName: "Communi" + Math.round(Math.random() * 9999)
+ realName: "Communi QML example"
+ }
+ \endcode
+
+ \section qml-sending-commands Sending commands
+
+ Even though the IrcCommand::createXxx() methods are static, QML does not
+ provide a way to call them without an IrcCommand instance. Thus, in order
+ to create and send commands, declare an instance of IrcCommand, call any
+ createXxx() method to create a command, and finally send it via
+ IrcCommand::sendCommand().
+
+ \code
+ IrcCommand { id: command }
+
+ IrcConnection {
+ onConnected: {
+ var cmd = command.createJoin(channel)
+ sendCommand(cmd)
+ }
+ }
+ \endcode
+
+ \section qml-channels-and-queries Channels and queries
+
+ In order to keep track of channels and queries, declare an instance of
+ IrcBufferModel. Notice that it can be used directly as a data model for
+ QML types such as ListView and Repeater.
+
+ \code
+ IrcBufferModel {
+ id: bufferModel
+ connection: freenode
+ }
+ \endcode
+
+ IrcBufferModel creates channel and query buffers automatically when
+ the client joins channels and receives private messages, respectively.
+
+ A typical IRC client has a special server buffer for messages that
+ are not targeted to any specific channel or query. This can be easily
+ achieved by declaring an instance of IrcBuffer and forwarding the
+ messages ignored by IrcBufferModel to it.
+
+ \code
+ IrcBuffer {
+ id: serverBuffer
+ name: freenode.displayName
+ Component.onCompleted: bufferModel.add(serverBuffer)
+ }
+
+ IrcBufferModel {
+ id: bufferModel
+ connection: freenode
+ onMessageIgnored: serverBuffer.receiveMessage(message)
+ }
+ \endcode
+
+ \section qml-channel-users Channel users
+
+ In order to keep track of channel users, create an instance of IrcUserModel.
+ It can be also used directly as a data model for QML types such as ListView
+ and Repeater.
+
+ \code
+ IrcUserModel {
+ id: userModel
+ channel: currentBuffer.toChannel()
+ }
+ \endcode
+
+ \section qml-parsing-user-commands Parsing user commands
+
+ IrcCommandParser helps with parsing commands from user input. In order to
+ take it in use, declare an instance of IrcCommandParser and introduce the
+ desired commands.
+
+ Notice that commands are often context sensitive. While some command may
+ accept an optional parameter that is filled up with the current target
+ (channel/query) name when absent, another command may always inject the
+ current target name as a certain parameter. Therefore IrcCommandParser
+ must be kept up-to-date with the current target and the list of channels.
+
+ \code
+ IrcCommandParser {
+ id: parser
+ triggers: ["/"]
+ target: currentBuffer.title
+ channels: bufferModel.channels
+ Component.onCompleted: {
+ parser.addCommand(IrcCommand.Join, "JOIN <#channel> (<key>)");
+ parser.addCommand(IrcCommand.Part, "PART (<#channel>) (<message...>)");
+ parser.addCommand(IrcCommand.Kick, "KICK (<#channel>) <nick> (<reason...>)");
+ parser.addCommand(IrcCommand.CtcpAction, "ME [target] <message...>");
+ }
+ }
+ \endcode
+ */
diff --git a/src/libcommuni/doc/qmlbot.dox b/src/libcommuni/doc/qmlbot.dox
new file mode 100644
index 0000000..13d76ec
--- /dev/null
+++ b/src/libcommuni/doc/qmlbot.dox
@@ -0,0 +1,71 @@
+/*
+ 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.
+*/
+
+/*!
+ \page qmlbot QML bot example
+
+ The QML bot example is a simplified version of the \ref bot "bot example",
+ written in QML. See the \ref qml article for more QML specific details.
+
+ \image html qmlbot.png "The QML bot example in action"
+
+ The following snippet illustrates how IrcConnection is prepared and opened,
+ and how a command is queued to automatically join a channel when connected.
+
+ \snippet qmlbot/qml/main.qml connection
+
+ The example utilizes IrcCommandParser for parsing commands from messages
+ received from other clients. In order to take the parser in use, the supported
+ commands must be teached, as illustrated below. Some of the commands are context
+ sensitive, and the parser must be therefore kept aware of the list of channels
+ the bot is on. This is easily achieved by binding the IrcCommandParser::channels
+ property to the value of the IrcBufferModel::channels property. Furthermore, like
+ a typical IRC bot, the commands are triggered using a slightly different syntax in
+ queries and channels.
+
+ \snippet qmlbot/qml/main.qml parser
+
+ The bot listens to incoming messages via \ref IrcConnection::messageReceived().
+ The current target is chosen based on whether the incoming message is a channel
+ or a private message. Each message content is parsed for commands that were
+ taught earlier.
+
+ \snippet qmlbot/qml/main.qml receive
+
+ Files:
+ \li \ref examples/qmlbot/main.cpp
+ \li \ref examples/qmlbot/qml/main.qml
+
+ \file examples/qmlbot/main.cpp
+ \brief \ref qmlbot
+ \include examples/qmlbot/main.cpp
+
+ \file examples/qmlbot/qml/main.qml
+ \brief \ref qmlbot
+ \include examples/qmlbot/qml/main.qml
+ */
diff --git a/src/libcommuni/doc/qmlbot.png b/src/libcommuni/doc/qmlbot.png
new file mode 100644
index 0000000..6d6c87f
--- /dev/null
+++ b/src/libcommuni/doc/qmlbot.png
Binary files differ
diff --git a/src/libcommuni/doc/quick.dox b/src/libcommuni/doc/quick.dox
new file mode 100644
index 0000000..347854e
--- /dev/null
+++ b/src/libcommuni/doc/quick.dox
@@ -0,0 +1,91 @@
+/*
+ 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.
+*/
+
+/*!
+ \page quick Qt Quick example
+
+ The example illustrates how to create a simple GUI client using %Qt Quick.
+
+ \image html quick.png "The Qt Quick example in action"
+
+ If you're curious what the example does behind the scenes, try setting an
+ environment variable \c IRC_DEBUG=1 in order to enable verbose debug output
+ as explained in \ref debugging.
+
+ Files:
+ \li \ref examples/quick/main.cpp
+ \li \ref examples/quick/qml/main.qml
+ \li \ref examples/quick/qml/BufferListView.qml
+ \li \ref examples/quick/qml/ChatPage.qml
+ \li \ref examples/quick/qml/ConnectPage.qml
+ \li \ref examples/quick/qml/MessageFormatter.qml
+ \li \ref examples/quick/qml/TextBrowser.qml
+ \li \ref examples/quick/qml/TextEntry.qml
+ \li \ref examples/quick/qml/TopicLabel.qml
+ \li \ref examples/quick/qml/UserListView.qml
+
+ \file examples/quick/main.cpp
+ \brief \ref quick
+ \include examples/quick/main.cpp
+
+ \file examples/quick/qml/main.qml
+ \brief \ref quick
+ \include examples/quick/qml/main.qml
+
+ \file examples/quick/qml/BufferListView.qml
+ \brief \ref quick
+ \include examples/quick/qml/BufferListView.qml
+
+ \file examples/quick/qml/ChatPage.qml
+ \brief \ref quick
+ \include examples/quick/qml/ChatPage.qml
+
+ \file examples/quick/qml/ConnectPage.qml
+ \brief \ref quick
+ \include examples/quick/qml/ConnectPage.qml
+
+ \file examples/quick/qml/MessageFormatter.qml
+ \brief \ref quick
+ \include examples/quick/qml/MessageFormatter.qml
+
+ \file examples/quick/qml/TextBrowser.qml
+ \brief \ref quick
+ \include examples/quick/qml/TextBrowser.qml
+
+ \file examples/quick/qml/TextEntry.qml
+ \brief \ref quick
+ \include examples/quick/qml/TextEntry.qml
+
+ \file examples/quick/qml/TopicLabel.qml
+ \brief \ref quick
+ \include examples/quick/qml/TopicLabel.qml
+
+ \file examples/quick/qml/UserListView.qml
+ \brief \ref quick
+ \include examples/quick/qml/UserListView.qml
+ */
diff --git a/src/libcommuni/doc/quick.png b/src/libcommuni/doc/quick.png
new file mode 100644
index 0000000..c3d3cc7
--- /dev/null
+++ b/src/libcommuni/doc/quick.png
Binary files differ
diff --git a/src/libcommuni/doc/usage.dox b/src/libcommuni/doc/usage.dox
new file mode 100644
index 0000000..669bf94
--- /dev/null
+++ b/src/libcommuni/doc/usage.dox
@@ -0,0 +1,81 @@
+/*
+ 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.
+*/
+
+/*!
+ \page usage Using Communi
+
+ \section using-as-a-library Using as a library
+
+ In order to use Communi as a library, build and install Communi using the standard mantra:
+ \code
+ $ qmake
+ $ make
+ $ sudo make install
+ \endcode
+
+ This integrates Communi with qmake from the corresponding %Qt installation. To take Communi
+ in use in your application, add the following lines to your qmake project (.pro) file:
+ \code
+ CONFIG += communi
+ COMMUNI += core model util
+ \endcode
+
+ This sets up the necessary include paths and linker rules in order to use the library.
+ Notice that the needed Communi <a href="modules.html">modules</a> can be controlled via
+ the \c COMMUNI qmake variable. The above example enables all available
+ <a href="modules.html">modules</a>.
+
+ \section buiding-into-application Building into application
+
+ In order to embed the whole Communi to an application, add the following line to your
+ qmake project (.pro) file:
+ \code
+ include(path/to/libcommuni/src/src.pri)
+ \endcode
+
+ Alternatively, only specific module(s) can be included, for example:
+ \code
+ include(path/to/libcommuni/src/core/core.pri)
+ include(path/to/libcommuni/src/util/util.pri)
+ \endcode
+
+ This sets up the necessary include paths, and builds Communi sources into the application
+ for convenient deployment on systems that do not have Communi installed. This option is
+ also convenient when adding Communi as a Git submodule to your project tree.
+
+ \section namespace-support Namespace support
+
+ The Communi source code can be compiled into a namespace to for example
+ avoid symbol conflicts. In order to embed a namespaced Communi to an
+ application, add the following lines to your qmake project (.pro) file:
+
+ \code
+ DEFINES += IRC_NAMESPACE=Communi
+ include(path/to/libcommuni/src/src.pri)
+ \endcode
+ */