Communi 1.0.0
A cross-platform IRC client library written with Qt 4
|
00001 /* 00002 * Copyright (C) 2008-2011 J-P Nurmi <jpnurmi@gmail.com> 00003 * 00004 * This library is free software; you can redistribute it and/or modify it 00005 * under the terms of the GNU Lesser General Public License as published by 00006 * the Free Software Foundation; either version 2 of the License, or (at your 00007 * option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, but WITHOUT 00010 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00011 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 00012 * License for more details. 00013 */ 00014 00015 #ifndef IRC_H 00016 #define IRC_H 00017 00018 #include <IrcGlobal> 00019 #include <QtCore/qobject.h> 00020 00021 class COMMUNI_EXPORT Irc : public QObject 00022 { 00023 Q_OBJECT 00024 Q_ENUMS(Code Message) 00025 00026 public: 00027 enum Code 00028 { 00029 RPL_WELCOME = 1, 00030 RPL_YOURHOST = 2, 00031 RPL_CREATED = 3, 00032 RPL_MYINFO = 4, 00033 RPL_ISUPPORT = 5, 00034 RPL_SNOMASK = 8, 00035 RPL_STATMEMTOT = 9, 00036 RPL_BOUNCE = 10, 00037 RPL_STATMEM = 10, 00038 RPL_YOURCOOKIE = 14, 00039 RPL_YOURID = 42, 00040 RPL_SAVENICK = 43, 00041 RPL_ATTEMPTINGJUNC = 50, 00042 RPL_ATTEMPTINGREROUTE = 51, 00043 RPL_TRACELINK = 200, 00044 RPL_TRACECONNECTING = 201, 00045 RPL_TRACEHANDSHAKE = 202, 00046 RPL_TRACEUNKNOWN = 203, 00047 RPL_TRACEOPERATOR = 204, 00048 RPL_TRACEUSER = 205, 00049 RPL_TRACESERVER = 206, 00050 RPL_TRACESERVICE = 207, 00051 RPL_TRACENEWTYPE = 208, 00052 RPL_TRACECLASS = 209, 00053 RPL_TRACERECONNECT = 210, 00054 RPL_STATS = 210, 00055 RPL_STATSLINKINFO = 211, 00056 RPL_STATSCOMMANDS = 212, 00057 RPL_STATSCLINE = 213, 00058 RPL_STATSNLINE = 214, 00059 RPL_STATSILINE = 215, 00060 RPL_STATSKLINE = 216, 00061 RPL_STATSQLINE = 217, 00062 RPL_STATSYLINE = 218, 00063 RPL_ENDOFSTATS = 219, 00064 RPL_UMODEIS = 221, 00065 RPL_MODLIST = 222, 00066 RPL_SQLINE_NICK = 222, 00067 RPL_STATSZLINE = 225, 00068 RPL_STATSCOUNT = 226, 00069 RPL_SERVICEINFO = 231, 00070 RPL_ENDOFSERVICES = 232, 00071 RPL_SERVICE = 233, 00072 RPL_SERVLIST = 234, 00073 RPL_SERVLISTEND = 235, 00074 RPL_STATSVERBOSE = 236, 00075 RPL_STATSENGINE = 237, 00076 RPL_STATSIAUTH = 239, 00077 RPL_STATSVLINE = 240, 00078 RPL_STATSLLINE = 241, 00079 RPL_STATSUPTIME = 242, 00080 RPL_STATSOLINE = 243, 00081 RPL_STATSHLINE = 244, 00082 RPL_STATSSLINE = 245, 00083 RPL_STATSPING = 246, 00084 RPL_STATSBLINE = 247, 00085 RPL_STATSDEFINE = 248, 00086 RPL_STATSDEBUG = 249, 00087 RPL_STATSDLINE = 250, 00088 RPL_STATSCONN = 250, 00089 RPL_LUSERCLIENT = 251, 00090 RPL_LUSEROP = 252, 00091 RPL_LUSERUNKNOWN = 253, 00092 RPL_LUSERCHANNELS = 254, 00093 RPL_LUSERME = 255, 00094 RPL_ADMINME = 256, 00095 RPL_ADMINLOC1 = 257, 00096 RPL_ADMINLOC2 = 258, 00097 RPL_ADMINEMAIL = 259, 00098 RPL_TRACELOG = 261, 00099 RPL_TRACEPING = 262, 00100 RPL_TRACEEND = 262, 00101 RPL_TRYAGAIN = 263, 00102 RPL_LOCALUSERS = 265, 00103 RPL_GLOBALUSERS = 266, 00104 RPL_START_NETSTAT = 267, 00105 RPL_NETSTAT = 268, 00106 RPL_END_NETSTAT = 269, 00107 RPL_PRIVS = 270, 00108 RPL_SILELIST = 271, 00109 RPL_ENDOFSILELIST = 272, 00110 RPL_NOTIFY = 273, 00111 RPL_ENDNOTIFY = 274, 00112 RPL_STATSDELTA = 274, 00113 RPL_VCHANEXIST = 276, 00114 RPL_VCHANLIST = 277, 00115 RPL_VCHANHELP = 278, 00116 RPL_GLIST = 280, 00117 RPL_ENDOFGLIST = 281, 00118 RPL_ACCEPTLIST = 281, 00119 RPL_ENDOFACCEPT = 282, 00120 RPL_JUPELIST = 282, 00121 RPL_ENDOFJUPELIST = 283, 00122 RPL_FEATURE = 284, 00123 RPL_GLIST_HASH = 285, 00124 RPL_CHANINFO_HANDLE = 285, 00125 RPL_NEWHOSTIS = 285, 00126 RPL_CHANINFO_USERS = 286, 00127 RPL_CHKHEAD = 286, 00128 RPL_CHANINFO_CHOPS = 287, 00129 RPL_CHANUSER = 287, 00130 RPL_CHANINFO_VOICES = 288, 00131 RPL_PATCHHEAD = 288, 00132 RPL_CHANINFO_AWAY = 289, 00133 RPL_PATCHCON = 289, 00134 RPL_CHANINFO_OPERS = 290, 00135 RPL_HELPHDR = 290, 00136 RPL_DATASTR = 290, 00137 RPL_CHANINFO_BANNED = 291, 00138 RPL_HELPOP = 291, 00139 RPL_ENDOFCHECK = 291, 00140 RPL_CHANINFO_BANS = 292, 00141 RPL_HELPTLR = 292, 00142 RPL_CHANINFO_INVITE = 293, 00143 RPL_HELPHLP = 293, 00144 RPL_CHANINFO_INVITES = 294, 00145 RPL_HELPFWD = 294, 00146 RPL_CHANINFO_KICK = 295, 00147 RPL_HELPIGN = 295, 00148 RPL_CHANINFO_KICKS = 296, 00149 RPL_END_CHANINFO = 299, 00150 RPL_NONE = 300, 00151 RPL_AWAY = 301, 00152 RPL_USERHOST = 302, 00153 RPL_ISON = 303, 00154 RPL_TEXT = 304, 00155 RPL_UNAWAY = 305, 00156 RPL_NOWAWAY = 306, 00157 RPL_WHOISREGNICK = 307, 00158 RPL_SUSERHOST = 307, 00159 RPL_NOTIFYACTION = 308, 00160 RPL_WHOISADMIN = 308, 00161 RPL_NICKTRACE = 309, 00162 RPL_WHOISSADMIN = 309, 00163 RPL_WHOISHELPER = 309, 00164 RPL_WHOISSVCMSG = 310, 00165 RPL_WHOISHELPOP = 310, 00166 RPL_WHOISSERVICE = 310, 00167 RPL_WHOISUSER = 311, 00168 RPL_WHOISSERVER = 312, 00169 RPL_WHOISOPERATOR = 313, 00170 RPL_WHOWASUSER = 314, 00171 RPL_ENDOFWHO = 315, 00172 RPL_WHOISCHANOP = 316, 00173 RPL_WHOISIDLE = 317, 00174 RPL_ENDOFWHOIS = 318, 00175 RPL_WHOISCHANNELS = 319, 00176 RPL_WHOISVIRT = 320, 00177 RPL_WHOIS_HIDDEN = 320, 00178 RPL_WHOISSPECIAL = 320, 00179 RPL_LISTSTART = 321, 00180 RPL_LIST = 322, 00181 RPL_LISTEND = 323, 00182 RPL_CHANNELMODEIS = 324, 00183 RPL_UNIQOPIS = 325, 00184 RPL_CHANNELPASSIS = 325, 00185 RPL_NOCHANPASS = 326, 00186 RPL_CHPASSUNKNOWN = 327, 00187 RPL_CHANNEL_URL = 328, 00188 RPL_CREATIONTIME = 329, 00189 RPL_WHOWAS_TIME = 330, 00190 RPL_WHOISACCOUNT = 330, 00191 RPL_NOTOPIC = 331, 00192 RPL_TOPIC = 332, 00193 RPL_TOPICWHOTIME = 333, 00194 RPL_LISTUSAGE = 334, 00195 RPL_COMMANDSYNTAX = 334, 00196 RPL_LISTSYNTAX = 334, 00197 RPL_CHANPASSOK = 338, 00198 RPL_WHOISACTUALLY = 338, 00199 RPL_BADCHANPASS = 339, 00200 RPL_INVITING = 341, 00201 RPL_SUMMONING = 342, 00202 RPL_INVITED = 345, 00203 RPL_INVITELIST = 346, 00204 RPL_ENDOFINVITELIST = 347, 00205 RPL_EXCEPTLIST = 348, 00206 RPL_ENDOFEXCEPTLIST = 349, 00207 RPL_VERSION = 351, 00208 RPL_WHOREPLY = 352, 00209 RPL_NAMREPLY = 353, 00210 RPL_WHOSPCRPL = 354, 00211 RPL_NAMREPLY_ = 355, 00212 RPL_KILLDONE = 361, 00213 RPL_CLOSING = 362, 00214 RPL_CLOSEEND = 363, 00215 RPL_LINKS = 364, 00216 RPL_ENDOFLINKS = 365, 00217 RPL_ENDOFNAMES = 366, 00218 RPL_BANLIST = 367, 00219 RPL_ENDOFBANLIST = 368, 00220 RPL_ENDOFWHOWAS = 369, 00221 RPL_INFO = 371, 00222 RPL_MOTD = 372, 00223 RPL_INFOSTART = 373, 00224 RPL_ENDOFINFO = 374, 00225 RPL_MOTDSTART = 375, 00226 RPL_ENDOFMOTD = 376, 00227 RPL_KICKEXPIRED = 377, 00228 RPL_SPAM = 377, 00229 RPL_BANEXPIRED = 378, 00230 RPL_WHOISHOST = 378, 00231 RPL_KICKLINKED = 379, 00232 RPL_WHOISMODES = 379, 00233 RPL_BANLINKED = 380, 00234 RPL_YOURHELPER = 380, 00235 RPL_YOUREOPER = 381, 00236 RPL_REHASHING = 382, 00237 RPL_YOURESERVICE = 383, 00238 RPL_MYPORTIS = 384, 00239 RPL_NOTOPERANYMORE = 385, 00240 RPL_QLIST = 386, 00241 RPL_IRCOPS = 386, 00242 RPL_ENDOFQLIST = 387, 00243 RPL_ENDOFIRCOPS = 387, 00244 RPL_ALIST = 388, 00245 RPL_ENDOFALIST = 389, 00246 RPL_TIME = 391, 00247 RPL_USERSSTART = 392, 00248 RPL_USERS = 393, 00249 RPL_ENDOFUSERS = 394, 00250 RPL_NOUSERS = 395, 00251 RPL_HOSTHIDDEN = 396, 00252 ERR_UNKNOWNERROR = 400, 00253 ERR_NOSUCHNICK = 401, 00254 ERR_NOSUCHSERVER = 402, 00255 ERR_NOSUCHCHANNEL = 403, 00256 ERR_CANNOTSENDTOCHAN = 404, 00257 ERR_TOOMANYCHANNELS = 405, 00258 ERR_WASNOSUCHNICK = 406, 00259 ERR_TOOMANYTARGETS = 407, 00260 ERR_NOSUCHSERVICE = 408, 00261 ERR_NOCOLORSONCHAN = 408, 00262 ERR_NOORIGIN = 409, 00263 ERR_NORECIPIENT = 411, 00264 ERR_NOTEXTTOSEND = 412, 00265 ERR_NOTOPLEVEL = 413, 00266 ERR_WILDTOPLEVEL = 414, 00267 ERR_BADMASK = 415, 00268 ERR_TOOMANYMATCHES = 416, 00269 ERR_QUERYTOOLONG = 416, 00270 ERR_LENGTHTRUNCATED = 419, 00271 ERR_UNKNOWNCOMMAND = 421, 00272 ERR_NOMOTD = 422, 00273 ERR_NOADMININFO = 423, 00274 ERR_FILEERROR = 424, 00275 ERR_NOOPERMOTD = 425, 00276 ERR_TOOMANYAWAY = 429, 00277 ERR_EVENTNICKCHANGE = 430, 00278 ERR_NONICKNAMEGIVEN = 431, 00279 ERR_ERRONEUSNICKNAME = 432, 00280 ERR_NICKNAMEINUSE = 433, 00281 ERR_SERVICENAMEINUSE = 434, 00282 ERR_NORULES = 434, 00283 ERR_SERVICECONFUSED = 435, 00284 ERR_BANONCHAN = 435, 00285 ERR_NICKCOLLISION = 436, 00286 ERR_UNAVAILRESOURCE = 437, 00287 ERR_BANNICKCHANGE = 437, 00288 ERR_NICKTOOFAST = 438, 00289 ERR_DEAD = 438, 00290 ERR_TARGETTOOFAST = 439, 00291 ERR_SERVICESDOWN = 440, 00292 ERR_USERNOTINCHANNEL = 441, 00293 ERR_NOTONCHANNEL = 442, 00294 ERR_USERONCHANNEL = 443, 00295 ERR_NOLOGIN = 444, 00296 ERR_SUMMONDISABLED = 445, 00297 ERR_USERSDISABLED = 446, 00298 ERR_NONICKCHANGE = 447, 00299 ERR_NOTIMPLEMENTED = 449, 00300 ERR_NOTREGISTERED = 451, 00301 ERR_IDCOLLISION = 452, 00302 ERR_NICKLOST = 453, 00303 ERR_HOSTILENAME = 455, 00304 ERR_ACCEPTFULL = 456, 00305 ERR_ACCEPTEXIST = 457, 00306 ERR_ACCEPTNOT = 458, 00307 ERR_NOHIDING = 459, 00308 ERR_NOTFORHALFOPS = 460, 00309 ERR_NEEDMOREPARAMS = 461, 00310 ERR_ALREADYREGISTERED = 462, 00311 ERR_NOPERMFORHOST = 463, 00312 ERR_PASSWDMISMATCH = 464, 00313 ERR_YOUREBANNEDCREEP = 465, 00314 ERR_YOUWILLBEBANNED = 466, 00315 ERR_KEYSET = 467, 00316 ERR_INVALIDUSERNAME = 468, 00317 ERR_ONLYSERVERSCANCHANGE = 468, 00318 ERR_LINKSET = 469, 00319 ERR_LINKCHANNEL = 470, 00320 ERR_KICKEDFROMCHAN = 470, 00321 ERR_CHANNELISFULL = 471, 00322 ERR_UNKNOWNMODE = 472, 00323 ERR_INVITEONLYCHAN = 473, 00324 ERR_BANNEDFROMCHAN = 474, 00325 ERR_BADCHANNELKEY = 475, 00326 ERR_BADCHANMASK = 476, 00327 ERR_NOCHANMODES = 477, 00328 ERR_NEEDREGGEDNICK = 477, 00329 ERR_BANLISTFULL = 478, 00330 ERR_BADCHANNAME = 479, 00331 ERR_LINKFAIL = 479, 00332 ERR_NOULINE = 480, 00333 ERR_CANNOTKNOCK = 480, 00334 ERR_NOPRIVILEGES = 481, 00335 ERR_CHANOPRIVSNEEDED = 482, 00336 ERR_CANTKILLSERVER = 483, 00337 ERR_RESTRICTED = 484, 00338 ERR_ISCHANSERVICE = 484, 00339 ERR_DESYNC = 484, 00340 ERR_ATTACKDENY = 484, 00341 ERR_UNIQOPRIVSNEEDED = 485, 00342 ERR_KILLDENY = 485, 00343 ERR_CANTKICKADMIN = 485, 00344 ERR_ISREALSERVICE = 485, 00345 ERR_NONONREG = 486, 00346 ERR_HTMDISABLED = 486, 00347 ERR_ACCOUNTONLY = 486, 00348 ERR_CHANTOORECENT = 487, 00349 ERR_MSGSERVICES = 487, 00350 ERR_TSLESSCHAN = 488, 00351 ERR_VOICENEEDED = 489, 00352 ERR_SECUREONLYCHAN = 489, 00353 ERR_NOOPERHOST = 491, 00354 ERR_NOSERVICEHOST = 492, 00355 ERR_NOFEATURE = 493, 00356 ERR_BADFEATURE = 494, 00357 ERR_BADLOGTYPE = 495, 00358 ERR_BADLOGSYS = 496, 00359 ERR_BADLOGVALUE = 497, 00360 ERR_ISOPERLCHAN = 498, 00361 ERR_CHANOWNPRIVNEEDED = 499, 00362 ERR_UMODEUNKNOWNFLAG = 501, 00363 ERR_USERSDONTMATCH = 502, 00364 ERR_GHOSTEDCLIENT = 503, 00365 ERR_VWORLDWARN = 503, 00366 ERR_USERNOTONSERV = 504, 00367 ERR_SILELISTFULL = 511, 00368 ERR_TOOMANYWATCH = 512, 00369 ERR_BADPING = 513, 00370 ERR_INVALID_ERROR = 514, 00371 ERR_TOOMANYDCC = 514, 00372 ERR_BADEXPIRE = 515, 00373 ERR_DONTCHEAT = 516, 00374 ERR_DISABLED = 517, 00375 ERR_NOINVITE = 518, 00376 ERR_LONGMASK = 518, 00377 ERR_ADMONLY = 519, 00378 ERR_TOOMANYUSERS = 519, 00379 ERR_OPERONLY = 520, 00380 ERR_MASKTOOWIDE = 520, 00381 ERR_WHOTRUNC = 520, 00382 ERR_LISTSYNTAX = 521, 00383 ERR_WHOSYNTAX = 522, 00384 ERR_WHOLIMEXCEED = 523, 00385 ERR_QUARANTINED = 524, 00386 ERR_OPERSPVERIFY = 524, 00387 ERR_REMOTEPFX = 525, 00388 ERR_PFXUNROUTABLE = 526, 00389 ERR_BADHOSTMASK = 550, 00390 ERR_HOSTUNAVAIL = 551, 00391 ERR_USINGSLINE = 552, 00392 ERR_STATSSLINE = 553, 00393 RPL_LOGON = 600, 00394 RPL_LOGOFF = 601, 00395 RPL_WATCHOFF = 602, 00396 RPL_WATCHSTAT = 603, 00397 RPL_NOWON = 604, 00398 RPL_NOWOFF = 605, 00399 RPL_WATCHLIST = 606, 00400 RPL_ENDOFWATCHLIST = 607, 00401 RPL_WATCHCLEAR = 608, 00402 RPL_ISOPER = 610, 00403 RPL_ISLOCOP = 611, 00404 RPL_ISNOTOPER = 612, 00405 RPL_ENDOFISOPER = 613, 00406 RPL_DCCSTATUS = 617, 00407 RPL_DCCLIST = 618, 00408 RPL_ENDOFDCCLIST = 619, 00409 RPL_WHOWASHOST = 619, 00410 RPL_DCCINFO = 620, 00411 RPL_ENDOFO = 626, 00412 RPL_SETTINGS = 630, 00413 RPL_ENDOFSETTINGS = 631, 00414 RPL_DUMPING = 640, 00415 RPL_DUMPRPL = 641, 00416 RPL_EODUMP = 642, 00417 RPL_TRACEROUTE_HOP = 660, 00418 RPL_TRACEROUTE_START = 661, 00419 RPL_MODECHANGEWARN = 662, 00420 RPL_CHANREDIR = 663, 00421 RPL_SERVMODEIS = 664, 00422 RPL_OTHERUMODEIS = 665, 00423 RPL_ENDOF_GENERIC = 666, 00424 RPL_WHOWASDETAILS = 670, 00425 RPL_WHOISSECURE = 671, 00426 RPL_UNKNOWNMODES = 672, 00427 RPL_CANNOTSETMODES = 673, 00428 RPL_LUSERSTAFF = 678, 00429 RPL_TIMEONSERVERIS = 679, 00430 RPL_NETWORKS = 682, 00431 RPL_YOURLANGUAGEIS = 687, 00432 RPL_LANGUAGE = 688, 00433 RPL_WHOISSTAFF = 689, 00434 RPL_WHOISLANGUAGE = 690, 00435 RPL_HELPSTART = 704, 00436 RPL_HELPTXT = 705, 00437 RPL_ENDOFHELP = 706, 00438 RPL_ETRACEFULL = 708, 00439 RPL_ETRACE = 709, 00440 RPL_KNOCK = 710, 00441 RPL_KNOCKDLVR = 711, 00442 ERR_TOOMANYKNOCK = 712, 00443 ERR_CHANOPEN = 713, 00444 ERR_KNOCKONCHAN = 714, 00445 ERR_KNOCKDISABLED = 715, 00446 RPL_TARGUMODEG = 716, 00447 RPL_TARGNOTIFY = 717, 00448 RPL_UMODEGMSG = 718, 00449 RPL_ENDOFOMOTD = 722, 00450 ERR_NOPRIVS = 723, 00451 RPL_TESTMARK = 724, 00452 RPL_TESTLINE = 725, 00453 RPL_NOTESTLINE = 726, 00454 RPL_XINFO = 771, 00455 RPL_XINFOSTART = 773, 00456 RPL_XINFOEND = 774, 00457 ERR_CANNOTDOCOMMAND = 972, 00458 ERR_CANNOTCHANGEUMODE = 973, 00459 ERR_CANNOTCHANGECHANMODE = 974, 00460 ERR_CANNOTCHANGESERVERMODE = 975, 00461 ERR_CANNOTSENDTONICK = 976, 00462 ERR_UNKNOWNSERVERMODE = 977, 00463 ERR_SERVERMODELOCK = 979, 00464 ERR_BADCHARENCODING = 980, 00465 ERR_TOOMANYLANGUAGES = 981, 00466 ERR_NOLANGUAGE = 982, 00467 ERR_TEXTTOOSHORT = 983, 00468 ERR_NUMERIC_ERR = 999 00469 }; 00470 00471 Q_INVOKABLE static const char* version(); 00472 Q_INVOKABLE static const char* toString(int code); 00473 }; 00474 00475 #endif // IRC_H