summaryrefslogtreecommitdiff
path: root/docs/module-doc/modules_8h-source.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/module-doc/modules_8h-source.html')
-rw-r--r--docs/module-doc/modules_8h-source.html906
1 files changed, 462 insertions, 444 deletions
diff --git a/docs/module-doc/modules_8h-source.html b/docs/module-doc/modules_8h-source.html
index a156711a2..554028446 100644
--- a/docs/module-doc/modules_8h-source.html
+++ b/docs/module-doc/modules_8h-source.html
@@ -63,475 +63,493 @@
<a name="l00062"></a>00062 <span class="preprocessor">#include &lt;deque&gt;</span>
<a name="l00063"></a>00063 <span class="preprocessor">#include &lt;sstream&gt;</span>
<a name="l00064"></a>00064
-<a name="l00065"></a><a class="code" href="modules_8h.html#file_5Fcache">00065</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a>;
-<a name="l00066"></a>00066
-<a name="l00069"></a>00069 <span class="keyword">typedef</span> std::deque&lt;std::string&gt; <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a>;
-<a name="l00070"></a><a class="code" href="modules_8h.html#string_5Flist">00070</a> <span class="keyword">typedef</span> <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> <a class="code" href="modules_8h.html#string_5Flist">string_list</a>;
-<a name="l00071"></a>00071
-<a name="l00074"></a><a class="code" href="modules_8h.html#chanuserlist">00074</a> <span class="keyword">typedef</span> std::deque&lt;userrec*&gt; <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a>;
-<a name="l00075"></a>00075
+<a name="l00065"></a>00065 <span class="keyword">class </span><a class="code" href="classServer.html">Server</a>;
+<a name="l00066"></a><a class="code" href="modules_8h.html#file_5Fcache">00066</a> <span class="keyword">class </span><a class="code" href="classServerConfig.html">ServerConfig</a>;
+<a name="l00067"></a>00067
+<a name="l00070"></a>00070 <span class="keyword">typedef</span> std::deque&lt;std::string&gt; <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a>;
+<a name="l00071"></a><a class="code" href="modules_8h.html#string_5Flist">00071</a> <span class="keyword">typedef</span> <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> <a class="code" href="modules_8h.html#string_5Flist">string_list</a>;
+<a name="l00072"></a>00072
+<a name="l00075"></a><a class="code" href="modules_8h.html#chanuserlist">00075</a> <span class="keyword">typedef</span> std::deque&lt;userrec*&gt; <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a>;
<a name="l00076"></a>00076
-<a name="l00077"></a>00077 <span class="comment">// This #define allows us to call a method in all</span>
-<a name="l00078"></a>00078 <span class="comment">// loaded modules in a readable simple way, e.g.:</span>
-<a name="l00079"></a>00079 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span>
-<a name="l00080"></a>00080
-<a name="l00081"></a><a class="code" href="modules_8h.html#FOREACH_5FMOD">00081</a> <span class="preprocessor">#define FOREACH_MOD for (int _i = 0; _i &lt;= MODCOUNT; _i++) modules[_i]-&gt;</span>
-<a name="l00082"></a>00082 <span class="preprocessor"></span>
-<a name="l00083"></a>00083 <span class="comment">// This define is similar to the one above but returns a result in MOD_RESULT.</span>
-<a name="l00084"></a>00084 <span class="comment">// The first module to return a nonzero result is the value to be accepted,</span>
-<a name="l00085"></a>00085 <span class="comment">// and any modules after are ignored.</span>
-<a name="l00086"></a>00086
-<a name="l00087"></a>00087 <span class="comment">// *********************************************************************************************</span>
-<a name="l00088"></a>00088
-<a name="l00089"></a><a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">00089</a> <span class="preprocessor">#define FOREACH_RESULT(x) { MOD_RESULT = 0; \</span>
-<a name="l00090"></a>00090 <span class="preprocessor"> for (int _i = 0; _i &lt;= MODCOUNT; _i++) { \</span>
-<a name="l00091"></a>00091 <span class="preprocessor"> int res = modules[_i]-&gt;x ; \</span>
-<a name="l00092"></a>00092 <span class="preprocessor"> if (res != 0) { \</span>
-<a name="l00093"></a>00093 <span class="preprocessor"> MOD_RESULT = res; \</span>
-<a name="l00094"></a>00094 <span class="preprocessor"> break; \</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="preprocessor"></span>
-<a name="l00099"></a>00099 <span class="comment">// *********************************************************************************************</span>
-<a name="l00100"></a>00100
-<a name="l00101"></a><a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">00101</a> <span class="preprocessor">#define FD_MAGIC_NUMBER -42</span>
-<a name="l00102"></a>00102 <span class="preprocessor"></span>
-<a name="l00103"></a>00103 <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, <a class="code" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source);
-<a name="l00104"></a>00104 <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="l00077"></a>00077
+<a name="l00078"></a>00078 <span class="comment">// This #define allows us to call a method in all</span>
+<a name="l00079"></a>00079 <span class="comment">// loaded modules in a readable simple way, e.g.:</span>
+<a name="l00080"></a>00080 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span>
+<a name="l00081"></a>00081
+<a name="l00082"></a><a class="code" href="modules_8h.html#FOREACH_5FMOD">00082</a> <span class="preprocessor">#define FOREACH_MOD for (int _i = 0; _i &lt;= MODCOUNT; _i++) modules[_i]-&gt;</span>
+<a name="l00083"></a>00083 <span class="preprocessor"></span>
+<a name="l00084"></a>00084 <span class="comment">// This define is similar to the one above but returns a result in MOD_RESULT.</span>
+<a name="l00085"></a>00085 <span class="comment">// The first module to return a nonzero result is the value to be accepted,</span>
+<a name="l00086"></a>00086 <span class="comment">// and any modules after are ignored.</span>
+<a name="l00087"></a>00087
+<a name="l00088"></a>00088 <span class="comment">// *********************************************************************************************</span>
+<a name="l00089"></a>00089
+<a name="l00090"></a><a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">00090</a> <span class="preprocessor">#define FOREACH_RESULT(x) { MOD_RESULT = 0; \</span>
+<a name="l00091"></a>00091 <span class="preprocessor"> for (int _i = 0; _i &lt;= MODCOUNT; _i++) { \</span>
+<a name="l00092"></a>00092 <span class="preprocessor"> int res = modules[_i]-&gt;x ; \</span>
+<a name="l00093"></a>00093 <span class="preprocessor"> if (res != 0) { \</span>
+<a name="l00094"></a>00094 <span class="preprocessor"> MOD_RESULT = res; \</span>
+<a name="l00095"></a>00095 <span class="preprocessor"> break; \</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="preprocessor"> } </span>
+<a name="l00099"></a>00099 <span class="preprocessor"></span>
+<a name="l00100"></a>00100 <span class="comment">// *********************************************************************************************</span>
+<a name="l00101"></a>00101
+<a name="l00102"></a><a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">00102</a> <span class="preprocessor">#define FD_MAGIC_NUMBER -42</span>
+<a name="l00103"></a>00103 <span class="preprocessor"></span>
+<a name="l00104"></a>00104 <span class="comment">// useful macros</span>
<a name="l00105"></a>00105
-<a name="l00106"></a>00106 <span class="comment">// class Version holds the version information of a Module, returned</span>
-<a name="l00107"></a>00107 <span class="comment">// by Module::GetVersion (thanks RD)</span>
-<a name="l00108"></a>00108
-<a name="l00113"></a><a class="code" href="classVersion.html">00113</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="l00114"></a>00114 {
-<a name="l00115"></a>00115 <span class="keyword">public</span>:
-<a name="l00116"></a><a class="code" href="classVersion.html#Revision">00116</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="l00117"></a>00117 <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="l00118"></a>00118 };
-<a name="l00119"></a>00119
-<a name="l00125"></a><a class="code" href="classAdmin.html">00125</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="l00126"></a>00126 {
-<a name="l00127"></a>00127 <span class="keyword">public</span>:
-<a name="l00128"></a><a class="code" href="classAdmin.html#Nick">00128</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="l00129"></a>00129 <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="l00130"></a>00130 };
-<a name="l00131"></a>00131
-<a name="l00132"></a>00132
-<a name="l00133"></a>00133 <span class="comment">// Forward-delacare module for ModuleMessage etc</span>
-<a name="l00134"></a>00134 <span class="keyword">class </span><a class="code" href="classModule.html">Module</a>;
-<a name="l00135"></a>00135
-<a name="l00136"></a>00136 <span class="comment">// Thanks to Rob (from anope) for the idea of this message passing API</span>
-<a name="l00137"></a>00137 <span class="comment">// (its been done before, but this seemed a very neat and tidy way...</span>
-<a name="l00138"></a>00138
-<a name="l00143"></a><a class="code" href="classModuleMessage.html">00143</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="l00106"></a><a class="code" href="modules_8h.html#IS_5FLOCAL_28x_29">00106</a> <span class="preprocessor">#define IS_LOCAL(x) (x-&gt;fd &gt; -1)</span>
+<a name="l00107"></a><a class="code" href="modules_8h.html#IS_5FREMOTE_28x_29">00107</a> <span class="preprocessor"></span><span class="preprocessor">#define IS_REMOTE(x) (x-&gt;fd &lt; 0)</span>
+<a name="l00108"></a><a class="code" href="modules_8h.html#IS_5FMODULE_5FCREATED_28x_29">00108</a> <span class="preprocessor"></span><span class="preprocessor">#define IS_MODULE_CREATED(x) (x-&gt;fd == FD_MAGIC_NUMBER)</span>
+<a name="l00109"></a>00109 <span class="preprocessor"></span>
+<a name="l00110"></a>00110 <span class="comment">// flags for use with WriteMode</span>
+<a name="l00111"></a>00111
+<a name="l00112"></a><a class="code" href="modules_8h.html#WM_5FAND">00112</a> <span class="preprocessor">#define WM_AND 1</span>
+<a name="l00113"></a><a class="code" href="modules_8h.html#WM_5FOR">00113</a> <span class="preprocessor"></span><span class="preprocessor">#define WM_OR 2</span>
+<a name="l00114"></a>00114 <span class="preprocessor"></span>
+<a name="l00115"></a>00115 <span class="comment">// flags for use with OnUserPreMessage and OnUserPreNotice</span>
+<a name="l00116"></a>00116
+<a name="l00117"></a><a class="code" href="modules_8h.html#TYPE_5FUSER">00117</a> <span class="preprocessor">#define TYPE_USER 1</span>
+<a name="l00118"></a><a class="code" href="modules_8h.html#TYPE_5FCHANNEL">00118</a> <span class="preprocessor"></span><span class="preprocessor">#define TYPE_CHANNEL 2</span>
+<a name="l00119"></a><a class="code" href="modules_8h.html#TYPE_5FSERVER">00119</a> <span class="preprocessor"></span><span class="preprocessor">#define TYPE_SERVER 3</span>
+<a name="l00120"></a>00120 <span class="preprocessor"></span>
+<a name="l00121"></a>00121 <span class="comment">/*extern void createcommand(char* cmd, handlerfunc f, char flags, int minparams, char* source);</span>
+<a name="l00122"></a>00122 <span class="comment">extern void server_mode(char **parameters, int pcnt, userrec *user);*/</span>
+<a name="l00123"></a>00123
+<a name="l00124"></a>00124 <span class="comment">// class Version holds the version information of a Module, returned</span>
+<a name="l00125"></a>00125 <span class="comment">// by Module::GetVersion (thanks RD)</span>
+<a name="l00126"></a>00126
+<a name="l00131"></a><a class="code" href="classVersion.html">00131</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="l00132"></a>00132 {
+<a name="l00133"></a>00133 <span class="keyword">public</span>:
+<a name="l00134"></a><a class="code" href="classVersion.html#Revision">00134</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="l00135"></a>00135 <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="l00136"></a>00136 };
+<a name="l00137"></a>00137
+<a name="l00143"></a><a class="code" href="classAdmin.html">00143</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="l00144"></a>00144 {
<a name="l00145"></a>00145 <span class="keyword">public</span>:
-<a name="l00148"></a>00148 <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="l00149"></a><a class="code" href="classModuleMessage.html#_7EModuleMessage_28_29">00149</a> <span class="keyword">virtual</span> <a class="code" href="classModuleMessage.html#_7EModuleMessage_28_29">~ModuleMessage</a>() {};
-<a name="l00150"></a>00150 };
-<a name="l00151"></a>00151
-<a name="l00157"></a><a class="code" href="classRequest.html">00157</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="l00158"></a>00158 {
-<a name="l00159"></a>00159 <span class="keyword">protected</span>:
-<a name="l00162"></a><a class="code" href="classRequest.html#data">00162</a> <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#data">data</a>;
-<a name="l00166"></a><a class="code" href="classRequest.html#source">00166</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#source">source</a>;
-<a name="l00169"></a><a class="code" href="classRequest.html#dest">00169</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#dest">dest</a>;
-<a name="l00170"></a>00170 <span class="keyword">public</span>:
-<a name="l00173"></a>00173 <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="l00176"></a>00176 <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#GetData_28_29">GetData</a>();
-<a name="l00179"></a>00179 <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetSource_28_29">GetSource</a>();
-<a name="l00182"></a>00182 <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetDest_28_29">GetDest</a>();
-<a name="l00188"></a>00188 <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#Send_28_29">Send</a>();
-<a name="l00189"></a>00189 };
-<a name="l00190"></a>00190
-<a name="l00191"></a>00191
-<a name="l00197"></a><a class="code" href="classEvent.html">00197</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="l00198"></a>00198 {
-<a name="l00199"></a>00199 <span class="keyword">protected</span>:
-<a name="l00202"></a><a class="code" href="classEvent.html#data">00202</a> <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#data">data</a>;
-<a name="l00206"></a><a class="code" href="classEvent.html#source">00206</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#source">source</a>;
-<a name="l00211"></a><a class="code" href="classEvent.html#id">00211</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#id">id</a>;
-<a name="l00212"></a>00212 <span class="keyword">public</span>:
-<a name="l00215"></a>00215 <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="l00218"></a>00218 <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#GetData_28_29">GetData</a>();
-<a name="l00221"></a>00221 <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#GetSource_28_29">GetSource</a>();
-<a name="l00225"></a>00225 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#GetEventID_28_29">GetEventID</a>();
-<a name="l00230"></a>00230 <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#Send_28_29">Send</a>();
-<a name="l00231"></a>00231 };
-<a name="l00232"></a>00232
-<a name="l00236"></a><a class="code" href="classExtMode.html">00236</a> <span class="keyword">class </span><a class="code" href="classExtMode.html">ExtMode</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
-<a name="l00237"></a>00237 {
-<a name="l00238"></a>00238 <span class="keyword">public</span>:
-<a name="l00239"></a><a class="code" href="classExtMode.html#modechar">00239</a> <span class="keywordtype">char</span> <a class="code" href="classExtMode.html#modechar">modechar</a>;
-<a name="l00240"></a><a class="code" href="classExtMode.html#type">00240</a> <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#type">type</a>;
-<a name="l00241"></a><a class="code" href="classExtMode.html#needsoper">00241</a> <span class="keywordtype">bool</span> <a class="code" href="classExtMode.html#needsoper">needsoper</a>;
-<a name="l00242"></a><a class="code" href="classExtMode.html#params_5Fwhen_5Fon">00242</a> <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#params_5Fwhen_5Fon">params_when_on</a>;
-<a name="l00243"></a><a class="code" href="classExtMode.html#params_5Fwhen_5Foff">00243</a> <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#params_5Fwhen_5Foff">params_when_off</a>;
-<a name="l00244"></a><a class="code" href="classExtMode.html#list">00244</a> <span class="keywordtype">bool</span> <a class="code" href="classExtMode.html#list">list</a>;
-<a name="l00245"></a><a class="code" href="classExtMode.html#ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29">00245</a> <a class="code" href="classExtMode.html#ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29">ExtMode</a>(<span class="keywordtype">char</span> mc, <span class="keywordtype">int</span> ty, <span class="keywordtype">bool</span> oper, <span class="keywordtype">int</span> p_on, <span class="keywordtype">int</span> p_off) : <a class="code" href="classExtMode.html#modechar">modechar</a>(mc), <a class="code" href="classExtMode.html#type">type</a>(ty), <a class="code" href="classExtMode.html#needsoper">needsoper</a>(oper), <a class="code" href="classExtMode.html#params_5Fwhen_5Fon">params_when_on</a>(p_on), <a class="code" href="classExtMode.html#params_5Fwhen_5Foff">params_when_off</a>(p_off) { };
-<a name="l00246"></a>00246 };
-<a name="l00247"></a>00247
-<a name="l00248"></a>00248
-<a name="l00254"></a><a class="code" href="classModule.html">00254</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="l00146"></a><a class="code" href="classAdmin.html#Nick">00146</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="l00147"></a>00147 <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="l00148"></a>00148 };
+<a name="l00149"></a>00149
+<a name="l00150"></a>00150
+<a name="l00151"></a>00151 <span class="comment">// Forward-delacare module for ModuleMessage etc</span>
+<a name="l00152"></a>00152 <span class="keyword">class </span><a class="code" href="classModule.html">Module</a>;
+<a name="l00153"></a>00153
+<a name="l00154"></a>00154 <span class="comment">// Thanks to Rob (from anope) for the idea of this message passing API</span>
+<a name="l00155"></a>00155 <span class="comment">// (its been done before, but this seemed a very neat and tidy way...</span>
+<a name="l00156"></a>00156
+<a name="l00161"></a><a class="code" href="classModuleMessage.html">00161</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="l00162"></a>00162 {
+<a name="l00163"></a>00163 <span class="keyword">public</span>:
+<a name="l00166"></a>00166 <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="l00167"></a><a class="code" href="classModuleMessage.html#_7EModuleMessage_28_29">00167</a> <span class="keyword">virtual</span> <a class="code" href="classModuleMessage.html#_7EModuleMessage_28_29">~ModuleMessage</a>() {};
+<a name="l00168"></a>00168 };
+<a name="l00169"></a>00169
+<a name="l00175"></a><a class="code" href="classRequest.html">00175</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="l00176"></a>00176 {
+<a name="l00177"></a>00177 <span class="keyword">protected</span>:
+<a name="l00180"></a><a class="code" href="classRequest.html#data">00180</a> <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#data">data</a>;
+<a name="l00184"></a><a class="code" href="classRequest.html#source">00184</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#source">source</a>;
+<a name="l00187"></a><a class="code" href="classRequest.html#dest">00187</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#dest">dest</a>;
+<a name="l00188"></a>00188 <span class="keyword">public</span>:
+<a name="l00191"></a>00191 <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="l00194"></a>00194 <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#GetData_28_29">GetData</a>();
+<a name="l00197"></a>00197 <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetSource_28_29">GetSource</a>();
+<a name="l00200"></a>00200 <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetDest_28_29">GetDest</a>();
+<a name="l00206"></a>00206 <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#Send_28_29">Send</a>();
+<a name="l00207"></a>00207 };
+<a name="l00208"></a>00208
+<a name="l00209"></a>00209
+<a name="l00215"></a><a class="code" href="classEvent.html">00215</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="l00216"></a>00216 {
+<a name="l00217"></a>00217 <span class="keyword">protected</span>:
+<a name="l00220"></a><a class="code" href="classEvent.html#data">00220</a> <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#data">data</a>;
+<a name="l00224"></a><a class="code" href="classEvent.html#source">00224</a> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#source">source</a>;
+<a name="l00229"></a><a class="code" href="classEvent.html#id">00229</a> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#id">id</a>;
+<a name="l00230"></a>00230 <span class="keyword">public</span>:
+<a name="l00233"></a>00233 <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="l00236"></a>00236 <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#GetData_28_29">GetData</a>();
+<a name="l00239"></a>00239 <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#GetSource_28_29">GetSource</a>();
+<a name="l00243"></a>00243 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#GetEventID_28_29">GetEventID</a>();
+<a name="l00248"></a>00248 <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#Send_28_29">Send</a>();
+<a name="l00249"></a>00249 };
+<a name="l00250"></a>00250
+<a name="l00254"></a><a class="code" href="classExtMode.html">00254</a> <span class="keyword">class </span><a class="code" href="classExtMode.html">ExtMode</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
<a name="l00255"></a>00255 {
<a name="l00256"></a>00256 <span class="keyword">public</span>:
-<a name="l00257"></a>00257
-<a name="l00262"></a>00262 <a class="code" href="classModule.html#Module_28Server_20_2AMe_29">Module</a>(<a class="code" href="classServer.html">Server</a>* Me);
-<a name="l00263"></a>00263
-<a name="l00267"></a>00267 <span class="keyword">virtual</span> <a class="code" href="classModule.html#_7EModule_28_29">~Module</a>();
-<a name="l00268"></a>00268
-<a name="l00273"></a>00273 <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="l00274"></a>00274
-<a name="l00279"></a>00279 <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="l00280"></a>00280
-<a name="l00288"></a>00288 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> message);
-<a name="l00289"></a>00289
-<a name="l00296"></a>00296 <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="l00297"></a>00297
-<a name="l00304"></a>00304 <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="l00305"></a>00305
-<a name="l00312"></a>00312 <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="l00313"></a>00313
-<a name="l00321"></a>00321 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRehash_28std_3A_3Astring_20parameter_29">OnRehash</a>(<a class="code" href="namespaceirc.html#string">std::string</a> parameter);
-<a name="l00322"></a>00322
-<a name="l00334"></a>00334 <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> &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l00335"></a>00335
-<a name="l00351"></a>00351 <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> &amp;params);
-<a name="l00352"></a>00352
-<a name="l00369"></a>00369 <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="l00257"></a><a class="code" href="classExtMode.html#modechar">00257</a> <span class="keywordtype">char</span> <a class="code" href="classExtMode.html#modechar">modechar</a>;
+<a name="l00258"></a><a class="code" href="classExtMode.html#type">00258</a> <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#type">type</a>;
+<a name="l00259"></a><a class="code" href="classExtMode.html#needsoper">00259</a> <span class="keywordtype">bool</span> <a class="code" href="classExtMode.html#needsoper">needsoper</a>;
+<a name="l00260"></a><a class="code" href="classExtMode.html#params_5Fwhen_5Fon">00260</a> <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#params_5Fwhen_5Fon">params_when_on</a>;
+<a name="l00261"></a><a class="code" href="classExtMode.html#params_5Fwhen_5Foff">00261</a> <span class="keywordtype">int</span> <a class="code" href="classExtMode.html#params_5Fwhen_5Foff">params_when_off</a>;
+<a name="l00262"></a><a class="code" href="classExtMode.html#list">00262</a> <span class="keywordtype">bool</span> <a class="code" href="classExtMode.html#list">list</a>;
+<a name="l00263"></a><a class="code" href="classExtMode.html#ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29">00263</a> <a class="code" href="classExtMode.html#ExtMode_28char_20mc_2C_20int_20ty_2C_20bool_20oper_2C_20int_20p_5Fon_2C_20int_20p_5Foff_29">ExtMode</a>(<span class="keywordtype">char</span> mc, <span class="keywordtype">int</span> ty, <span class="keywordtype">bool</span> oper, <span class="keywordtype">int</span> p_on, <span class="keywordtype">int</span> p_off) : <a class="code" href="classExtMode.html#modechar">modechar</a>(mc), <a class="code" href="classExtMode.html#type">type</a>(ty), <a class="code" href="classExtMode.html#needsoper">needsoper</a>(oper), <a class="code" href="classExtMode.html#params_5Fwhen_5Fon">params_when_on</a>(p_on), <a class="code" href="classExtMode.html#params_5Fwhen_5Foff">params_when_off</a>(p_off) { };
+<a name="l00264"></a>00264 };
+<a name="l00265"></a>00265
+<a name="l00266"></a>00266
+<a name="l00272"></a><a class="code" href="classModule.html">00272</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="l00273"></a>00273 {
+<a name="l00274"></a>00274 <span class="keyword">public</span>:
+<a name="l00275"></a>00275
+<a name="l00280"></a>00280 <a class="code" href="classModule.html#Module_28Server_20_2AMe_29">Module</a>(<a class="code" href="classServer.html">Server</a>* Me);
+<a name="l00281"></a>00281
+<a name="l00285"></a>00285 <span class="keyword">virtual</span> <a class="code" href="classModule.html#_7EModule_28_29">~Module</a>();
+<a name="l00286"></a>00286
+<a name="l00291"></a>00291 <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="l00292"></a>00292
+<a name="l00297"></a>00297 <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="l00298"></a>00298
+<a name="l00306"></a>00306 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> message);
+<a name="l00307"></a>00307
+<a name="l00314"></a>00314 <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="l00315"></a>00315
+<a name="l00322"></a>00322 <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="l00323"></a>00323
+<a name="l00330"></a>00330 <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="l00331"></a>00331
+<a name="l00339"></a>00339 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRehash_28std_3A_3Astring_20parameter_29">OnRehash</a>(<a class="code" href="namespaceirc.html#string">std::string</a> parameter);
+<a name="l00340"></a>00340
+<a name="l00352"></a>00352 <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> &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l00353"></a>00353
+<a name="l00369"></a>00369 <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> &amp;params);
<a name="l00370"></a>00370
-<a name="l00381"></a>00381 <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="l00382"></a>00382
-<a name="l00391"></a>00391 <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="l00392"></a>00392
-<a name="l00399"></a>00399 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_2C_20std_3A_3Astring_20opertype_29">OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> opertype);
-<a name="l00400"></a>00400
-<a name="l00411"></a>00411 <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="l00412"></a>00412
-<a name="l00419"></a>00419 <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="l00420"></a>00420
-<a name="l00430"></a>00430 <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="l00431"></a>00431
-<a name="l00439"></a>00439 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">OnUserInvite</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="l00440"></a>00440
-<a name="l00454"></a>00454 <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> &amp;text);
-<a name="l00455"></a>00455
-<a name="l00472"></a>00472 <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> &amp;text);
-<a name="l00473"></a>00473
-<a name="l00484"></a>00484 <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="l00485"></a>00485
-<a name="l00494"></a>00494 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">OnUserMessage</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="l00495"></a>00495
-<a name="l00504"></a>00504 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">OnUserNotice</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="l00505"></a>00505
-<a name="l00515"></a>00515 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnMode_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">OnMode</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="l00516"></a>00516
-<a name="l00525"></a>00525 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGetServerDescription_28std_3A_3Astring_20servername_2C_20std_3A_3Astring_20_26description_29">OnGetServerDescription</a>(<a class="code" href="namespaceirc.html#string">std::string</a> servername,<a class="code" href="namespaceirc.html#string">std::string</a> &amp;description);
-<a name="l00526"></a>00526
-<a name="l00539"></a>00539 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncUser_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">OnSyncUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque);
-<a name="l00540"></a>00540
-<a name="l00556"></a>00556 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncChannel_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">OnSyncChannel</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque);
-<a name="l00557"></a>00557
-<a name="l00558"></a>00558 <span class="comment">/* Allows modules to syncronize metadata related to channels over the network during a netburst.</span>
-<a name="l00559"></a>00559 <span class="comment"> * Whenever the linking module wants to send out data, but doesnt know what the data</span>
-<a name="l00560"></a>00560 <span class="comment"> * represents (e.g. it is Extensible metadata, added to a userrec or chanrec by a module) then</span>
-<a name="l00561"></a>00561 <span class="comment"> * this method is called.You should use the ProtoSendMetaData function after you've</span>
-<a name="l00562"></a>00562 <span class="comment"> * correctly decided how the data should be represented, to send the metadata on its way if it belongs</span>
-<a name="l00563"></a>00563 <span class="comment"> * to your module. For a good example of how to use this method, see src/modules/m_swhois.cpp.</span>
-<a name="l00564"></a>00564 <span class="comment"> * @param chan The channel whos metadata is being syncronized</span>
-<a name="l00565"></a>00565 <span class="comment"> * @param proto A pointer to the module handling network protocol</span>
-<a name="l00566"></a>00566 <span class="comment"> * @param opaque An opaque pointer set by the protocol module, should not be modified!</span>
-<a name="l00567"></a>00567 <span class="comment"> * @param extname The extensions name which is being searched for</span>
-<a name="l00568"></a>00568 <span class="comment"> */</span>
-<a name="l00569"></a>00569 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncChannelMetaData_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">OnSyncChannelMetaData</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname);
-<a name="l00570"></a>00570
-<a name="l00571"></a>00571 <span class="comment">/* Allows modules to syncronize metadata related to users over the network during a netburst.</span>
-<a name="l00572"></a>00572 <span class="comment"> * Whenever the linking module wants to send out data, but doesnt know what the data</span>
-<a name="l00573"></a>00573 <span class="comment"> * represents (e.g. it is Extensible metadata, added to a userrec or chanrec by a module) then</span>
-<a name="l00574"></a>00574 <span class="comment"> * this method is called. You should use the ProtoSendMetaData function after you've</span>
-<a name="l00575"></a>00575 <span class="comment"> * correctly decided how the data should be represented, to send the metadata on its way if</span>
-<a name="l00576"></a>00576 <span class="comment"> * if it belongs to your module.</span>
-<a name="l00577"></a>00577 <span class="comment"> * @param user The user whos metadata is being syncronized</span>
-<a name="l00578"></a>00578 <span class="comment"> * @param proto A pointer to the module handling network protocol</span>
-<a name="l00579"></a>00579 <span class="comment"> * @param opaque An opaque pointer set by the protocol module, should not be modified!</span>
-<a name="l00580"></a>00580 <span class="comment"> * @param extname The extensions name which is being searched for</span>
-<a name="l00581"></a>00581 <span class="comment"> */</span>
-<a name="l00582"></a>00582 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncUserMetaData_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">OnSyncUserMetaData</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname);
-<a name="l00583"></a>00583
-<a name="l00591"></a>00591 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDecodeMetaData_28int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">OnDecodeMetaData</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata);
-<a name="l00592"></a>00592
-<a name="l00606"></a>00606 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">ProtoSendMode</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> modeline);
-<a name="l00607"></a>00607
-<a name="l00622"></a>00622 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">ProtoSendMetaData</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata);
-<a name="l00623"></a>00623
-<a name="l00628"></a>00628 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnWallops_28userrec_20_2Auser_2C_20std_3A_3Astring_20text_29">OnWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> text);
-<a name="l00629"></a>00629
-<a name="l00635"></a>00635 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">OnChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost);
-<a name="l00636"></a>00636
-<a name="l00642"></a>00642 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnChangeName_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">OnChangeName</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos);
-<a name="l00643"></a>00643
-<a name="l00651"></a>00651 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddGLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">OnAddGLine</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="classuserrec.html">userrec</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="l00652"></a>00652
-<a name="l00660"></a>00660 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddZLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipmask_29">OnAddZLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask);
+<a name="l00387"></a>00387 <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="l00388"></a>00388
+<a name="l00399"></a>00399 <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="l00400"></a>00400
+<a name="l00409"></a>00409 <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="l00410"></a>00410
+<a name="l00417"></a>00417 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_2C_20std_3A_3Astring_20opertype_29">OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> opertype);
+<a name="l00418"></a>00418
+<a name="l00429"></a>00429 <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="l00430"></a>00430
+<a name="l00437"></a>00437 <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="l00438"></a>00438
+<a name="l00448"></a>00448 <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="l00449"></a>00449
+<a name="l00457"></a>00457 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">OnUserInvite</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="l00458"></a>00458
+<a name="l00472"></a>00472 <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> &amp;text);
+<a name="l00473"></a>00473
+<a name="l00490"></a>00490 <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> &amp;text);
+<a name="l00491"></a>00491
+<a name="l00502"></a>00502 <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="l00503"></a>00503
+<a name="l00512"></a>00512 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">OnUserMessage</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="l00513"></a>00513
+<a name="l00522"></a>00522 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">OnUserNotice</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="l00523"></a>00523
+<a name="l00533"></a>00533 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnMode_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20text_29">OnMode</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="l00534"></a>00534
+<a name="l00543"></a>00543 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGetServerDescription_28std_3A_3Astring_20servername_2C_20std_3A_3Astring_20_26description_29">OnGetServerDescription</a>(<a class="code" href="namespaceirc.html#string">std::string</a> servername,<a class="code" href="namespaceirc.html#string">std::string</a> &amp;description);
+<a name="l00544"></a>00544
+<a name="l00557"></a>00557 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncUser_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">OnSyncUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque);
+<a name="l00558"></a>00558
+<a name="l00574"></a>00574 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncChannel_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_29">OnSyncChannel</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto, <span class="keywordtype">void</span>* opaque);
+<a name="l00575"></a>00575
+<a name="l00576"></a>00576 <span class="comment">/* Allows modules to syncronize metadata related to channels over the network during a netburst.</span>
+<a name="l00577"></a>00577 <span class="comment"> * Whenever the linking module wants to send out data, but doesnt know what the data</span>
+<a name="l00578"></a>00578 <span class="comment"> * represents (e.g. it is Extensible metadata, added to a userrec or chanrec by a module) then</span>
+<a name="l00579"></a>00579 <span class="comment"> * this method is called.You should use the ProtoSendMetaData function after you've</span>
+<a name="l00580"></a>00580 <span class="comment"> * correctly decided how the data should be represented, to send the metadata on its way if it belongs</span>
+<a name="l00581"></a>00581 <span class="comment"> * to your module. For a good example of how to use this method, see src/modules/m_swhois.cpp.</span>
+<a name="l00582"></a>00582 <span class="comment"> * @param chan The channel whos metadata is being syncronized</span>
+<a name="l00583"></a>00583 <span class="comment"> * @param proto A pointer to the module handling network protocol</span>
+<a name="l00584"></a>00584 <span class="comment"> * @param opaque An opaque pointer set by the protocol module, should not be modified!</span>
+<a name="l00585"></a>00585 <span class="comment"> * @param extname The extensions name which is being searched for</span>
+<a name="l00586"></a>00586 <span class="comment"> */</span>
+<a name="l00587"></a>00587 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncChannelMetaData_28chanrec_20_2Achan_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">OnSyncChannelMetaData</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname);
+<a name="l00588"></a>00588
+<a name="l00589"></a>00589 <span class="comment">/* Allows modules to syncronize metadata related to users over the network during a netburst.</span>
+<a name="l00590"></a>00590 <span class="comment"> * Whenever the linking module wants to send out data, but doesnt know what the data</span>
+<a name="l00591"></a>00591 <span class="comment"> * represents (e.g. it is Extensible metadata, added to a userrec or chanrec by a module) then</span>
+<a name="l00592"></a>00592 <span class="comment"> * this method is called. You should use the ProtoSendMetaData function after you've</span>
+<a name="l00593"></a>00593 <span class="comment"> * correctly decided how the data should be represented, to send the metadata on its way if</span>
+<a name="l00594"></a>00594 <span class="comment"> * if it belongs to your module.</span>
+<a name="l00595"></a>00595 <span class="comment"> * @param user The user whos metadata is being syncronized</span>
+<a name="l00596"></a>00596 <span class="comment"> * @param proto A pointer to the module handling network protocol</span>
+<a name="l00597"></a>00597 <span class="comment"> * @param opaque An opaque pointer set by the protocol module, should not be modified!</span>
+<a name="l00598"></a>00598 <span class="comment"> * @param extname The extensions name which is being searched for</span>
+<a name="l00599"></a>00599 <span class="comment"> */</span>
+<a name="l00600"></a>00600 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSyncUserMetaData_28userrec_20_2Auser_2C_20Module_20_2Aproto_2C_20void_20_2Aopaque_2C_20std_3A_3Astring_20extname_29">OnSyncUserMetaData</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classModule.html">Module</a>* proto,<span class="keywordtype">void</span>* opaque, <a class="code" href="namespaceirc.html#string">std::string</a> extname);
+<a name="l00601"></a>00601
+<a name="l00609"></a>00609 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDecodeMetaData_28int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">OnDecodeMetaData</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata);
+<a name="l00610"></a>00610
+<a name="l00624"></a>00624 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#ProtoSendMode_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20modeline_29">ProtoSendMode</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> modeline);
+<a name="l00625"></a>00625
+<a name="l00640"></a>00640 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#ProtoSendMetaData_28void_20_2Aopaque_2C_20int_20target_5Ftype_2C_20void_20_2Atarget_2C_20std_3A_3Astring_20extname_2C_20std_3A_3Astring_20extdata_29">ProtoSendMetaData</a>(<span class="keywordtype">void</span>* opaque, <span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* target, <a class="code" href="namespaceirc.html#string">std::string</a> extname, <a class="code" href="namespaceirc.html#string">std::string</a> extdata);
+<a name="l00641"></a>00641
+<a name="l00646"></a>00646 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnWallops_28userrec_20_2Auser_2C_20std_3A_3Astring_20text_29">OnWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> text);
+<a name="l00647"></a>00647
+<a name="l00653"></a>00653 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">OnChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost);
+<a name="l00654"></a>00654
+<a name="l00660"></a>00660 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnChangeName_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">OnChangeName</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos);
<a name="l00661"></a>00661
-<a name="l00669"></a>00669 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddKLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">OnAddKLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</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="l00669"></a>00669 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddGLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">OnAddGLine</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="classuserrec.html">userrec</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="l00670"></a>00670
-<a name="l00678"></a>00678 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddQLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickmask_29">OnAddQLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask);
+<a name="l00678"></a>00678 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddZLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipmask_29">OnAddZLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask);
<a name="l00679"></a>00679
-<a name="l00687"></a>00687 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddELine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">OnAddELine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</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="l00687"></a>00687 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddKLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">OnAddKLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</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="l00688"></a>00688
-<a name="l00694"></a>00694 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelGLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">OnDelGLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l00695"></a>00695
-<a name="l00701"></a>00701 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelZLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20ipmask_29">OnDelZLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask);
-<a name="l00702"></a>00702
-<a name="l00708"></a>00708 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelKLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">OnDelKLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l00709"></a>00709
-<a name="l00715"></a>00715 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelQLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20nickmask_29">OnDelQLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask);
-<a name="l00716"></a>00716
-<a name="l00722"></a>00722 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelELine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">OnDelELine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
-<a name="l00723"></a>00723
-<a name="l00733"></a>00733 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnCleanup_28int_20target_5Ftype_2C_20void_20_2Aitem_29">OnCleanup</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* item);
+<a name="l00696"></a>00696 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddQLine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickmask_29">OnAddQLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask);
+<a name="l00697"></a>00697
+<a name="l00705"></a>00705 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnAddELine_28long_20duration_2C_20userrec_20_2Asource_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">OnAddELine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="classuserrec.html">userrec</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="l00706"></a>00706
+<a name="l00712"></a>00712 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelGLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">OnDelGLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l00713"></a>00713
+<a name="l00719"></a>00719 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelZLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20ipmask_29">OnDelZLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> ipmask);
+<a name="l00720"></a>00720
+<a name="l00726"></a>00726 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelKLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">OnDelKLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l00727"></a>00727
+<a name="l00733"></a>00733 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelQLine_28userrec_20_2Asource_2C_20std_3A_3Astring_20nickmask_29">OnDelQLine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> nickmask);
<a name="l00734"></a>00734
-<a name="l00744"></a>00744 <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="l00745"></a>00745
-<a name="l00771"></a>00771 <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="l00772"></a>00772
-<a name="l00777"></a>00777 <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> &amp;output);
-<a name="l00778"></a>00778
-<a name="l00792"></a>00792 <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="l00793"></a>00793
-<a name="l00799"></a>00799 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRemoteKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">OnRemoteKill</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="l00800"></a>00800
-<a name="l00813"></a>00813 <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="l00814"></a>00814
-<a name="l00827"></a>00827 <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="l00828"></a>00828
-<a name="l00835"></a>00835 <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="l00836"></a>00836
-<a name="l00847"></a>00847 <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="l00848"></a>00848
-<a name="l00864"></a>00864 <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="l00865"></a>00865
-<a name="l00876"></a>00876 <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="l00877"></a>00877
-<a name="l00886"></a>00886 <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="l00887"></a>00887
-<a name="l00900"></a>00900 <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="l00901"></a>00901
-<a name="l00910"></a>00910 <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="l00911"></a>00911
-<a name="l00921"></a>00921 <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="l00922"></a>00922
-<a name="l00931"></a>00931 <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="l00932"></a>00932
-<a name="l00941"></a>00941 <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="l00942"></a>00942
-<a name="l00947"></a>00947 <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="l00948"></a>00948
-<a name="l00955"></a>00955 <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="l00956"></a>00956
-<a name="l00963"></a>00963 <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="l00964"></a>00964
-<a name="l00972"></a>00972 <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="l00973"></a>00973
-<a name="l00980"></a>00980 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnPostLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">OnPostLocalTopicChange</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="l00981"></a>00981
-<a name="l00988"></a>00988 <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="l00989"></a>00989
-<a name="l00997"></a>00997 <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="l00998"></a>00998
-<a name="l01008"></a>01008 <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="l01009"></a>01009
-<a name="l01016"></a>01016 <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="l01017"></a>01017
-<a name="l01023"></a>01023 <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="l01024"></a>01024
-<a name="l01032"></a>01032 <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="l01033"></a>01033
-<a name="l01041"></a>01041 <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="l00740"></a>00740 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnDelELine_28userrec_20_2Asource_2C_20std_3A_3Astring_20hostmask_29">OnDelELine</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
+<a name="l00741"></a>00741
+<a name="l00751"></a>00751 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnCleanup_28int_20target_5Ftype_2C_20void_20_2Aitem_29">OnCleanup</a>(<span class="keywordtype">int</span> target_type, <span class="keywordtype">void</span>* item);
+<a name="l00752"></a>00752
+<a name="l00762"></a>00762 <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="l00763"></a>00763
+<a name="l00789"></a>00789 <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="l00790"></a>00790
+<a name="l00795"></a>00795 <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> &amp;output);
+<a name="l00796"></a>00796
+<a name="l00810"></a>00810 <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="l00811"></a>00811
+<a name="l00817"></a>00817 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRemoteKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">OnRemoteKill</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="l00818"></a>00818
+<a name="l00831"></a>00831 <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="l00832"></a>00832
+<a name="l00845"></a>00845 <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="l00846"></a>00846
+<a name="l00853"></a>00853 <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="l00854"></a>00854
+<a name="l00865"></a>00865 <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="l00866"></a>00866
+<a name="l00882"></a>00882 <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="l00883"></a>00883
+<a name="l00894"></a>00894 <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="l00895"></a>00895
+<a name="l00904"></a>00904 <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="l00905"></a>00905
+<a name="l00918"></a>00918 <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="l00919"></a>00919
+<a name="l00928"></a>00928 <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="l00929"></a>00929
+<a name="l00939"></a>00939 <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="l00940"></a>00940
+<a name="l00949"></a>00949 <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="l00950"></a>00950
+<a name="l00959"></a>00959 <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="l00960"></a>00960
+<a name="l00965"></a>00965 <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="l00966"></a>00966
+<a name="l00973"></a>00973 <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="l00974"></a>00974
+<a name="l00981"></a>00981 <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="l00982"></a>00982
+<a name="l00990"></a>00990 <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="l00991"></a>00991
+<a name="l00998"></a>00998 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnPostLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">OnPostLocalTopicChange</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="l00999"></a>00999
+<a name="l01006"></a>01006 <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="l01007"></a>01007
+<a name="l01015"></a>01015 <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="l01016"></a>01016
+<a name="l01026"></a>01026 <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="l01027"></a>01027
+<a name="l01034"></a>01034 <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="l01035"></a>01035
+<a name="l01041"></a>01041 <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="l01042"></a>01042
-<a name="l01052"></a>01052 <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="l01053"></a>01053
-<a name="l01064"></a>01064 <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="l01065"></a>01065
-<a name="l01070"></a>01070 <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="l01050"></a>01050 <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="l01051"></a>01051
+<a name="l01059"></a>01059 <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="l01060"></a>01060
+<a name="l01070"></a>01070 <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="l01071"></a>01071
-<a name="l01087"></a>01087 <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> &amp;readresult);
-<a name="l01088"></a>01088 };
+<a name="l01082"></a>01082 <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="l01083"></a>01083
+<a name="l01088"></a>01088 <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="l01089"></a>01089
-<a name="l01090"></a>01090
-<a name="l01096"></a><a class="code" href="classServer.html">01096</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="l01097"></a>01097 {
-<a name="l01098"></a>01098 <span class="keyword">public</span>:
-<a name="l01102"></a>01102 <a class="code" href="classServer.html#Server_28_29">Server</a>();
-<a name="l01106"></a>01106 <span class="keyword">virtual</span> <a class="code" href="classServer.html#_7EServer_28_29">~Server</a>();
-<a name="l01111"></a>01111 <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="classServer.html#GetConfig_28_29">GetConfig</a>();
-<a name="l01115"></a>01115 <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="l01118"></a>01118 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetVersion_28_29">GetVersion</a>();
-<a name="l01123"></a>01123 <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="l01128"></a>01128 <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="l01133"></a>01133 <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="l01137"></a>01137 <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="l01142"></a>01142 <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="l01157"></a>01157 <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="l01164"></a>01164 <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="l01169"></a>01169 <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="l01177"></a>01177 <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="l01182"></a>01182 <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="l01183"></a>01183
-<a name="l01187"></a>01187 <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="l01191"></a>01191 <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="l01195"></a>01195 <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="l01199"></a>01199 <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="l01203"></a>01203 <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="l01208"></a>01208 <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="l01212"></a>01212 <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="l01215"></a>01215 <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="l01218"></a>01218 <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="l01221"></a>01221 <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="l01227"></a>01227 <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="l01246"></a>01246 <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="l01247"></a>01247
-<a name="l01269"></a>01269 <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="l01270"></a>01270
-<a name="l01288"></a>01288 <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, <a class="code" href="inspircd_8h.html#handlerfunc_29_28char_20_2A_2A_2C_20int_2C_20userrec_20_2A_29">handlerfunc</a> f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source);
-<a name="l01289"></a>01289
-<a name="l01311"></a>01311 <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="l01312"></a>01312
-<a name="l01325"></a>01325 <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="l01326"></a>01326
-<a name="l01332"></a>01332 <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="l01333"></a>01333
-<a name="l01339"></a>01339 <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="l01340"></a>01340
-<a name="l01346"></a>01346 <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="l01347"></a>01347
-<a name="l01358"></a>01358 <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="l01359"></a>01359
-<a name="l01364"></a>01364 <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="l01105"></a>01105 <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> &amp;readresult);
+<a name="l01106"></a>01106 };
+<a name="l01107"></a>01107
+<a name="l01108"></a>01108
+<a name="l01114"></a><a class="code" href="classServer.html">01114</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="l01115"></a>01115 {
+<a name="l01116"></a>01116 <span class="keyword">public</span>:
+<a name="l01120"></a>01120 <a class="code" href="classServer.html#Server_28_29">Server</a>();
+<a name="l01124"></a>01124 <span class="keyword">virtual</span> <a class="code" href="classServer.html#_7EServer_28_29">~Server</a>();
+<a name="l01129"></a>01129 <a class="code" href="classServerConfig.html">ServerConfig</a>* <a class="code" href="classServer.html#GetConfig_28_29">GetConfig</a>();
+<a name="l01133"></a>01133 <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="l01136"></a>01136 <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetVersion_28_29">GetVersion</a>();
+<a name="l01141"></a>01141 <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="l01146"></a>01146 <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="l01151"></a>01151 <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="l01155"></a>01155 <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="l01160"></a>01160 <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="l01175"></a>01175 <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="l01182"></a>01182 <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="l01187"></a>01187 <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="l01195"></a>01195 <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="l01200"></a>01200 <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="l01201"></a>01201
+<a name="l01205"></a>01205 <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="l01209"></a>01209 <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="l01213"></a>01213 <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="l01217"></a>01217 <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="l01221"></a>01221 <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="l01226"></a>01226 <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="l01230"></a>01230 <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="l01233"></a>01233 <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="l01236"></a>01236 <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="l01239"></a>01239 <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="l01245"></a>01245 <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="l01264"></a>01264 <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="l01265"></a>01265
+<a name="l01287"></a>01287 <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="l01288"></a>01288
+<a name="l01306"></a>01306 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28command_5Ft_20_2Af_29">AddCommand</a>(<a class="code" href="classcommand__t.html">command_t</a> *f);
+<a name="l01307"></a>01307
+<a name="l01329"></a>01329 <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="l01330"></a>01330
+<a name="l01343"></a>01343 <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="l01344"></a>01344
+<a name="l01350"></a>01350 <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="l01351"></a>01351
+<a name="l01357"></a>01357 <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="l01358"></a>01358
+<a name="l01364"></a>01364 <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="l01365"></a>01365
-<a name="l01377"></a>01377 <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="l01378"></a>01378
-<a name="l01379"></a>01379 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">IsValidModuleCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
-<a name="l01380"></a>01380
-<a name="l01386"></a>01386 <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="l01387"></a>01387
-<a name="l01393"></a>01393 <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="l01394"></a>01394
-<a name="l01403"></a>01403 <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="l01404"></a>01404
-<a name="l01408"></a>01408 <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="l01409"></a>01409
-<a name="l01416"></a>01416 <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="l01417"></a>01417
-<a name="l01424"></a>01424 <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="l01425"></a>01425
-<a name="l01433"></a>01433 <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="l01434"></a>01434
-<a name="l01442"></a>01442 <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="l01376"></a>01376 <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="l01377"></a>01377
+<a name="l01382"></a>01382 <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="l01383"></a>01383
+<a name="l01395"></a>01395 <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="l01396"></a>01396
+<a name="l01397"></a>01397 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidModuleCommand_28std_3A_3Astring_20commandname_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">IsValidModuleCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
+<a name="l01398"></a>01398
+<a name="l01404"></a>01404 <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="l01405"></a>01405
+<a name="l01411"></a>01411 <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="l01412"></a>01412
+<a name="l01421"></a>01421 <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="l01422"></a>01422
+<a name="l01426"></a>01426 <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="l01427"></a>01427
+<a name="l01434"></a>01434 <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="l01435"></a>01435
+<a name="l01442"></a>01442 <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="l01443"></a>01443
-<a name="l01451"></a>01451 <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="l01451"></a>01451 <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="l01452"></a>01452
-<a name="l01460"></a>01460 <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="l01460"></a>01460 <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="l01461"></a>01461
-<a name="l01469"></a>01469 <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="l01469"></a>01469 <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="l01470"></a>01470
-<a name="l01473"></a>01473 <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="l01474"></a>01474
-<a name="l01477"></a>01477 <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="l01478"></a>01478
-<a name="l01481"></a>01481 <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="l01482"></a>01482
-<a name="l01485"></a>01485 <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="l01486"></a>01486
-<a name="l01489"></a>01489 <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="l01490"></a>01490
-<a name="l01496"></a>01496 <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="l01497"></a>01497
-<a name="l01500"></a>01500 <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="l01501"></a>01501
-<a name="l01506"></a>01506 <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="l01507"></a>01507
-<a name="l01510"></a>01510 <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="l01511"></a>01511
-<a name="l01514"></a>01514 <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="l01478"></a>01478 <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="l01479"></a>01479
+<a name="l01487"></a>01487 <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="l01488"></a>01488
+<a name="l01491"></a>01491 <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="l01492"></a>01492
+<a name="l01495"></a>01495 <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="l01496"></a>01496
+<a name="l01499"></a>01499 <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="l01500"></a>01500
+<a name="l01503"></a>01503 <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="l01504"></a>01504
+<a name="l01507"></a>01507 <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="l01508"></a>01508
+<a name="l01514"></a>01514 <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="l01515"></a>01515
-<a name="l01516"></a>01516 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#RehashServer_28_29">RehashServer</a>();
-<a name="l01517"></a>01517 };
-<a name="l01518"></a>01518
+<a name="l01518"></a>01518 <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="l01519"></a>01519
-<a name="l01520"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">01520</a> <span class="preprocessor">#define CONF_NOT_A_NUMBER 0x000010</span>
-<a name="l01521"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">01521</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_NOT_UNSIGNED 0x000080</span>
-<a name="l01522"></a><a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">01522</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_VALUE_NOT_FOUND 0x000100</span>
-<a name="l01523"></a><a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">01523</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_FILE_NOT_FOUND 0x000200</span>
-<a name="l01524"></a>01524 <span class="preprocessor"></span>
+<a name="l01524"></a>01524 <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="l01525"></a>01525
-<a name="l01532"></a><a class="code" href="classConfigReader.html">01532</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="l01533"></a>01533 {
-<a name="l01534"></a>01534 <span class="keyword">protected</span>:
-<a name="l01540"></a><a class="code" href="classConfigReader.html#cache">01540</a> std::stringstream *<a class="code" href="classConfigReader.html#cache">cache</a>;
-<a name="l01541"></a><a class="code" href="classConfigReader.html#errorlog">01541</a> std::stringstream *<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
-<a name="l01544"></a><a class="code" href="classConfigReader.html#readerror">01544</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#readerror">readerror</a>;
-<a name="l01545"></a><a class="code" href="classConfigReader.html#error">01545</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#error">error</a>;
-<a name="l01546"></a>01546
-<a name="l01547"></a>01547 <span class="keyword">public</span>:
-<a name="l01552"></a>01552 <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>(); <span class="comment">// default constructor reads ircd.conf</span>
-<a name="l01556"></a>01556 <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="l01560"></a>01560 <span class="comment"></span> <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">~ConfigReader</a>();
-<a name="l01565"></a>01565 <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="l01571"></a>01571 <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="l01580"></a>01580 <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="l01585"></a>01585 <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">GetError</a>();
-<a name="l01592"></a>01592 <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="l01597"></a>01597 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">Verify</a>();
-<a name="l01604"></a>01604 <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="l01605"></a>01605
-<a name="l01611"></a>01611 <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="l01612"></a>01612 };
-<a name="l01613"></a>01613
-<a name="l01614"></a>01614
-<a name="l01615"></a>01615
-<a name="l01621"></a><a class="code" href="classFileReader.html">01621</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="l01622"></a>01622 {
-<a name="l01623"></a><a class="code" href="classFileReader.html#fc">01623</a> <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classFileReader.html#fc">fc</a>;
-<a name="l01624"></a>01624 <span class="keyword">public</span>:
-<a name="l01629"></a>01629 <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>();
-<a name="l01630"></a>01630
-<a name="l01636"></a>01636 <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
-<a name="l01637"></a>01637
-<a name="l01641"></a>01641 <a class="code" href="classFileReader.html#_7EFileReader_28_29">~FileReader</a>();
-<a name="l01642"></a>01642
-<a name="l01648"></a>01648 <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="l01649"></a>01649
-<a name="l01653"></a>01653 <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">Exists</a>();
-<a name="l01654"></a>01654
-<a name="l01659"></a>01659 <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="l01528"></a>01528 <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="l01529"></a>01529
+<a name="l01532"></a>01532 <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="l01533"></a>01533
+<a name="l01534"></a>01534 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#RehashServer_28_29">RehashServer</a>();
+<a name="l01535"></a>01535 };
+<a name="l01536"></a>01536
+<a name="l01537"></a>01537
+<a name="l01538"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">01538</a> <span class="preprocessor">#define CONF_NOT_A_NUMBER 0x000010</span>
+<a name="l01539"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">01539</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_NOT_UNSIGNED 0x000080</span>
+<a name="l01540"></a><a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">01540</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_VALUE_NOT_FOUND 0x000100</span>
+<a name="l01541"></a><a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">01541</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_FILE_NOT_FOUND 0x000200</span>
+<a name="l01542"></a>01542 <span class="preprocessor"></span>
+<a name="l01543"></a>01543
+<a name="l01550"></a><a class="code" href="classConfigReader.html">01550</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="l01551"></a>01551 {
+<a name="l01552"></a>01552 <span class="keyword">protected</span>:
+<a name="l01558"></a><a class="code" href="classConfigReader.html#cache">01558</a> std::stringstream *<a class="code" href="classConfigReader.html#cache">cache</a>;
+<a name="l01559"></a><a class="code" href="classConfigReader.html#errorlog">01559</a> std::stringstream *<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
+<a name="l01562"></a><a class="code" href="classConfigReader.html#readerror">01562</a> <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#readerror">readerror</a>;
+<a name="l01563"></a><a class="code" href="classConfigReader.html#error">01563</a> <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#error">error</a>;
+<a name="l01564"></a>01564
+<a name="l01565"></a>01565 <span class="keyword">public</span>:
+<a name="l01570"></a>01570 <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>(); <span class="comment">// default constructor reads ircd.conf</span>
+<a name="l01574"></a>01574 <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="l01578"></a>01578 <span class="comment"></span> <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">~ConfigReader</a>();
+<a name="l01583"></a>01583 <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="l01589"></a>01589 <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="l01598"></a>01598 <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="l01603"></a>01603 <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">GetError</a>();
+<a name="l01610"></a>01610 <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="l01615"></a>01615 <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">Verify</a>();
+<a name="l01622"></a>01622 <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="l01623"></a>01623
+<a name="l01629"></a>01629 <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="l01630"></a>01630 };
+<a name="l01631"></a>01631
+<a name="l01632"></a>01632
+<a name="l01633"></a>01633
+<a name="l01639"></a><a class="code" href="classFileReader.html">01639</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="l01640"></a>01640 {
+<a name="l01641"></a><a class="code" href="classFileReader.html#fc">01641</a> <a class="code" href="globals_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classFileReader.html#fc">fc</a>;
+<a name="l01642"></a>01642 <span class="keyword">public</span>:
+<a name="l01647"></a>01647 <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>();
+<a name="l01648"></a>01648
+<a name="l01654"></a>01654 <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
+<a name="l01655"></a>01655
+<a name="l01659"></a>01659 <a class="code" href="classFileReader.html#_7EFileReader_28_29">~FileReader</a>();
<a name="l01660"></a>01660
-<a name="l01666"></a>01666 <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileSize</a>();
-<a name="l01667"></a>01667 };
-<a name="l01668"></a>01668
-<a name="l01669"></a>01669
-<a name="l01676"></a><a class="code" href="classModuleFactory.html">01676</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="l01677"></a>01677 {
-<a name="l01678"></a>01678 <span class="keyword">public</span>:
-<a name="l01679"></a><a class="code" href="classModuleFactory.html#ModuleFactory_28_29">01679</a> <a class="code" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a>() { }
-<a name="l01680"></a><a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">01680</a> <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">~ModuleFactory</a>() { }
-<a name="l01685"></a>01685 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#CreateModule_28Server_20_2AMe_29_3D_30">CreateModule</a>(<a class="code" href="classServer.html">Server</a>* Me) = 0;
-<a name="l01686"></a>01686 };
+<a name="l01666"></a>01666 <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="l01667"></a>01667
+<a name="l01671"></a>01671 <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">Exists</a>();
+<a name="l01672"></a>01672
+<a name="l01677"></a>01677 <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="l01678"></a>01678
+<a name="l01684"></a>01684 <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileSize</a>();
+<a name="l01685"></a>01685 };
+<a name="l01686"></a>01686
<a name="l01687"></a>01687
-<a name="l01688"></a>01688
-<a name="l01689"></a><a class="code" href="modules_8h.html#ircd_5Fmodule">01689</a> <span class="keyword">typedef</span> DLLFactory&lt;ModuleFactory&gt; <a class="code" href="modules_8h.html#ircd_5Fmodule">ircd_module</a>;
-<a name="l01690"></a>01690
-<a name="l01691"></a>01691 <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
-<a name="l01692"></a>01692 <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefinedOper_28char_20modechar_2C_20int_20type_29">ModeDefinedOper</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
-<a name="l01693"></a>01693 <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOn_28char_20modechar_2C_20int_20type_29">ModeDefinedOn</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
-<a name="l01694"></a>01694 <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOff_28char_20modechar_2C_20int_20type_29">ModeDefinedOff</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
-<a name="l01695"></a>01695 <span class="keywordtype">void</span> <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(<span class="keywordtype">char</span> modechar);
-<a name="l01696"></a>01696 <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">ModeIsListMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type);
-<a name="l01697"></a>01697
-<a name="l01698"></a>01698 <span class="preprocessor">#endif</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Dec 15 11:14:14 2005 for InspIRCd by&nbsp;
+<a name="l01694"></a><a class="code" href="classModuleFactory.html">01694</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="l01695"></a>01695 {
+<a name="l01696"></a>01696 <span class="keyword">public</span>:
+<a name="l01697"></a><a class="code" href="classModuleFactory.html#ModuleFactory_28_29">01697</a> <a class="code" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a>() { }
+<a name="l01698"></a><a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">01698</a> <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">~ModuleFactory</a>() { }
+<a name="l01703"></a>01703 <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#CreateModule_28Server_20_2AMe_29_3D_30">CreateModule</a>(<a class="code" href="classServer.html">Server</a>* Me) = 0;
+<a name="l01704"></a>01704 };
+<a name="l01705"></a>01705
+<a name="l01706"></a>01706
+<a name="l01707"></a><a class="code" href="modules_8h.html#ircd_5Fmodule">01707</a> <span class="keyword">typedef</span> DLLFactory&lt;ModuleFactory&gt; <a class="code" href="modules_8h.html#ircd_5Fmodule">ircd_module</a>;
+<a name="l01708"></a>01708
+<a name="l01709"></a>01709 <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefined_28char_20modechar_2C_20int_20type_29">ModeDefined</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
+<a name="l01710"></a>01710 <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeDefinedOper_28char_20modechar_2C_20int_20type_29">ModeDefinedOper</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
+<a name="l01711"></a>01711 <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOn_28char_20modechar_2C_20int_20type_29">ModeDefinedOn</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
+<a name="l01712"></a>01712 <span class="keywordtype">int</span> <a class="code" href="modules_8cpp.html#ModeDefinedOff_28char_20modechar_2C_20int_20type_29">ModeDefinedOff</a>(<span class="keywordtype">char</span> c, <span class="keywordtype">int</span> i);
+<a name="l01713"></a>01713 <span class="keywordtype">void</span> <a class="code" href="modules_8cpp.html#ModeMakeList_28char_20modechar_29">ModeMakeList</a>(<span class="keywordtype">char</span> modechar);
+<a name="l01714"></a>01714 <span class="keywordtype">bool</span> <a class="code" href="modules_8cpp.html#ModeIsListMode_28char_20modechar_2C_20int_20type_29">ModeIsListMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type);
+<a name="l01715"></a>01715
+<a name="l01716"></a>01716 <span class="preprocessor">#endif</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:13 2005 for InspIRCd by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
</body>