diff options
Diffstat (limited to 'docs/module-doc/modules_8h-source.html')
-rw-r--r-- | docs/module-doc/modules_8h-source.html | 895 |
1 files changed, 444 insertions, 451 deletions
diff --git a/docs/module-doc/modules_8h-source.html b/docs/module-doc/modules_8h-source.html index 9e01f90aa..a66aa14b1 100644 --- a/docs/module-doc/modules_8h-source.html +++ b/docs/module-doc/modules_8h-source.html @@ -1,458 +1,451 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>InspIRCd: modules.h Source File</title> <link href="inspircd.doxygen.css" rel="stylesheet" type="text/css"> </head><body> -<!-- Generated by Doxygen 1.3.3 --> -<div class="qindex"><a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Compound List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Compound Members</a> | <a class="qindex" href="globals.html">File Members</a></div> -<h1>modules.h</h1><a href="modules_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/* +------------------------------------+</span> -00002 <span class="comment"> * | Inspire Internet Relay Chat Daemon |</span> -00003 <span class="comment"> * +------------------------------------+</span> -00004 <span class="comment"> *</span> -00005 <span class="comment"> * Inspire is copyright (C) 2002-2004 ChatSpike-Dev.</span> -00006 <span class="comment"> * E-mail:</span> -00007 <span class="comment"> * <brain@chatspike.net></span> -00008 <span class="comment"> * <Craig@chatspike.net></span> -00009 <span class="comment"> * </span> -00010 <span class="comment"> * Written by Craig Edwards, Craig McLure, and others.</span> -00011 <span class="comment"> * This program is free but copyrighted software; see</span> -00012 <span class="comment"> * the file COPYING for details.</span> -00013 <span class="comment"> *</span> -00014 <span class="comment"> * ---------------------------------------------------</span> -00015 <span class="comment"> */</span> -00016 -00017 -00018 <span class="preprocessor">#ifndef __PLUGIN_H</span> -00019 <span class="preprocessor"></span><span class="preprocessor">#define __PLUGIN_H</span> -00020 <span class="preprocessor"></span> -00021 <span class="comment">// log levels</span> -00022 -<a name="l00023"></a><a class="code" href="modules_8h.html#a0">00023</a> <span class="preprocessor">#define DEBUG 10</span> -<a name="l00024"></a><a class="code" href="modules_8h.html#a1">00024</a> <span class="preprocessor"></span><span class="preprocessor">#define VERBOSE 20</span> -<a name="l00025"></a><a class="code" href="modules_8h.html#a2">00025</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT 30</span> -<a name="l00026"></a><a class="code" href="modules_8h.html#a3">00026</a> <span class="preprocessor"></span><span class="preprocessor">#define SPARSE 40</span> -<a name="l00027"></a><a class="code" href="modules_8h.html#a4">00027</a> <span class="preprocessor"></span><span class="preprocessor">#define NONE 50</span> -00028 <span class="preprocessor"></span> -00029 <span class="comment">// used with OnExtendedMode() method of modules</span> -00030 -<a name="l00031"></a><a class="code" href="modules_8h.html#a5">00031</a> <span class="preprocessor">#define MT_CHANNEL 1</span> -<a name="l00032"></a><a class="code" href="modules_8h.html#a6">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define MT_CLIENT 2</span> -<a name="l00033"></a><a class="code" href="modules_8h.html#a7">00033</a> <span class="preprocessor"></span><span class="preprocessor">#define MT_SERVER 3</span> -00034 <span class="preprocessor"></span> -00035 <span class="comment">// used with OnAccessCheck() method of modules</span> -00036 -<a name="l00037"></a><a class="code" href="modules_8h.html#a8">00037</a> <span class="preprocessor">#define ACR_DEFAULT 0 // Do default action (act as if the module isnt even loaded)</span> -<a name="l00038"></a><a class="code" href="modules_8h.html#a9">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define ACR_DENY 1 // deny the action</span> -<a name="l00039"></a><a class="code" href="modules_8h.html#a10">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define ACR_ALLOW 2 // allow the action</span> -00040 <span class="preprocessor"></span> -<a name="l00041"></a><a class="code" href="modules_8h.html#a11">00041</a> <span class="preprocessor">#define AC_KICK 0 // a user is being kicked</span> -<a name="l00042"></a><a class="code" href="modules_8h.html#a12">00042</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_DEOP 1 // a user is being deopped</span> -<a name="l00043"></a><a class="code" href="modules_8h.html#a13">00043</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_OP 2 // a user is being opped</span> -<a name="l00044"></a><a class="code" href="modules_8h.html#a14">00044</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_VOICE 3 // a user is being voiced</span> -<a name="l00045"></a><a class="code" href="modules_8h.html#a15">00045</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_DEVOICE 4 // a user is being devoiced</span> -<a name="l00046"></a><a class="code" href="modules_8h.html#a16">00046</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_HALFOP 5 // a user is being halfopped</span> -<a name="l00047"></a><a class="code" href="modules_8h.html#a17">00047</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_DEHALFOP 6 // a user is being dehalfopped</span> -<a name="l00048"></a><a class="code" href="modules_8h.html#a18">00048</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_INVITE 7 // a user is being invited</span> -<a name="l00049"></a><a class="code" href="modules_8h.html#a19">00049</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_GENERAL_MODE 8 // a user channel mode is being changed</span> -00050 <span class="preprocessor"></span> -00051 <span class="comment">// used to define a set of behavior bits for a module</span> -00052 -<a name="l00053"></a><a class="code" href="modules_8h.html#a20">00053</a> <span class="preprocessor">#define VF_STATIC 1 // module is static, cannot be /unloadmodule'd</span> -<a name="l00054"></a><a class="code" href="modules_8h.html#a21">00054</a> <span class="preprocessor"></span><span class="preprocessor">#define VF_VENDOR 2 // module is a vendor module (came in the original tarball, not 3rd party)</span> -<a name="l00055"></a><a class="code" href="modules_8h.html#a22">00055</a> <span class="preprocessor"></span><span class="preprocessor">#define VF_SERVICEPROVIDER 4 // module provides a service to other modules (can be a dependency)</span> -<a name="l00056"></a><a class="code" href="modules_8h.html#a23">00056</a> <span class="preprocessor"></span><span class="preprocessor">#define VF_COMMON 8 // module needs to be common on all servers in a mesh to link</span> -00057 <span class="preprocessor"></span> -00058 <span class="preprocessor">#include "dynamic.h"</span> -00059 <span class="preprocessor">#include "<a class="code" href="base_8h.html">base.h</a>"</span> -00060 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span> -00061 <span class="preprocessor">#include <string></span> -00062 <span class="preprocessor">#include <deque></span> -00063 <span class="preprocessor">#include <sstream></span> -00064 -<a name="l00067"></a><a class="code" href="modules_8h.html#a31">00067</a> <span class="keyword">typedef</span> std::deque<std::string> <a class="code" href="modules_8h.html#a31">file_cache</a>; -<a name="l00068"></a><a class="code" href="modules_8h.html#a32">00068</a> <span class="keyword">typedef</span> <a class="code" href="modules_8h.html#a31">file_cache</a> <a class="code" href="modules_8h.html#a32">string_list</a>; -00069 -<a name="l00072"></a><a class="code" href="modules_8h.html#a33">00072</a> <span class="keyword">typedef</span> std::deque<userrec*> <a class="code" href="modules_8h.html#a33">chanuserlist</a>; -00073 -00074 -00075 <span class="comment">// This #define allows us to call a method in all</span> -00076 <span class="comment">// loaded modules in a readable simple way, e.g.:</span> -00077 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span> -00078 -<a name="l00079"></a><a class="code" href="modules_8h.html#a24">00079</a> <span class="preprocessor">#define FOREACH_MOD for (int _i = 0; _i <= MODCOUNT; _i++) modules[_i]-></span> -00080 <span class="preprocessor"></span> -00081 <span class="comment">// This define is similar to the one above but returns a result in MOD_RESULT.</span> -00082 <span class="comment">// The first module to return a nonzero result is the value to be accepted,</span> -00083 <span class="comment">// and any modules after are ignored.</span> -00084 -00085 <span class="comment">// *********************************************************************************************</span> -00086 -<a name="l00087"></a><a class="code" href="modules_8h.html#a25">00087</a> <span class="preprocessor">#define FOREACH_RESULT(x) { MOD_RESULT = 0; \</span> -00088 <span class="preprocessor"> for (int _i = 0; _i <= MODCOUNT; _i++) { \</span> -00089 <span class="preprocessor"> int res = modules[_i]->x ; \</span> -00090 <span class="preprocessor"> if (res != 0) { \</span> -00091 <span class="preprocessor"> MOD_RESULT = res; \</span> -00092 <span class="preprocessor"> break; \</span> -00093 <span class="preprocessor"> } \</span> -00094 <span class="preprocessor"> } \</span> -00095 <span class="preprocessor"> } </span> -00096 <span class="preprocessor"></span> -00097 <span class="comment">// *********************************************************************************************</span> -00098 -<a name="l00099"></a><a class="code" href="modules_8h.html#a26">00099</a> <span class="preprocessor">#define FD_MAGIC_NUMBER -42</span> -00100 <span class="preprocessor"></span> -00101 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#a35">createcommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source); -00102 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#a36">server_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user); -00103 -00104 <span class="comment">// class Version holds the version information of a Module, returned</span> -00105 <span class="comment">// by Module::GetVersion (thanks RD)</span> -00106 -<a name="l00111"></a><a class="code" href="classVersion.html">00111</a> <span class="keyword">class </span><a class="code" href="classVersion.html">Version</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> -00112 { -00113 <span class="keyword">public</span>: -<a name="l00114"></a><a class="code" href="classVersion.html#o2">00114</a> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classVersion.html#o0">Major</a>, <a class="code" href="classVersion.html#o1">Minor</a>, <a class="code" href="classVersion.html#o2">Revision</a>, <a class="code" href="classVersion.html#o3">Build</a>, <a class="code" href="classVersion.html#o4">Flags</a>; -00115 <a class="code" href="classVersion.html#a0">Version</a>(<span class="keywordtype">int</span> major, <span class="keywordtype">int</span> minor, <span class="keywordtype">int</span> revision, <span class="keywordtype">int</span> build, <span class="keywordtype">int</span> flags); -00116 }; -00117 -<a name="l00123"></a><a class="code" href="classAdmin.html">00123</a> <span class="keyword">class </span><a class="code" href="classAdmin.html">Admin</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> -00124 { -00125 <span class="keyword">public</span>: -<a name="l00126"></a><a class="code" href="classAdmin.html#o2">00126</a> <span class="keyword">const</span> std::string <a class="code" href="classAdmin.html#o0">Name</a>, <a class="code" href="classAdmin.html#o1">Email</a>, <a class="code" href="classAdmin.html#o2">Nick</a>; -00127 <a class="code" href="classAdmin.html#a0">Admin</a>(std::string name, std::string email, std::string nick); -00128 }; -00129 -00130 -00131 <span class="comment">// Forward-delacare module for ModuleMessage etc</span> -00132 <span class="keyword">class </span><a class="code" href="classModule.html">Module</a>; -00133 -00134 <span class="comment">// Thanks to Rob (from anope) for the idea of this message passing API</span> -00135 <span class="comment">// (its been done before, but this seemed a very neat and tidy way...</span> -00136 -<a name="l00141"></a><a class="code" href="classModuleMessage.html">00141</a> <span class="keyword">class </span><a class="code" href="classModuleMessage.html">ModuleMessage</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> -00142 { -00143 <span class="keyword">public</span>: -00146 <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModuleMessage.html#a0">Send</a>() = 0; -00147 }; -00148 -<a name="l00154"></a><a class="code" href="classRequest.html">00154</a> <span class="keyword">class </span><a class="code" href="classRequest.html">Request</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a> -00155 { -00156 <span class="keyword">protected</span>: -<a name="l00159"></a><a class="code" href="classRequest.html#p0">00159</a> <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#p0">data</a>; -<a name="l00163"></a><a class="code" href="classRequest.html#p1">00163</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#p1">source</a>; -<a name="l00166"></a><a class="code" href="classRequest.html#p2">00166</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#p2">dest</a>; -00167 <span class="keyword">public</span>: -00170 <a class="code" href="classRequest.html#a0">Request</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="classModule.html">Module</a>* dst); -00173 <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#a1">GetData</a>(); -00176 <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#a2">GetSource</a>(); -00179 <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#a3">GetDest</a>(); -00185 <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#a4">Send</a>(); -00186 }; -00187 -00188 -<a name="l00194"></a><a class="code" href="classEvent.html">00194</a> <span class="keyword">class </span><a class="code" href="classEvent.html">Event</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a> -00195 { -00196 <span class="keyword">protected</span>: -<a name="l00199"></a><a class="code" href="classEvent.html#p0">00199</a> <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#p0">data</a>; -<a name="l00203"></a><a class="code" href="classEvent.html#p1">00203</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#p1">source</a>; -<a name="l00208"></a><a class="code" href="classEvent.html#p2">00208</a> std::string <a class="code" href="classEvent.html#p2">id</a>; -00209 <span class="keyword">public</span>: -00212 <a class="code" href="classEvent.html#a0">Event</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, std::string eventid); -00215 <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#a1">GetData</a>(); -00218 <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#a2">GetSource</a>(); -00222 std::string <a class="code" href="classEvent.html#a3">GetEventID</a>(); -00227 <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#a4">Send</a>(); -00228 }; -00229 -00230 -<a name="l00236"></a><a class="code" href="classModule.html">00236</a> <span class="keyword">class </span><a class="code" href="classModule.html">Module</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> -00237 { -00238 <span class="keyword">public</span>: -00239 -00243 <a class="code" href="classModule.html#a0">Module</a>(); -00244 -00248 <span class="keyword">virtual</span> <a class="code" href="classModule.html#a1">~Module</a>(); -00249 -00254 <span class="keyword">virtual</span> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#a2">GetVersion</a>(); -00255 -00259 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a3">OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user); -00260 -00266 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a4">OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user); -00267 -00273 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a5">OnUserDisconnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user); -00274 -00279 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a6">OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel); -00280 -00285 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a7">OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel); -00286 -00292 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a8">OnPacketTransmit</a>(std::string &data, std::string serv); -00293 -00300 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a9">OnPacketReceive</a>(std::string &data, std::string serv); -00301 -00307 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a10">OnRehash</a>(); -00308 -00317 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a11">OnServerRaw</a>(std::string &raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user); -00318 -00328 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a12">OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, <a class="code" href="modules_8h.html#a32">string_list</a> &params); -00329 -00343 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a13">OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname); -00344 -00350 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a14">OnUserPreKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, std::string reason); -00351 -00356 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a15">OnUserKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, std::string reason); -00357 -00362 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a16">OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user); -00363 -00372 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a17">OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user); -00373 -00378 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a18">OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest); -00379 -00385 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a19">OnUserPreInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel); -00386 -00395 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a20">OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string &text); -00396 -00408 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a21">OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, std::string &text); -00409 -00417 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a22">OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newnick); -00418 -00426 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a23">OnUserPostNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string oldnick); -00427 -00449 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a24">OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type); -00450 -00456 <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#a32">string_list</a> <a class="code" href="classModule.html#a25">OnUserSync</a>(<a class="code" href="classuserrec.html">userrec</a>* user); -00457 -00463 <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#a32">string_list</a> <a class="code" href="classModule.html#a26">OnChannelSync</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan); -00464 -00468 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a27">On005Numeric</a>(std::string &output); -00469 -00479 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a28">OnKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, std::string reason); -00480 -00491 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a29">OnLoadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,std::string name); -00492 -00498 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a30">OnBackgroundTimer</a>(time_t curtime); -00499 -00507 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a31">OnSendList</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel, <span class="keywordtype">char</span> mode); -00508 -00519 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a32">OnPreCommand</a>(std::string command, <span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user); -00520 -00529 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classModule.html#a33">OnCheckReady</a>(<a class="code" href="classuserrec.html">userrec</a>* user); -00530 -00538 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a34">OnUserRegister</a>(<a class="code" href="classuserrec.html">userrec</a>* user); -00539 -00545 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a35">OnRawMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keywordtype">char</span> mode, std::string param, <span class="keywordtype">bool</span> adding, <span class="keywordtype">int</span> pcnt); -00546 -00552 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a36">OnCheckInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan); -00553 -00560 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a37">OnCheckKey</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, std::string keygiven); -00561 -00567 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a38">OnCheckLimit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan); -00568 -00574 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a39">OnCheckBan</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan); -00575 -00579 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a40">OnStats</a>(<span class="keywordtype">char</span> symbol); -00580 -00584 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a41">OnChangeLocalUserHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newhost); -00585 -00589 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a42">OnChangeLocalUserGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string newhost); -00590 -00594 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a43">OnLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, std::string topic); -00595 -00606 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a44">OnMeshToken</a>(<span class="keywordtype">char</span> token,<a class="code" href="modules_8h.html#a32">string_list</a> params,<a class="code" href="classserverrec.html">serverrec</a>* source,<a class="code" href="classserverrec.html">serverrec</a>* reply, std::string tcp_host,std::string ipaddr,<span class="keywordtype">int</span> port); -00607 -00613 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a45">OnEvent</a>(<a class="code" href="classEvent.html">Event</a>* event); -00614 -00621 <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModule.html#a46">OnRequest</a>(<a class="code" href="classRequest.html">Request</a>* request); -00622 -00629 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a47">OnOperCompare</a>(std::string password, std::string input); -00630 -00636 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a48">OnGlobalOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user); -00637 -00642 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a49">OnGlobalConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user); -00643 -00647 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a50">OnAddBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,std::string banmask); -00648 -00652 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a51">OnDelBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,std::string banmask); -00653 -00660 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a52">OnRawSocketAccept</a>(<span class="keywordtype">int</span> fd, std::string ip, <span class="keywordtype">int</span> localport); -00661 -00668 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a53">OnRawSocketWrite</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> count); -00669 -00673 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#a54">OnRawSocketClose</a>(<span class="keywordtype">int</span> fd); -00674 -00685 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#a55">OnRawSocketRead</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> &readresult); -00686 }; -00687 -00688 -<a name="l00694"></a><a class="code" href="classServer.html">00694</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> -00695 { -00696 <span class="keyword">public</span>: -00700 <a class="code" href="classServer.html#a0">Server</a>(); -00704 <span class="keyword">virtual</span> <a class="code" href="classServer.html#a1">~Server</a>(); -00705 -00709 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a2">SendOpers</a>(std::string s); -00714 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a3">Log</a>(<span class="keywordtype">int</span> level, std::string s); -00719 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a4">Send</a>(<span class="keywordtype">int</span> Socket, std::string s); -00724 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a5">SendServ</a>(<span class="keywordtype">int</span> Socket, std::string s); -00728 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a6">SendChannelServerNotice</a>(std::string ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, std::string text); -00733 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a7">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, std::string s); -00748 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a8">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, std::string s); -00755 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a9">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, std::string s,<span class="keywordtype">bool</span> IncludeSender); -00760 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a10">CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2); -00768 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a11">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text,<span class="keywordtype">bool</span> IncludeSender); -00773 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a12">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, std::string text); -00774 -00778 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a13">IsNick</a>(std::string nick); -00782 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classServer.html#a14">CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c); -00786 <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a15">FindNick</a>(std::string nick); -00790 <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#a16">FindDescriptor</a>(<span class="keywordtype">int</span> socket); -00794 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a17">FindChannel</a>(std::string channel); -00799 <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a18">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan); -00803 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a19">IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan); -00806 <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a20">GetServerName</a>(); -00809 <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a21">GetNetworkName</a>(); -00812 <span class="keyword">virtual</span> std::string <a class="code" href="classServer.html#a22">GetServerDescription</a>(); -00818 <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#a23">GetAdmin</a>(); -00837 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a24">AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off); -00838 -00860 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a25">AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar); -00861 -00879 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a26">AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source); -00880 -00902 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a27">SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user); -00903 -00916 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a28">SendToModeMask</a>(std::string modes, <span class="keywordtype">int</span> flags, std::string text); -00917 -00923 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a29">JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string key); -00924 -00930 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#a30">PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string cname, std::string reason); -00931 -00937 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a31">ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string nickname); -00938 -00949 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a32">QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string reason); -00950 -00955 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a33">MatchText</a>(std::string sliteral, std::string spattern); -00956 -00968 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a34">CallCommandHandler</a>(std::string commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user); -00969 -00975 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a35">ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string host); -00976 -00982 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a36">ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string gecos); -00983 -00992 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a37">IsUlined</a>(std::string server); -00993 -00997 <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#a33">chanuserlist</a> <a class="code" href="classServer.html#a38">GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan); -00998 -01005 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a39">UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,std::string message); -01006 -01013 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a40">PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,std::string message); -01014 -01022 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a41">AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a76">duration</a>, std::string source, std::string reason, std::string hostmask); -01023 -01031 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a42">AddQLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a76">duration</a>, std::string source, std::string reason, std::string nickname); -01032 -01040 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a43">AddZLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a76">duration</a>, std::string source, std::string reason, std::string ipaddr); -01041 -01049 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a44">AddKLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a76">duration</a>, std::string source, std::string reason, std::string hostmask); -01050 -01058 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a45">AddELine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#a76">duration</a>, std::string source, std::string reason, std::string hostmask); -01059 -01062 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a46">DelGLine</a>(std::string hostmask); -01063 -01066 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a47">DelQLine</a>(std::string nickname); -01067 -01070 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a48">DelZLine</a>(std::string ipaddr); -01071 -01074 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a49">DelKLine</a>(std::string hostmask); -01075 -01078 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a50">DelELine</a>(std::string hostmask); -01079 -01085 <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classServer.html#a51">CalcDuration</a>(std::string <a class="code" href="commands_8h.html#a76">duration</a>); -01086 -01089 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a52">IsValidMask</a>(std::string mask); -01090 -01095 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a53">MeshSendAll</a>(std::string text); -01096 -01103 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a54">MeshSendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* user, std::string text); -01104 -01107 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a55">MeshSendAllAlive</a>(std::string text); -01108 -01112 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a56">MeshSendUnicast</a>(std::string destination, std::string text); -01113 -01118 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#a57">MeshSendAllExcept</a>(std::string target, std::string text); -01119 -01123 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a58">MeshCheckChan</a>(<a class="code" href="classchanrec.html">chanrec</a> *c,std::string servername); -01124 -01128 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#a59">MeshCheckCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* u,std::string servername); -01129 -01134 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#a60">FindModule</a>(std::string name); -01135 }; -01136 -01137 -<a name="l01138"></a><a class="code" href="modules_8h.html#a27">01138</a> <span class="preprocessor">#define CONF_NOT_A_NUMBER 0x000010</span> -<a name="l01139"></a><a class="code" href="modules_8h.html#a28">01139</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_NOT_UNSIGNED 0x000080</span> -<a name="l01140"></a><a class="code" href="modules_8h.html#a29">01140</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_VALUE_NOT_FOUND 0x000100</span> -<a name="l01141"></a><a class="code" href="modules_8h.html#a30">01141</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_FILE_NOT_FOUND 0x000200</span> -01142 <span class="preprocessor"></span> -01143 -<a name="l01150"></a><a class="code" href="classConfigReader.html">01150</a> <span class="keyword">class </span><a class="code" href="classConfigReader.html">ConfigReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> -01151 { -01152 <span class="keyword">protected</span>: -<a name="l01158"></a><a class="code" href="classConfigReader.html#p0">01158</a> std::stringstream *<a class="code" href="classConfigReader.html#p0">cache</a>; -<a name="l01159"></a><a class="code" href="classConfigReader.html#p1">01159</a> std::stringstream *<a class="code" href="classConfigReader.html#p1">errorlog</a>; -<a name="l01162"></a><a class="code" href="classConfigReader.html#p2">01162</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#p2">readerror</a>; -<a name="l01163"></a><a class="code" href="classConfigReader.html#p3">01163</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#p3">error</a>; -01164 -01165 <span class="keyword">public</span>: -01170 <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(); <span class="comment">// default constructor reads ircd.conf</span> -01174 <span class="comment"></span> <a class="code" href="classConfigReader.html#a0">ConfigReader</a>(std::string filename); <span class="comment">// read a module-specific config</span> -01178 <span class="comment"></span> <a class="code" href="classConfigReader.html#a2">~ConfigReader</a>(); -01183 std::string <a class="code" href="classConfigReader.html#a3">ReadValue</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index); -01189 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a4">ReadFlag</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index); -01198 <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#a5">ReadInteger</a>(std::string tag, std::string name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned); -01203 <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#a6">GetError</a>(); -01210 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a7">Enumerate</a>(std::string tag); -01215 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#a8">Verify</a>(); -01222 <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#a9">DumpErrors</a>(<span class="keywordtype">bool</span> bail,<a class="code" href="classuserrec.html">userrec</a>* user); -01223 -01229 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#a10">EnumerateValues</a>(std::string tag, <span class="keywordtype">int</span> index); -01230 }; -01231 -01232 -01233 -<a name="l01239"></a><a class="code" href="classFileReader.html">01239</a> <span class="keyword">class </span><a class="code" href="classFileReader.html">FileReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> -01240 { -<a name="l01241"></a><a class="code" href="classFileReader.html#r0">01241</a> <a class="code" href="modules_8h.html#a31">file_cache</a> <a class="code" href="classFileReader.html#r0">fc</a>; -01242 <span class="keyword">public</span>: -01247 <a class="code" href="classFileReader.html#a0">FileReader</a>(); -01248 -01254 <a class="code" href="classFileReader.html#a0">FileReader</a>(std::string filename); -01255 -01259 <a class="code" href="classFileReader.html#a2">~FileReader</a>(); -01260 -01266 <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#a3">LoadFile</a>(std::string filename); -01267 -01271 <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#a4">Exists</a>(); -01272 -01277 std::string <a class="code" href="classFileReader.html#a5">GetLine</a>(<span class="keywordtype">int</span> x); -01278 -01284 <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#a6">FileSize</a>(); -01285 }; -01286 -01287 -<a name="l01294"></a><a class="code" href="classModuleFactory.html">01294</a> <span class="keyword">class </span><a class="code" href="classModuleFactory.html">ModuleFactory</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> -01295 { -01296 <span class="keyword">public</span>: -<a name="l01297"></a><a class="code" href="classModuleFactory.html#a0">01297</a> <a class="code" href="classModuleFactory.html#a0">ModuleFactory</a>() { } -<a name="l01298"></a><a class="code" href="classModuleFactory.html#a1">01298</a> <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#a1">~ModuleFactory</a>() { } -01303 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#a2">CreateModule</a>() = 0; -01304 }; -01305 -01306 -<a name="l01307"></a><a class="code" href="modules_8h.html#a34">01307</a> <span class="keyword">typedef</span> DLLFactory<ModuleFactory> <a class="code" href="modules_8h.html#a34">ircd_module</a>; -01308 -01309 <span class="preprocessor">#endif</span> -</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon May 30 05:15:20 2005 for InspIRCd by +<!-- Generated by Doxygen 1.4.4-20050815 --> +<div class="qindex"><a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div> +<div class="nav"> +<a class="el" href="dir_000000.html">home</a> » <a class="el" href="dir_000001.html">brain</a> » <a class="el" href="dir_000002.html">inspircd-cvs</a> » <a class="el" href="dir_000003.html">inspircd</a> » <a class="el" href="dir_000004.html">include</a></div> +<h1>modules.h</h1><a href="modules_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* +------------------------------------+</span> +<a name="l00002"></a>00002 <span class="comment"> * | Inspire Internet Relay Chat Daemon |</span> +<a name="l00003"></a>00003 <span class="comment"> * +------------------------------------+</span> +<a name="l00004"></a>00004 <span class="comment"> *</span> +<a name="l00005"></a>00005 <span class="comment"> * Inspire is copyright (C) 2002-2004 ChatSpike-Dev.</span> +<a name="l00006"></a>00006 <span class="comment"> * E-mail:</span> +<a name="l00007"></a>00007 <span class="comment"> * <brain@chatspike.net></span> +<a name="l00008"></a>00008 <span class="comment"> * <Craig@chatspike.net></span> +<a name="l00009"></a>00009 <span class="comment"> * </span> +<a name="l00010"></a>00010 <span class="comment"> * Written by Craig Edwards, Craig McLure, and others.</span> +<a name="l00011"></a>00011 <span class="comment"> * This program is free but copyrighted software; see</span> +<a name="l00012"></a>00012 <span class="comment"> * the file COPYING for details.</span> +<a name="l00013"></a>00013 <span class="comment"> *</span> +<a name="l00014"></a>00014 <span class="comment"> * ---------------------------------------------------</span> +<a name="l00015"></a>00015 <span class="comment"> */</span> +<a name="l00016"></a>00016 +<a name="l00017"></a>00017 +<a name="l00018"></a>00018 <span class="preprocessor">#ifndef __PLUGIN_H</span> +<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define __PLUGIN_H</span> +<a name="l00020"></a>00020 <span class="preprocessor"></span> +<a name="l00021"></a>00021 <span class="comment">// log levels</span> +<a name="l00022"></a>00022 +<a name="l00023"></a><a class="code" href="modules_8h.html#DEBUG">00023</a> <span class="preprocessor">#define DEBUG 10</span> +<a name="l00024"></a><a class="code" href="modules_8h.html#VERBOSE">00024</a> <span class="preprocessor"></span><span class="preprocessor">#define VERBOSE 20</span> +<a name="l00025"></a><a class="code" href="modules_8h.html#DEFAULT">00025</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT 30</span> +<a name="l00026"></a><a class="code" href="modules_8h.html#SPARSE">00026</a> <span class="preprocessor"></span><span class="preprocessor">#define SPARSE 40</span> +<a name="l00027"></a><a class="code" href="modules_8h.html#NONE">00027</a> <span class="preprocessor"></span><span class="preprocessor">#define NONE 50</span> +<a name="l00028"></a>00028 <span class="preprocessor"></span> +<a name="l00029"></a>00029 <span class="comment">// used with OnExtendedMode() method of modules</span> +<a name="l00030"></a>00030 +<a name="l00031"></a><a class="code" href="modules_8h.html#MT_5FCHANNEL">00031</a> <span class="preprocessor">#define MT_CHANNEL 1</span> +<a name="l00032"></a><a class="code" href="modules_8h.html#MT_5FCLIENT">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define MT_CLIENT 2</span> +<a name="l00033"></a><a class="code" href="modules_8h.html#MT_5FSERVER">00033</a> <span class="preprocessor"></span><span class="preprocessor">#define MT_SERVER 3</span> +<a name="l00034"></a>00034 <span class="preprocessor"></span> +<a name="l00035"></a>00035 <span class="comment">// used with OnAccessCheck() method of modules</span> +<a name="l00036"></a>00036 +<a name="l00037"></a><a class="code" href="modules_8h.html#ACR_5FDEFAULT">00037</a> <span class="preprocessor">#define ACR_DEFAULT 0 // Do default action (act as if the module isnt even loaded)</span> +<a name="l00038"></a><a class="code" href="modules_8h.html#ACR_5FDENY">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define ACR_DENY 1 // deny the action</span> +<a name="l00039"></a><a class="code" href="modules_8h.html#ACR_5FALLOW">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define ACR_ALLOW 2 // allow the action</span> +<a name="l00040"></a>00040 <span class="preprocessor"></span> +<a name="l00041"></a><a class="code" href="modules_8h.html#AC_5FKICK">00041</a> <span class="preprocessor">#define AC_KICK 0 // a user is being kicked</span> +<a name="l00042"></a><a class="code" href="modules_8h.html#AC_5FDEOP">00042</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_DEOP 1 // a user is being deopped</span> +<a name="l00043"></a><a class="code" href="modules_8h.html#AC_5FOP">00043</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_OP 2 // a user is being opped</span> +<a name="l00044"></a><a class="code" href="modules_8h.html#AC_5FVOICE">00044</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_VOICE 3 // a user is being voiced</span> +<a name="l00045"></a><a class="code" href="modules_8h.html#AC_5FDEVOICE">00045</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_DEVOICE 4 // a user is being devoiced</span> +<a name="l00046"></a><a class="code" href="modules_8h.html#AC_5FHALFOP">00046</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_HALFOP 5 // a user is being halfopped</span> +<a name="l00047"></a><a class="code" href="modules_8h.html#AC_5FDEHALFOP">00047</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_DEHALFOP 6 // a user is being dehalfopped</span> +<a name="l00048"></a><a class="code" href="modules_8h.html#AC_5FINVITE">00048</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_INVITE 7 // a user is being invited</span> +<a name="l00049"></a><a class="code" href="modules_8h.html#AC_5FGENERAL_5FMODE">00049</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_GENERAL_MODE 8 // a user channel mode is being changed</span> +<a name="l00050"></a>00050 <span class="preprocessor"></span> +<a name="l00051"></a>00051 <span class="comment">// used to define a set of behavior bits for a module</span> +<a name="l00052"></a>00052 +<a name="l00053"></a><a class="code" href="modules_8h.html#VF_5FSTATIC">00053</a> <span class="preprocessor">#define VF_STATIC 1 // module is static, cannot be /unloadmodule'd</span> +<a name="l00054"></a><a class="code" href="modules_8h.html#VF_5FVENDOR">00054</a> <span class="preprocessor"></span><span class="preprocessor">#define VF_VENDOR 2 // module is a vendor module (came in the original tarball, not 3rd party)</span> +<a name="l00055"></a><a class="code" href="modules_8h.html#VF_5FSERVICEPROVIDER">00055</a> <span class="preprocessor"></span><span class="preprocessor">#define VF_SERVICEPROVIDER 4 // module provides a service to other modules (can be a dependency)</span> +<a name="l00056"></a><a class="code" href="modules_8h.html#VF_5FCOMMON">00056</a> <span class="preprocessor"></span><span class="preprocessor">#define VF_COMMON 8 // module needs to be common on all servers in a mesh to link</span> +<a name="l00057"></a>00057 <span class="preprocessor"></span> +<a name="l00058"></a>00058 <span class="preprocessor">#include "dynamic.h"</span> +<a name="l00059"></a>00059 <span class="preprocessor">#include "<a class="code" href="base_8h.html">base.h</a>"</span> +<a name="l00060"></a>00060 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span> +<a name="l00061"></a>00061 <span class="preprocessor">#include "<a class="code" href="socket_8h.html">socket.h</a>"</span> +<a name="l00062"></a>00062 <span class="preprocessor">#include <string></span> +<a name="l00063"></a>00063 <span class="preprocessor">#include <deque></span> +<a name="l00064"></a>00064 <span class="preprocessor">#include <sstream></span> +<a name="l00065"></a>00065 +<a name="l00068"></a><a class="code" href="modules_8h.html#file_5Fcache">00068</a> <span class="keyword">typedef</span> std::deque<std::string> <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a>; +<a name="l00069"></a><a class="code" href="modules_8h.html#string_5Flist">00069</a> <span class="keyword">typedef</span> <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> <a class="code" href="modules_8h.html#string_5Flist">string_list</a>; +<a name="l00070"></a>00070 +<a name="l00073"></a><a class="code" href="modules_8h.html#chanuserlist">00073</a> <span class="keyword">typedef</span> std::deque<userrec*> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a>; +<a name="l00074"></a>00074 +<a name="l00075"></a>00075 +<a name="l00076"></a>00076 <span class="comment">// This #define allows us to call a method in all</span> +<a name="l00077"></a>00077 <span class="comment">// loaded modules in a readable simple way, e.g.:</span> +<a name="l00078"></a>00078 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span> +<a name="l00079"></a>00079 +<a name="l00080"></a><a class="code" href="modules_8h.html#FOREACH_5FMOD">00080</a> <span class="preprocessor">#define FOREACH_MOD for (int _i = 0; _i <= MODCOUNT; _i++) modules[_i]-></span> +<a name="l00081"></a>00081 <span class="preprocessor"></span> +<a name="l00082"></a>00082 <span class="comment">// This define is similar to the one above but returns a result in MOD_RESULT.</span> +<a name="l00083"></a>00083 <span class="comment">// The first module to return a nonzero result is the value to be accepted,</span> +<a name="l00084"></a>00084 <span class="comment">// and any modules after are ignored.</span> +<a name="l00085"></a>00085 +<a name="l00086"></a>00086 <span class="comment">// *********************************************************************************************</span> +<a name="l00087"></a>00087 +<a name="l00088"></a><a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">00088</a> <span class="preprocessor">#define FOREACH_RESULT(x) { MOD_RESULT = 0; \</span> +<a name="l00089"></a>00089 <span class="preprocessor"> for (int _i = 0; _i <= MODCOUNT; _i++) { \</span> +<a name="l00090"></a>00090 <span class="preprocessor"> int res = modules[_i]->x ; \</span> +<a name="l00091"></a>00091 <span class="preprocessor"> if (res != 0) { \</span> +<a name="l00092"></a>00092 <span class="preprocessor"> MOD_RESULT = res; \</span> +<a name="l00093"></a>00093 <span class="preprocessor"> break; \</span> +<a name="l00094"></a>00094 <span class="preprocessor"> } \</span> +<a name="l00095"></a>00095 <span class="preprocessor"> } \</span> +<a name="l00096"></a>00096 <span class="preprocessor"> } </span> +<a name="l00097"></a>00097 <span class="preprocessor"></span> +<a name="l00098"></a>00098 <span class="comment">// *********************************************************************************************</span> +<a name="l00099"></a>00099 +<a name="l00100"></a><a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">00100</a> <span class="preprocessor">#define FD_MAGIC_NUMBER -42</span> +<a name="l00101"></a>00101 <span class="preprocessor"></span> +<a name="l00102"></a>00102 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source); +<a name="l00103"></a>00103 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user); +<a name="l00104"></a>00104 +<a name="l00105"></a>00105 <span class="comment">// class Version holds the version information of a Module, returned</span> +<a name="l00106"></a>00106 <span class="comment">// by Module::GetVersion (thanks RD)</span> +<a name="l00107"></a>00107 +<a name="l00112"></a><a class="code" href="classVersion.html">00112</a> <span class="keyword">class </span><a class="code" href="classVersion.html">Version</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> +<a name="l00113"></a>00113 { +<a name="l00114"></a>00114 <span class="keyword">public</span>: +<a name="l00115"></a><a class="code" href="classVersion.html#Revision">00115</a> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classVersion.html#Major">Major</a>, <a class="code" href="classVersion.html#Minor">Minor</a>, <a class="code" href="classVersion.html#Revision">Revision</a>, <a class="code" href="classVersion.html#Build">Build</a>, <a class="code" href="classVersion.html#Flags">Flags</a>; +<a name="l00116"></a>00116 <a class="code" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">Version</a>(<span class="keywordtype">int</span> major, <span class="keywordtype">int</span> minor, <span class="keywordtype">int</span> revision, <span class="keywordtype">int</span> build, <span class="keywordtype">int</span> flags); +<a name="l00117"></a>00117 }; +<a name="l00118"></a>00118 +<a name="l00124"></a><a class="code" href="classAdmin.html">00124</a> <span class="keyword">class </span><a class="code" href="classAdmin.html">Admin</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> +<a name="l00125"></a>00125 { +<a name="l00126"></a>00126 <span class="keyword">public</span>: +<a name="l00127"></a><a class="code" href="classAdmin.html#Nick">00127</a> <span class="keyword">const</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classAdmin.html#Name">Name</a>, <a class="code" href="classAdmin.html#Email">Email</a>, <a class="code" href="classAdmin.html#Nick">Nick</a>; +<a name="l00128"></a>00128 <a class="code" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">Admin</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name, <a class="code" href="namespaceirc.html#string">std::string</a> email, <a class="code" href="namespaceirc.html#string">std::string</a> nick); +<a name="l00129"></a>00129 }; +<a name="l00130"></a>00130 +<a name="l00131"></a>00131 +<a name="l00132"></a>00132 <span class="comment">// Forward-delacare module for ModuleMessage etc</span> +<a name="l00133"></a>00133 <span class="keyword">class </span><a class="code" href="classModule.html">Module</a>; +<a name="l00134"></a>00134 +<a name="l00135"></a>00135 <span class="comment">// Thanks to Rob (from anope) for the idea of this message passing API</span> +<a name="l00136"></a>00136 <span class="comment">// (its been done before, but this seemed a very neat and tidy way...</span> +<a name="l00137"></a>00137 +<a name="l00142"></a><a class="code" href="classModuleMessage.html">00142</a> <span class="keyword">class </span><a class="code" href="classModuleMessage.html">ModuleMessage</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> +<a name="l00143"></a>00143 { +<a name="l00144"></a>00144 <span class="keyword">public</span>: +<a name="l00147"></a>00147 <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModuleMessage.html#Send_28_29_3D_30">Send</a>() = 0; +<a name="l00148"></a><a class="code" href="classModuleMessage.html#_7EModuleMessage_28_29">00148</a> <span class="keyword">virtual</span> <a class="code" href="classModuleMessage.html#_7EModuleMessage_28_29">~ModuleMessage</a>() {}; +<a name="l00149"></a>00149 }; +<a name="l00150"></a>00150 +<a name="l00156"></a><a class="code" href="classRequest.html">00156</a> <span class="keyword">class </span><a class="code" href="classRequest.html">Request</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a> +<a name="l00157"></a>00157 { +<a name="l00158"></a>00158 <span class="keyword">protected</span>: +<a name="l00161"></a><a class="code" href="classRequest.html#data">00161</a> <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#data">data</a>; +<a name="l00165"></a><a class="code" href="classRequest.html#source">00165</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#source">source</a>; +<a name="l00168"></a><a class="code" href="classRequest.html#dest">00168</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#dest">dest</a>; +<a name="l00169"></a>00169 <span class="keyword">public</span>: +<a name="l00172"></a>00172 <a class="code" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="classModule.html">Module</a>* dst); +<a name="l00175"></a>00175 <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#GetData_28_29">GetData</a>(); +<a name="l00178"></a>00178 <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetSource_28_29">GetSource</a>(); +<a name="l00181"></a>00181 <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetDest_28_29">GetDest</a>(); +<a name="l00187"></a>00187 <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#Send_28_29">Send</a>(); +<a name="l00188"></a>00188 }; +<a name="l00189"></a>00189 +<a name="l00190"></a>00190 +<a name="l00196"></a><a class="code" href="classEvent.html">00196</a> <span class="keyword">class </span><a class="code" href="classEvent.html">Event</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a> +<a name="l00197"></a>00197 { +<a name="l00198"></a>00198 <span class="keyword">protected</span>: +<a name="l00201"></a><a class="code" href="classEvent.html#data">00201</a> <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#data">data</a>; +<a name="l00205"></a><a class="code" href="classEvent.html#source">00205</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#source">source</a>; +<a name="l00210"></a><a class="code" href="classEvent.html#id">00210</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#id">id</a>; +<a name="l00211"></a>00211 <span class="keyword">public</span>: +<a name="l00214"></a>00214 <a class="code" href="classEvent.html#Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29">Event</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="namespaceirc.html#string">std::string</a> eventid); +<a name="l00217"></a>00217 <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#GetData_28_29">GetData</a>(); +<a name="l00220"></a>00220 <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#GetSource_28_29">GetSource</a>(); +<a name="l00224"></a>00224 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#GetEventID_28_29">GetEventID</a>(); +<a name="l00229"></a>00229 <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#Send_28_29">Send</a>(); +<a name="l00230"></a>00230 }; +<a name="l00231"></a>00231 +<a name="l00232"></a>00232 +<a name="l00238"></a><a class="code" href="classModule.html">00238</a> <span class="keyword">class </span><a class="code" href="classModule.html">Module</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> +<a name="l00239"></a>00239 { +<a name="l00240"></a>00240 <span class="keyword">public</span>: +<a name="l00241"></a>00241 +<a name="l00245"></a>00245 <a class="code" href="classModule.html#Module_28_29">Module</a>(); +<a name="l00246"></a>00246 +<a name="l00250"></a>00250 <span class="keyword">virtual</span> <a class="code" href="classModule.html#_7EModule_28_29">~Module</a>(); +<a name="l00251"></a>00251 +<a name="l00256"></a>00256 <span class="keyword">virtual</span> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#GetVersion_28_29">GetVersion</a>(); +<a name="l00257"></a>00257 +<a name="l00261"></a>00261 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserConnect_28userrec_20_2Auser_29">OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l00262"></a>00262 +<a name="l00268"></a>00268 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_29">OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l00269"></a>00269 +<a name="l00275"></a>00275 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserDisconnect_28userrec_20_2Auser_29">OnUserDisconnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l00276"></a>00276 +<a name="l00281"></a>00281 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel); +<a name="l00282"></a>00282 +<a name="l00287"></a>00287 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserPart_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel); +<a name="l00288"></a>00288 +<a name="l00294"></a>00294 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnPacketTransmit_28std_3A_3Astring_20_26data_2C_20std_3A_3Astring_20serv_29">OnPacketTransmit</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &data, <a class="code" href="namespaceirc.html#string">std::string</a> serv); +<a name="l00295"></a>00295 +<a name="l00302"></a>00302 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnPacketReceive_28std_3A_3Astring_20_26data_2C_20std_3A_3Astring_20serv_29">OnPacketReceive</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &data, <a class="code" href="namespaceirc.html#string">std::string</a> serv); +<a name="l00303"></a>00303 +<a name="l00309"></a>00309 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRehash_28_29">OnRehash</a>(); +<a name="l00310"></a>00310 +<a name="l00319"></a>00319 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnServerRaw_28std_3A_3Astring_20_26raw_2C_20bool_20inbound_2C_20userrec_20_2Auser_29">OnServerRaw</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l00320"></a>00320 +<a name="l00330"></a>00330 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnExtendedMode_28userrec_20_2Auser_2C_20void_20_2Atarget_2C_20char_20modechar_2C_20int_20type_2C_20bool_20mode_5Fon_2C_20string_5Flist_20_26params_29">OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, <a class="code" href="modules_8h.html#string_5Flist">string_list</a> &params); +<a name="l00331"></a>00331 +<a name="l00345"></a>00345 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20const_20char_20_2Acname_29">OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname); +<a name="l00346"></a>00346 +<a name="l00352"></a>00352 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">OnUserPreKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason); +<a name="l00353"></a>00353 +<a name="l00358"></a>00358 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">OnUserKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason); +<a name="l00359"></a>00359 +<a name="l00364"></a>00364 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_29">OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l00365"></a>00365 +<a name="l00374"></a>00374 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnInfo_28userrec_20_2Auser_29">OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l00375"></a>00375 +<a name="l00380"></a>00380 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnWhois_28userrec_20_2Asource_2C_20userrec_20_2Adest_29">OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest); +<a name="l00381"></a>00381 +<a name="l00387"></a>00387 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">OnUserPreInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel); +<a name="l00388"></a>00388 +<a name="l00397"></a>00397 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> &text); +<a name="l00398"></a>00398 +<a name="l00410"></a>00410 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> &text); +<a name="l00411"></a>00411 +<a name="l00419"></a>00419 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20newnick_29">OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newnick); +<a name="l00420"></a>00420 +<a name="l00428"></a>00428 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserPostNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20oldnick_29">OnUserPostNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> oldnick); +<a name="l00429"></a>00429 +<a name="l00451"></a>00451 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnAccessCheck_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_2C_20int_20access_5Ftype_29">OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type); +<a name="l00452"></a>00452 +<a name="l00458"></a>00458 <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#string_5Flist">string_list</a> <a class="code" href="classModule.html#OnUserSync_28userrec_20_2Auser_29">OnUserSync</a>(<a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l00459"></a>00459 +<a name="l00465"></a>00465 <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#string_5Flist">string_list</a> <a class="code" href="classModule.html#OnChannelSync_28chanrec_20_2Achan_29">OnChannelSync</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan); +<a name="l00466"></a>00466 +<a name="l00470"></a>00470 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#On_30_30_35Numeric_28std_3A_3Astring_20_26output_29">On005Numeric</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &output); +<a name="l00471"></a>00471 +<a name="l00481"></a>00481 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">OnKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason); +<a name="l00482"></a>00482 +<a name="l00493"></a>00493 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnLoadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">OnLoadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name); +<a name="l00494"></a>00494 +<a name="l00505"></a>00505 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUnloadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">OnUnloadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name); +<a name="l00506"></a>00506 +<a name="l00512"></a>00512 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnBackgroundTimer_28time_5Ft_20curtime_29">OnBackgroundTimer</a>(time_t curtime); +<a name="l00513"></a>00513 +<a name="l00521"></a>00521 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSendList_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_2C_20char_20mode_29">OnSendList</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel, <span class="keywordtype">char</span> mode); +<a name="l00522"></a>00522 +<a name="l00533"></a>00533 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnPreCommand_28std_3A_3Astring_20command_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">OnPreCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> command, <span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user); +<a name="l00534"></a>00534 +<a name="l00543"></a>00543 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classModule.html#OnCheckReady_28userrec_20_2Auser_29">OnCheckReady</a>(<a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l00544"></a>00544 +<a name="l00552"></a>00552 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserRegister_28userrec_20_2Auser_29">OnUserRegister</a>(<a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l00553"></a>00553 +<a name="l00559"></a>00559 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawMode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20char_20mode_2C_20std_3A_3Astring_20param_2C_20bool_20adding_2C_20int_20pcnt_29">OnRawMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keywordtype">char</span> mode, <a class="code" href="namespaceirc.html#string">std::string</a> param, <span class="keywordtype">bool</span> adding, <span class="keywordtype">int</span> pcnt); +<a name="l00560"></a>00560 +<a name="l00566"></a>00566 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckInvite_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">OnCheckInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan); +<a name="l00567"></a>00567 +<a name="l00574"></a>00574 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckKey_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20keygiven_29">OnCheckKey</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> keygiven); +<a name="l00575"></a>00575 +<a name="l00581"></a>00581 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckLimit_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">OnCheckLimit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan); +<a name="l00582"></a>00582 +<a name="l00588"></a>00588 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckBan_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">OnCheckBan</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan); +<a name="l00589"></a>00589 +<a name="l00593"></a>00593 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnStats_28char_20symbol_29">OnStats</a>(<span class="keywordtype">char</span> symbol); +<a name="l00594"></a>00594 +<a name="l00598"></a>00598 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnChangeLocalUserHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">OnChangeLocalUserHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost); +<a name="l00599"></a>00599 +<a name="l00603"></a>00603 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnChangeLocalUserGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">OnChangeLocalUserGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost); +<a name="l00604"></a>00604 +<a name="l00608"></a>00608 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">OnLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic); +<a name="l00609"></a>00609 +<a name="l00615"></a>00615 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnEvent_28Event_20_2Aevent_29">OnEvent</a>(<a class="code" href="classEvent.html">Event</a>* event); +<a name="l00616"></a>00616 +<a name="l00623"></a>00623 <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">OnRequest</a>(<a class="code" href="classRequest.html">Request</a>* request); +<a name="l00624"></a>00624 +<a name="l00631"></a>00631 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnOperCompare_28std_3A_3Astring_20password_2C_20std_3A_3Astring_20input_29">OnOperCompare</a>(<a class="code" href="namespaceirc.html#string">std::string</a> password, <a class="code" href="namespaceirc.html#string">std::string</a> input); +<a name="l00632"></a>00632 +<a name="l00638"></a>00638 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGlobalOper_28userrec_20_2Auser_29">OnGlobalOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l00639"></a>00639 +<a name="l00644"></a>00644 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGlobalConnect_28userrec_20_2Auser_29">OnGlobalConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l00645"></a>00645 +<a name="l00649"></a>00649 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnAddBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">OnAddBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask); +<a name="l00650"></a>00650 +<a name="l00654"></a>00654 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnDelBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">OnDelBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask); +<a name="l00655"></a>00655 +<a name="l00662"></a>00662 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRawSocketAccept_28int_20fd_2C_20std_3A_3Astring_20ip_2C_20int_20localport_29">OnRawSocketAccept</a>(<span class="keywordtype">int</span> fd, <a class="code" href="namespaceirc.html#string">std::string</a> ip, <span class="keywordtype">int</span> localport); +<a name="l00663"></a>00663 +<a name="l00670"></a>00670 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawSocketWrite_28int_20fd_2C_20char_20_2Abuffer_2C_20int_20count_29">OnRawSocketWrite</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> count); +<a name="l00671"></a>00671 +<a name="l00675"></a>00675 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">OnRawSocketClose</a>(<span class="keywordtype">int</span> fd); +<a name="l00676"></a>00676 +<a name="l00687"></a>00687 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawSocketRead_28int_20fd_2C_20char_20_2Abuffer_2C_20unsigned_20int_20count_2C_20int_20_26readresult_29">OnRawSocketRead</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> &readresult); +<a name="l00688"></a>00688 }; +<a name="l00689"></a>00689 +<a name="l00690"></a>00690 +<a name="l00696"></a><a class="code" href="classServer.html">00696</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> +<a name="l00697"></a>00697 { +<a name="l00698"></a>00698 <span class="keyword">public</span>: +<a name="l00702"></a>00702 <a class="code" href="classServer.html#Server_28_29">Server</a>(); +<a name="l00706"></a>00706 <span class="keyword">virtual</span> <a class="code" href="classServer.html#_7EServer_28_29">~Server</a>(); +<a name="l00707"></a>00707 +<a name="l00711"></a>00711 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">SendOpers</a>(<a class="code" href="namespaceirc.html#string">std::string</a> s); +<a name="l00716"></a>00716 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Log</a>(<span class="keywordtype">int</span> level, <a class="code" href="namespaceirc.html#string">std::string</a> s); +<a name="l00721"></a>00721 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Send</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s); +<a name="l00726"></a>00726 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">SendServ</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s); +<a name="l00730"></a>00730 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">SendChannelServerNotice</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> text); +<a name="l00735"></a>00735 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> s); +<a name="l00750"></a>00750 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, <a class="code" href="namespaceirc.html#string">std::string</a> s); +<a name="l00757"></a>00757 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> s,<span class="keywordtype">bool</span> IncludeSender); +<a name="l00762"></a>00762 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2); +<a name="l00770"></a>00770 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text,<span class="keywordtype">bool</span> IncludeSender); +<a name="l00775"></a>00775 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text); +<a name="l00776"></a>00776 +<a name="l00780"></a>00780 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">IsNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick); +<a name="l00784"></a>00784 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c); +<a name="l00788"></a>00788 <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">FindNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick); +<a name="l00792"></a>00792 <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">FindDescriptor</a>(<span class="keywordtype">int</span> socket); +<a name="l00796"></a>00796 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">FindChannel</a>(<a class="code" href="namespaceirc.html#string">std::string</a> channel); +<a name="l00801"></a>00801 <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan); +<a name="l00805"></a>00805 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan); +<a name="l00808"></a>00808 <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerName_28_29">GetServerName</a>(); +<a name="l00811"></a>00811 <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetNetworkName_28_29">GetNetworkName</a>(); +<a name="l00814"></a>00814 <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerDescription_28_29">GetServerDescription</a>(); +<a name="l00820"></a>00820 <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#GetAdmin_28_29">GetAdmin</a>(); +<a name="l00839"></a>00839 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off); +<a name="l00840"></a>00840 +<a name="l00862"></a>00862 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar); +<a name="l00863"></a>00863 +<a name="l00881"></a>00881 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source); +<a name="l00882"></a>00882 +<a name="l00904"></a>00904 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user); +<a name="l00905"></a>00905 +<a name="l00918"></a>00918 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">SendToModeMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes, <span class="keywordtype">int</span> flags, <a class="code" href="namespaceirc.html#string">std::string</a> text); +<a name="l00919"></a>00919 +<a name="l00925"></a>00925 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> key); +<a name="l00926"></a>00926 +<a name="l00932"></a>00932 <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> reason); +<a name="l00933"></a>00933 +<a name="l00939"></a>00939 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> nickname); +<a name="l00940"></a>00940 +<a name="l00951"></a>00951 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> reason); +<a name="l00952"></a>00952 +<a name="l00957"></a>00957 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">MatchText</a>(<a class="code" href="namespaceirc.html#string">std::string</a> sliteral, <a class="code" href="namespaceirc.html#string">std::string</a> spattern); +<a name="l00958"></a>00958 +<a name="l00970"></a>00970 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">CallCommandHandler</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l00971"></a>00971 +<a name="l00977"></a>00977 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> host); +<a name="l00978"></a>00978 +<a name="l00984"></a>00984 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos); +<a name="l00985"></a>00985 +<a name="l00994"></a>00994 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">IsUlined</a>(<a class="code" href="namespaceirc.html#string">std::string</a> server); +<a name="l00995"></a>00995 +<a name="l00999"></a>00999 <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> <a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan); +<a name="l01000"></a>01000 +<a name="l01007"></a>01007 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="namespaceirc.html#string">std::string</a> message); +<a name="l01008"></a>01008 +<a name="l01015"></a>01015 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,<a class="code" href="namespaceirc.html#string">std::string</a> message); +<a name="l01016"></a>01016 +<a name="l01024"></a>01024 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask); +<a name="l01025"></a>01025 +<a name="l01033"></a>01033 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">AddQLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickname); +<a name="l01034"></a>01034 +<a name="l01042"></a>01042 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">AddZLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipaddr); +<a name="l01043"></a>01043 +<a name="l01051"></a>01051 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddKLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask); +<a name="l01052"></a>01052 +<a name="l01060"></a>01060 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddELine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask); +<a name="l01061"></a>01061 +<a name="l01064"></a>01064 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">DelGLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask); +<a name="l01065"></a>01065 +<a name="l01068"></a>01068 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">DelQLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nickname); +<a name="l01069"></a>01069 +<a name="l01072"></a>01072 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">DelZLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ipaddr); +<a name="l01073"></a>01073 +<a name="l01076"></a>01076 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">DelKLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask); +<a name="l01077"></a>01077 +<a name="l01080"></a>01080 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">DelELine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask); +<a name="l01081"></a>01081 +<a name="l01087"></a>01087 <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">CalcDuration</a>(<a class="code" href="namespaceirc.html#string">std::string</a> duration); +<a name="l01088"></a>01088 +<a name="l01091"></a>01091 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">IsValidMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask); +<a name="l01092"></a>01092 +<a name="l01097"></a>01097 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">FindModule</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name); +<a name="l01098"></a>01098 +<a name="l01101"></a>01101 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">AddSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock); +<a name="l01102"></a>01102 +<a name="l01105"></a>01105 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">DelSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock); +<a name="l01106"></a>01106 }; +<a name="l01107"></a>01107 +<a name="l01108"></a>01108 +<a name="l01109"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">01109</a> <span class="preprocessor">#define CONF_NOT_A_NUMBER 0x000010</span> +<a name="l01110"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">01110</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_NOT_UNSIGNED 0x000080</span> +<a name="l01111"></a><a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">01111</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_VALUE_NOT_FOUND 0x000100</span> +<a name="l01112"></a><a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">01112</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_FILE_NOT_FOUND 0x000200</span> +<a name="l01113"></a>01113 <span class="preprocessor"></span> +<a name="l01114"></a>01114 +<a name="l01121"></a><a class="code" href="classConfigReader.html">01121</a> <span class="keyword">class </span><a class="code" href="classConfigReader.html">ConfigReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> +<a name="l01122"></a>01122 { +<a name="l01123"></a>01123 <span class="keyword">protected</span>: +<a name="l01129"></a><a class="code" href="classConfigReader.html#cache">01129</a> std::stringstream *<a class="code" href="classConfigReader.html#cache">cache</a>; +<a name="l01130"></a><a class="code" href="classConfigReader.html#errorlog">01130</a> std::stringstream *<a class="code" href="classConfigReader.html#errorlog">errorlog</a>; +<a name="l01133"></a><a class="code" href="classConfigReader.html#readerror">01133</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#readerror">readerror</a>; +<a name="l01134"></a><a class="code" href="classConfigReader.html#error">01134</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#error">error</a>; +<a name="l01135"></a>01135 +<a name="l01136"></a>01136 <span class="keyword">public</span>: +<a name="l01141"></a>01141 <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>(); <span class="comment">// default constructor reads ircd.conf</span> +<a name="l01145"></a>01145 <span class="comment"></span> <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename); <span class="comment">// read a module-specific config</span> +<a name="l01149"></a>01149 <span class="comment"></span> <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">~ConfigReader</a>(); +<a name="l01154"></a>01154 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ReadValue</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index); +<a name="l01160"></a>01160 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ReadFlag</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index); +<a name="l01169"></a>01169 <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ReadInteger</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned); +<a name="l01174"></a>01174 <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">GetError</a>(); +<a name="l01181"></a>01181 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">Enumerate</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag); +<a name="l01186"></a>01186 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">Verify</a>(); +<a name="l01193"></a>01193 <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">DumpErrors</a>(<span class="keywordtype">bool</span> bail,<a class="code" href="classuserrec.html">userrec</a>* user); +<a name="l01194"></a>01194 +<a name="l01200"></a>01200 <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">EnumerateValues</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <span class="keywordtype">int</span> index); +<a name="l01201"></a>01201 }; +<a name="l01202"></a>01202 +<a name="l01203"></a>01203 +<a name="l01204"></a>01204 +<a name="l01210"></a><a class="code" href="classFileReader.html">01210</a> <span class="keyword">class </span><a class="code" href="classFileReader.html">FileReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> +<a name="l01211"></a>01211 { +<a name="l01212"></a><a class="code" href="classFileReader.html#fc">01212</a> <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classFileReader.html#fc">fc</a>; +<a name="l01213"></a>01213 <span class="keyword">public</span>: +<a name="l01218"></a>01218 <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>(); +<a name="l01219"></a>01219 +<a name="l01225"></a>01225 <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename); +<a name="l01226"></a>01226 +<a name="l01230"></a>01230 <a class="code" href="classFileReader.html#_7EFileReader_28_29">~FileReader</a>(); +<a name="l01231"></a>01231 +<a name="l01237"></a>01237 <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">LoadFile</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename); +<a name="l01238"></a>01238 +<a name="l01242"></a>01242 <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">Exists</a>(); +<a name="l01243"></a>01243 +<a name="l01248"></a>01248 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classFileReader.html#GetLine_28int_20x_29">GetLine</a>(<span class="keywordtype">int</span> x); +<a name="l01249"></a>01249 +<a name="l01255"></a>01255 <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileSize</a>(); +<a name="l01256"></a>01256 }; +<a name="l01257"></a>01257 +<a name="l01258"></a>01258 +<a name="l01265"></a><a class="code" href="classModuleFactory.html">01265</a> <span class="keyword">class </span><a class="code" href="classModuleFactory.html">ModuleFactory</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a> +<a name="l01266"></a>01266 { +<a name="l01267"></a>01267 <span class="keyword">public</span>: +<a name="l01268"></a><a class="code" href="classModuleFactory.html#ModuleFactory_28_29">01268</a> <a class="code" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a>() { } +<a name="l01269"></a><a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">01269</a> <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">~ModuleFactory</a>() { } +<a name="l01274"></a>01274 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#CreateModule_28_29_3D_30">CreateModule</a>() = 0; +<a name="l01275"></a>01275 }; +<a name="l01276"></a>01276 +<a name="l01277"></a>01277 +<a name="l01278"></a><a class="code" href="modules_8h.html#ircd_5Fmodule">01278</a> <span class="keyword">typedef</span> DLLFactory<ModuleFactory> <a class="code" href="modules_8h.html#ircd_5Fmodule">ircd_module</a>; +<a name="l01279"></a>01279 +<a name="l01280"></a>01280 <span class="preprocessor">#endif</span> +</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Nov 27 01:43:24 2005 for InspIRCd by <a href="http://www.doxygen.org/index.html"> -<img src="doxygen.png" alt="doxygen" align="middle" border=0 > -</a>1.3.3 </small></address> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address> </body> </html> |