]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - docs/module-doc/modules_8h-source.html
Fixed 'fake direction' messages being put out by user->registered = 7 being set too...
[user/henk/code/inspircd.git] / docs / module-doc / modules_8h-source.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>InspIRCd: modules.h Source File</title>
4 <link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.4.4-20050815 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
8 <div class="nav">
9 <a class="el" href="dir_000000.html">home</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000001.html">brain</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000002.html">inspircd-cvs</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000003.html">inspircd</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_000004.html">include</a></div>
10 <h1>modules.h</h1><a href="modules_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*       +------------------------------------+</span>
11 <a name="l00002"></a>00002 <span class="comment"> *       | Inspire Internet Relay Chat Daemon |</span>
12 <a name="l00003"></a>00003 <span class="comment"> *       +------------------------------------+</span>
13 <a name="l00004"></a>00004 <span class="comment"> *</span>
14 <a name="l00005"></a>00005 <span class="comment"> *  Inspire is copyright (C) 2002-2004 ChatSpike-Dev.</span>
15 <a name="l00006"></a>00006 <span class="comment"> *                       E-mail:</span>
16 <a name="l00007"></a>00007 <span class="comment"> *                &lt;brain@chatspike.net&gt;</span>
17 <a name="l00008"></a>00008 <span class="comment"> *                &lt;Craig@chatspike.net&gt;</span>
18 <a name="l00009"></a>00009 <span class="comment"> *     </span>
19 <a name="l00010"></a>00010 <span class="comment"> * Written by Craig Edwards, Craig McLure, and others.</span>
20 <a name="l00011"></a>00011 <span class="comment"> * This program is free but copyrighted software; see</span>
21 <a name="l00012"></a>00012 <span class="comment"> *            the file COPYING for details.</span>
22 <a name="l00013"></a>00013 <span class="comment"> *</span>
23 <a name="l00014"></a>00014 <span class="comment"> * ---------------------------------------------------</span>
24 <a name="l00015"></a>00015 <span class="comment"> */</span>
25 <a name="l00016"></a>00016 
26 <a name="l00017"></a>00017 
27 <a name="l00018"></a>00018 <span class="preprocessor">#ifndef __PLUGIN_H</span>
28 <a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define __PLUGIN_H</span>
29 <a name="l00020"></a>00020 <span class="preprocessor"></span>
30 <a name="l00021"></a>00021 <span class="comment">// log levels</span>
31 <a name="l00022"></a>00022 
32 <a name="l00023"></a><a class="code" href="modules_8h.html#DEBUG">00023</a> <span class="preprocessor">#define DEBUG 10</span>
33 <a name="l00024"></a><a class="code" href="modules_8h.html#VERBOSE">00024</a> <span class="preprocessor"></span><span class="preprocessor">#define VERBOSE 20</span>
34 <a name="l00025"></a><a class="code" href="modules_8h.html#DEFAULT">00025</a> <span class="preprocessor"></span><span class="preprocessor">#define DEFAULT 30</span>
35 <a name="l00026"></a><a class="code" href="modules_8h.html#SPARSE">00026</a> <span class="preprocessor"></span><span class="preprocessor">#define SPARSE 40</span>
36 <a name="l00027"></a><a class="code" href="modules_8h.html#NONE">00027</a> <span class="preprocessor"></span><span class="preprocessor">#define NONE 50</span>
37 <a name="l00028"></a>00028 <span class="preprocessor"></span>
38 <a name="l00029"></a>00029 <span class="comment">// used with OnExtendedMode() method of modules</span>
39 <a name="l00030"></a>00030 
40 <a name="l00031"></a><a class="code" href="modules_8h.html#MT_5FCHANNEL">00031</a> <span class="preprocessor">#define MT_CHANNEL 1</span>
41 <a name="l00032"></a><a class="code" href="modules_8h.html#MT_5FCLIENT">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define MT_CLIENT 2</span>
42 <a name="l00033"></a><a class="code" href="modules_8h.html#MT_5FSERVER">00033</a> <span class="preprocessor"></span><span class="preprocessor">#define MT_SERVER 3</span>
43 <a name="l00034"></a>00034 <span class="preprocessor"></span>
44 <a name="l00035"></a>00035 <span class="comment">// used with OnAccessCheck() method of modules</span>
45 <a name="l00036"></a>00036 
46 <a name="l00037"></a><a class="code" href="modules_8h.html#ACR_5FDEFAULT">00037</a> <span class="preprocessor">#define ACR_DEFAULT 0           // Do default action (act as if the module isnt even loaded)</span>
47 <a name="l00038"></a><a class="code" href="modules_8h.html#ACR_5FDENY">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define ACR_DENY 1              // deny the action</span>
48 <a name="l00039"></a><a class="code" href="modules_8h.html#ACR_5FALLOW">00039</a> <span class="preprocessor"></span><span class="preprocessor">#define ACR_ALLOW 2             // allow the action</span>
49 <a name="l00040"></a>00040 <span class="preprocessor"></span>
50 <a name="l00041"></a><a class="code" href="modules_8h.html#AC_5FKICK">00041</a> <span class="preprocessor">#define AC_KICK 0               // a user is being kicked</span>
51 <a name="l00042"></a><a class="code" href="modules_8h.html#AC_5FDEOP">00042</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_DEOP 1               // a user is being deopped</span>
52 <a name="l00043"></a><a class="code" href="modules_8h.html#AC_5FOP">00043</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_OP 2                 // a user is being opped</span>
53 <a name="l00044"></a><a class="code" href="modules_8h.html#AC_5FVOICE">00044</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_VOICE 3              // a user is being voiced</span>
54 <a name="l00045"></a><a class="code" href="modules_8h.html#AC_5FDEVOICE">00045</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_DEVOICE 4            // a user is being devoiced</span>
55 <a name="l00046"></a><a class="code" href="modules_8h.html#AC_5FHALFOP">00046</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_HALFOP 5             // a user is being halfopped</span>
56 <a name="l00047"></a><a class="code" href="modules_8h.html#AC_5FDEHALFOP">00047</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_DEHALFOP 6           // a user is being dehalfopped</span>
57 <a name="l00048"></a><a class="code" href="modules_8h.html#AC_5FINVITE">00048</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_INVITE 7             // a user is being invited</span>
58 <a name="l00049"></a><a class="code" href="modules_8h.html#AC_5FGENERAL_5FMODE">00049</a> <span class="preprocessor"></span><span class="preprocessor">#define AC_GENERAL_MODE 8       // a user channel mode is being changed</span>
59 <a name="l00050"></a>00050 <span class="preprocessor"></span>
60 <a name="l00051"></a>00051 <span class="comment">// used to define a set of behavior bits for a module</span>
61 <a name="l00052"></a>00052 
62 <a name="l00053"></a><a class="code" href="modules_8h.html#VF_5FSTATIC">00053</a> <span class="preprocessor">#define VF_STATIC               1       // module is static, cannot be /unloadmodule'd</span>
63 <a name="l00054"></a><a class="code" href="modules_8h.html#VF_5FVENDOR">00054</a> <span class="preprocessor"></span><span class="preprocessor">#define VF_VENDOR               2       // module is a vendor module (came in the original tarball, not 3rd party)</span>
64 <a name="l00055"></a><a class="code" href="modules_8h.html#VF_5FSERVICEPROVIDER">00055</a> <span class="preprocessor"></span><span class="preprocessor">#define VF_SERVICEPROVIDER      4       // module provides a service to other modules (can be a dependency)</span>
65 <a name="l00056"></a><a class="code" href="modules_8h.html#VF_5FCOMMON">00056</a> <span class="preprocessor"></span><span class="preprocessor">#define VF_COMMON               8       // module needs to be common on all servers in a mesh to link</span>
66 <a name="l00057"></a>00057 <span class="preprocessor"></span>
67 <a name="l00058"></a>00058 <span class="preprocessor">#include "dynamic.h"</span>
68 <a name="l00059"></a>00059 <span class="preprocessor">#include "<a class="code" href="base_8h.html">base.h</a>"</span>
69 <a name="l00060"></a>00060 <span class="preprocessor">#include "<a class="code" href="ctables_8h.html">ctables.h</a>"</span>
70 <a name="l00061"></a>00061 <span class="preprocessor">#include "<a class="code" href="socket_8h.html">socket.h</a>"</span>
71 <a name="l00062"></a>00062 <span class="preprocessor">#include &lt;string&gt;</span>
72 <a name="l00063"></a>00063 <span class="preprocessor">#include &lt;deque&gt;</span>
73 <a name="l00064"></a>00064 <span class="preprocessor">#include &lt;sstream&gt;</span>
74 <a name="l00065"></a>00065 
75 <a name="l00068"></a><a class="code" href="modules_8h.html#file_5Fcache">00068</a> <span class="keyword">typedef</span> std::deque&lt;std::string&gt; <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a>;
76 <a name="l00069"></a><a class="code" href="modules_8h.html#string_5Flist">00069</a> <span class="keyword">typedef</span> <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> <a class="code" href="modules_8h.html#string_5Flist">string_list</a>;
77 <a name="l00070"></a>00070 
78 <a name="l00073"></a><a class="code" href="modules_8h.html#chanuserlist">00073</a> <span class="keyword">typedef</span> std::deque&lt;userrec*&gt; <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a>;
79 <a name="l00074"></a>00074 
80 <a name="l00075"></a>00075 
81 <a name="l00076"></a>00076 <span class="comment">// This #define allows us to call a method in all</span>
82 <a name="l00077"></a>00077 <span class="comment">// loaded modules in a readable simple way, e.g.:</span>
83 <a name="l00078"></a>00078 <span class="comment">// 'FOREACH_MOD OnConnect(user);'</span>
84 <a name="l00079"></a>00079 
85 <a name="l00080"></a><a class="code" href="modules_8h.html#FOREACH_5FMOD">00080</a> <span class="preprocessor">#define FOREACH_MOD for (int _i = 0; _i &lt;= MODCOUNT; _i++) modules[_i]-&gt;</span>
86 <a name="l00081"></a>00081 <span class="preprocessor"></span>
87 <a name="l00082"></a>00082 <span class="comment">// This define is similar to the one above but returns a result in MOD_RESULT.</span>
88 <a name="l00083"></a>00083 <span class="comment">// The first module to return a nonzero result is the value to be accepted,</span>
89 <a name="l00084"></a>00084 <span class="comment">// and any modules after are ignored.</span>
90 <a name="l00085"></a>00085 
91 <a name="l00086"></a>00086 <span class="comment">// *********************************************************************************************</span>
92 <a name="l00087"></a>00087 
93 <a name="l00088"></a><a class="code" href="modules_8h.html#FOREACH_5FRESULT_28x_29">00088</a> <span class="preprocessor">#define FOREACH_RESULT(x) { MOD_RESULT = 0; \</span>
94 <a name="l00089"></a>00089 <span class="preprocessor">                        for (int _i = 0; _i &lt;= MODCOUNT; _i++) { \</span>
95 <a name="l00090"></a>00090 <span class="preprocessor">                        int res = modules[_i]-&gt;x ; \</span>
96 <a name="l00091"></a>00091 <span class="preprocessor">                        if (res != 0) { \</span>
97 <a name="l00092"></a>00092 <span class="preprocessor">                                MOD_RESULT = res; \</span>
98 <a name="l00093"></a>00093 <span class="preprocessor">                                break; \</span>
99 <a name="l00094"></a>00094 <span class="preprocessor">                        } \</span>
100 <a name="l00095"></a>00095 <span class="preprocessor">                } \</span>
101 <a name="l00096"></a>00096 <span class="preprocessor">        } </span>
102 <a name="l00097"></a>00097 <span class="preprocessor"></span>   
103 <a name="l00098"></a>00098 <span class="comment">// *********************************************************************************************</span>
104 <a name="l00099"></a>00099 
105 <a name="l00100"></a><a class="code" href="modules_8h.html#FD_5FMAGIC_5FNUMBER">00100</a> <span class="preprocessor">#define FD_MAGIC_NUMBER -42</span>
106 <a name="l00101"></a>00101 <span class="preprocessor"></span>
107 <a name="l00102"></a>00102 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="modules_8h.html#createcommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">createcommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source);
108 <a name="l00103"></a>00103 <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mode_8h.html#server_5Fmode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">server_mode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
109 <a name="l00104"></a>00104 
110 <a name="l00105"></a>00105 <span class="comment">// class Version holds the version information of a Module, returned</span>
111 <a name="l00106"></a>00106 <span class="comment">// by Module::GetVersion (thanks RD)</span>
112 <a name="l00107"></a>00107 
113 <a name="l00112"></a><a class="code" href="classVersion.html">00112</a> <span class="keyword">class </span><a class="code" href="classVersion.html">Version</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
114 <a name="l00113"></a>00113 {
115 <a name="l00114"></a>00114  <span class="keyword">public</span>:
116 <a name="l00115"></a><a class="code" href="classVersion.html#Revision">00115</a>          <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="classVersion.html#Major">Major</a>, <a class="code" href="classVersion.html#Minor">Minor</a>, <a class="code" href="classVersion.html#Revision">Revision</a>, <a class="code" href="classVersion.html#Build">Build</a>, <a class="code" href="classVersion.html#Flags">Flags</a>;
117 <a name="l00116"></a>00116          <a class="code" href="classVersion.html#Version_28int_20major_2C_20int_20minor_2C_20int_20revision_2C_20int_20build_2C_20int_20flags_29">Version</a>(<span class="keywordtype">int</span> major, <span class="keywordtype">int</span> minor, <span class="keywordtype">int</span> revision, <span class="keywordtype">int</span> build, <span class="keywordtype">int</span> flags);
118 <a name="l00117"></a>00117 };
119 <a name="l00118"></a>00118 
120 <a name="l00124"></a><a class="code" href="classAdmin.html">00124</a> <span class="keyword">class </span><a class="code" href="classAdmin.html">Admin</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
121 <a name="l00125"></a>00125 {
122 <a name="l00126"></a>00126  <span class="keyword">public</span>:
123 <a name="l00127"></a><a class="code" href="classAdmin.html#Nick">00127</a>          <span class="keyword">const</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classAdmin.html#Name">Name</a>, <a class="code" href="classAdmin.html#Email">Email</a>, <a class="code" href="classAdmin.html#Nick">Nick</a>;
124 <a name="l00128"></a>00128          <a class="code" href="classAdmin.html#Admin_28std_3A_3Astring_20name_2C_20std_3A_3Astring_20email_2C_20std_3A_3Astring_20nick_29">Admin</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name, <a class="code" href="namespaceirc.html#string">std::string</a> email, <a class="code" href="namespaceirc.html#string">std::string</a> nick);
125 <a name="l00129"></a>00129 };
126 <a name="l00130"></a>00130 
127 <a name="l00131"></a>00131 
128 <a name="l00132"></a>00132 <span class="comment">// Forward-delacare module for ModuleMessage etc</span>
129 <a name="l00133"></a>00133 <span class="keyword">class </span><a class="code" href="classModule.html">Module</a>;
130 <a name="l00134"></a>00134 
131 <a name="l00135"></a>00135 <span class="comment">// Thanks to Rob (from anope) for the idea of this message passing API</span>
132 <a name="l00136"></a>00136 <span class="comment">// (its been done before, but this seemed a very neat and tidy way...</span>
133 <a name="l00137"></a>00137 
134 <a name="l00142"></a><a class="code" href="classModuleMessage.html">00142</a> <span class="keyword">class </span><a class="code" href="classModuleMessage.html">ModuleMessage</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
135 <a name="l00143"></a>00143 {
136 <a name="l00144"></a>00144  <span class="keyword">public</span>:
137 <a name="l00147"></a>00147         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModuleMessage.html#Send_28_29_3D_30">Send</a>() = 0;
138 <a name="l00148"></a><a class="code" href="classModuleMessage.html#_7EModuleMessage_28_29">00148</a>         <span class="keyword">virtual</span> <a class="code" href="classModuleMessage.html#_7EModuleMessage_28_29">~ModuleMessage</a>() {};
139 <a name="l00149"></a>00149 };
140 <a name="l00150"></a>00150 
141 <a name="l00156"></a><a class="code" href="classRequest.html">00156</a> <span class="keyword">class </span><a class="code" href="classRequest.html">Request</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a>
142 <a name="l00157"></a>00157 {
143 <a name="l00158"></a>00158  <span class="keyword">protected</span>:
144 <a name="l00161"></a><a class="code" href="classRequest.html#data">00161</a>         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#data">data</a>;
145 <a name="l00165"></a><a class="code" href="classRequest.html#source">00165</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#source">source</a>;
146 <a name="l00168"></a><a class="code" href="classRequest.html#dest">00168</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#dest">dest</a>;
147 <a name="l00169"></a>00169  <span class="keyword">public</span>:
148 <a name="l00172"></a>00172         <a class="code" href="classRequest.html#Request_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20Module_20_2Adst_29">Request</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="classModule.html">Module</a>* dst);
149 <a name="l00175"></a>00175         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#GetData_28_29">GetData</a>();
150 <a name="l00178"></a>00178         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetSource_28_29">GetSource</a>();
151 <a name="l00181"></a>00181         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classRequest.html#GetDest_28_29">GetDest</a>();
152 <a name="l00187"></a>00187         <span class="keywordtype">char</span>* <a class="code" href="classRequest.html#Send_28_29">Send</a>();
153 <a name="l00188"></a>00188 };
154 <a name="l00189"></a>00189 
155 <a name="l00190"></a>00190 
156 <a name="l00196"></a><a class="code" href="classEvent.html">00196</a> <span class="keyword">class </span><a class="code" href="classEvent.html">Event</a> : <span class="keyword">public</span> <a class="code" href="classModuleMessage.html">ModuleMessage</a>
157 <a name="l00197"></a>00197 {
158 <a name="l00198"></a>00198  <span class="keyword">protected</span>:
159 <a name="l00201"></a><a class="code" href="classEvent.html#data">00201</a>         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#data">data</a>;
160 <a name="l00205"></a><a class="code" href="classEvent.html#source">00205</a>         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#source">source</a>;
161 <a name="l00210"></a><a class="code" href="classEvent.html#id">00210</a>         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#id">id</a>;
162 <a name="l00211"></a>00211  <span class="keyword">public</span>:
163 <a name="l00214"></a>00214         <a class="code" href="classEvent.html#Event_28char_20_2Aanydata_2C_20Module_20_2Asrc_2C_20std_3A_3Astring_20eventid_29">Event</a>(<span class="keywordtype">char</span>* anydata, <a class="code" href="classModule.html">Module</a>* src, <a class="code" href="namespaceirc.html#string">std::string</a> eventid);
164 <a name="l00217"></a>00217         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#GetData_28_29">GetData</a>();
165 <a name="l00220"></a>00220         <a class="code" href="classModule.html">Module</a>* <a class="code" href="classEvent.html#GetSource_28_29">GetSource</a>();
166 <a name="l00224"></a>00224         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classEvent.html#GetEventID_28_29">GetEventID</a>();
167 <a name="l00229"></a>00229         <span class="keywordtype">char</span>* <a class="code" href="classEvent.html#Send_28_29">Send</a>();
168 <a name="l00230"></a>00230 };
169 <a name="l00231"></a>00231 
170 <a name="l00232"></a>00232 
171 <a name="l00238"></a><a class="code" href="classModule.html">00238</a> <span class="keyword">class </span><a class="code" href="classModule.html">Module</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
172 <a name="l00239"></a>00239 {
173 <a name="l00240"></a>00240  <span class="keyword">public</span>:
174 <a name="l00241"></a>00241 
175 <a name="l00245"></a>00245         <a class="code" href="classModule.html#Module_28_29">Module</a>();
176 <a name="l00246"></a>00246 
177 <a name="l00250"></a>00250         <span class="keyword">virtual</span> <a class="code" href="classModule.html#_7EModule_28_29">~Module</a>();
178 <a name="l00251"></a>00251 
179 <a name="l00256"></a>00256         <span class="keyword">virtual</span> <a class="code" href="classVersion.html">Version</a> <a class="code" href="classModule.html#GetVersion_28_29">GetVersion</a>();
180 <a name="l00257"></a>00257 
181 <a name="l00261"></a>00261         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserConnect_28userrec_20_2Auser_29">OnUserConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
182 <a name="l00262"></a>00262 
183 <a name="l00268"></a>00268         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserQuit_28userrec_20_2Auser_29">OnUserQuit</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
184 <a name="l00269"></a>00269 
185 <a name="l00275"></a>00275         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserDisconnect_28userrec_20_2Auser_29">OnUserDisconnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
186 <a name="l00276"></a>00276 
187 <a name="l00281"></a>00281         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">OnUserJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
188 <a name="l00282"></a>00282 
189 <a name="l00287"></a>00287         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserPart_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_29">OnUserPart</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel);
190 <a name="l00288"></a>00288 
191 <a name="l00294"></a>00294         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnPacketTransmit_28std_3A_3Astring_20_26data_2C_20std_3A_3Astring_20serv_29">OnPacketTransmit</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;data, <a class="code" href="namespaceirc.html#string">std::string</a> serv);
192 <a name="l00295"></a>00295 
193 <a name="l00302"></a>00302         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnPacketReceive_28std_3A_3Astring_20_26data_2C_20std_3A_3Astring_20serv_29">OnPacketReceive</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;data, <a class="code" href="namespaceirc.html#string">std::string</a> serv);
194 <a name="l00303"></a>00303 
195 <a name="l00309"></a>00309         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRehash_28_29">OnRehash</a>();
196 <a name="l00310"></a>00310 
197 <a name="l00319"></a>00319         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnServerRaw_28std_3A_3Astring_20_26raw_2C_20bool_20inbound_2C_20userrec_20_2Auser_29">OnServerRaw</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;raw, <span class="keywordtype">bool</span> inbound, <a class="code" href="classuserrec.html">userrec</a>* user);
198 <a name="l00320"></a>00320 
199 <a name="l00330"></a>00330         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnExtendedMode_28userrec_20_2Auser_2C_20void_20_2Atarget_2C_20char_20modechar_2C_20int_20type_2C_20bool_20mode_5Fon_2C_20string_5Flist_20_26params_29">OnExtendedMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <span class="keywordtype">void</span>* target, <span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> mode_on, <a class="code" href="modules_8h.html#string_5Flist">string_list</a> &amp;params);
200 <a name="l00331"></a>00331         
201 <a name="l00345"></a>00345         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreJoin_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20const_20char_20_2Acname_29">OnUserPreJoin</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keyword">const</span> <span class="keywordtype">char</span>* cname);
202 <a name="l00346"></a>00346         
203 <a name="l00352"></a>00352         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">OnUserPreKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
204 <a name="l00353"></a>00353 
205 <a name="l00358"></a>00358         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserKick_28userrec_20_2Asource_2C_20userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20reason_29">OnUserKick</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
206 <a name="l00359"></a>00359 
207 <a name="l00364"></a>00364         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnOper_28userrec_20_2Auser_29">OnOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
208 <a name="l00365"></a>00365         
209 <a name="l00374"></a>00374         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnInfo_28userrec_20_2Auser_29">OnInfo</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
210 <a name="l00375"></a>00375         
211 <a name="l00380"></a>00380         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnWhois_28userrec_20_2Asource_2C_20userrec_20_2Adest_29">OnWhois</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest);
212 <a name="l00381"></a>00381         
213 <a name="l00387"></a>00387         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreInvite_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_29">OnUserPreInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel);
214 <a name="l00388"></a>00388         
215 <a name="l00397"></a>00397         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreMessage_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">OnUserPreMessage</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> &amp;text);
216 <a name="l00398"></a>00398 
217 <a name="l00410"></a>00410         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreNotice_28userrec_20_2Auser_2C_20void_20_2Adest_2C_20int_20target_5Ftype_2C_20std_3A_3Astring_20_26text_29">OnUserPreNotice</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<span class="keywordtype">void</span>* dest,<span class="keywordtype">int</span> target_type, <a class="code" href="namespaceirc.html#string">std::string</a> &amp;text);
218 <a name="l00411"></a>00411         
219 <a name="l00419"></a>00419         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnUserPreNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20newnick_29">OnUserPreNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newnick);
220 <a name="l00420"></a>00420         
221 <a name="l00428"></a>00428         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserPostNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20oldnick_29">OnUserPostNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> oldnick);
222 <a name="l00429"></a>00429 
223 <a name="l00451"></a>00451         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnAccessCheck_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20chanrec_20_2Achannel_2C_20int_20access_5Ftype_29">OnAccessCheck</a>(<a class="code" href="classuserrec.html">userrec</a>* source,<a class="code" href="classuserrec.html">userrec</a>* dest,<a class="code" href="classchanrec.html">chanrec</a>* channel,<span class="keywordtype">int</span> access_type);
224 <a name="l00452"></a>00452 
225 <a name="l00458"></a>00458         <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#string_5Flist">string_list</a> <a class="code" href="classModule.html#OnUserSync_28userrec_20_2Auser_29">OnUserSync</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
226 <a name="l00459"></a>00459 
227 <a name="l00465"></a>00465         <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#string_5Flist">string_list</a> <a class="code" href="classModule.html#OnChannelSync_28chanrec_20_2Achan_29">OnChannelSync</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan);
228 <a name="l00466"></a>00466 
229 <a name="l00470"></a>00470         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#On_30_30_35Numeric_28std_3A_3Astring_20_26output_29">On005Numeric</a>(<a class="code" href="namespaceirc.html#string">std::string</a> &amp;output);
230 <a name="l00471"></a>00471 
231 <a name="l00481"></a>00481         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnKill_28userrec_20_2Asource_2C_20userrec_20_2Adest_2C_20std_3A_3Astring_20reason_29">OnKill</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classuserrec.html">userrec</a>* dest, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
232 <a name="l00482"></a>00482 
233 <a name="l00493"></a>00493         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnLoadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">OnLoadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name);
234 <a name="l00494"></a>00494 
235 <a name="l00505"></a>00505         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUnloadModule_28Module_20_2Amod_2C_20std_3A_3Astring_20name_29">OnUnloadModule</a>(<a class="code" href="classModule.html">Module</a>* mod,<a class="code" href="namespaceirc.html#string">std::string</a> name);
236 <a name="l00506"></a>00506 
237 <a name="l00512"></a>00512         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnBackgroundTimer_28time_5Ft_20curtime_29">OnBackgroundTimer</a>(time_t curtime);
238 <a name="l00513"></a>00513 
239 <a name="l00521"></a>00521         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnSendList_28userrec_20_2Auser_2C_20chanrec_20_2Achannel_2C_20char_20mode_29">OnSendList</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* channel, <span class="keywordtype">char</span> mode);
240 <a name="l00522"></a>00522 
241 <a name="l00533"></a>00533         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnPreCommand_28std_3A_3Astring_20command_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">OnPreCommand</a>(<a class="code" href="namespaceirc.html#string">std::string</a> command, <span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
242 <a name="l00534"></a>00534 
243 <a name="l00543"></a>00543         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classModule.html#OnCheckReady_28userrec_20_2Auser_29">OnCheckReady</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
244 <a name="l00544"></a>00544 
245 <a name="l00552"></a>00552         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnUserRegister_28userrec_20_2Auser_29">OnUserRegister</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
246 <a name="l00553"></a>00553 
247 <a name="l00559"></a>00559         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawMode_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20char_20mode_2C_20std_3A_3Astring_20param_2C_20bool_20adding_2C_20int_20pcnt_29">OnRawMode</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <span class="keywordtype">char</span> mode, <a class="code" href="namespaceirc.html#string">std::string</a> param, <span class="keywordtype">bool</span> adding, <span class="keywordtype">int</span> pcnt);
248 <a name="l00560"></a>00560 
249 <a name="l00566"></a>00566         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckInvite_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">OnCheckInvite</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
250 <a name="l00567"></a>00567 
251 <a name="l00574"></a>00574         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckKey_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20keygiven_29">OnCheckKey</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> keygiven);
252 <a name="l00575"></a>00575 
253 <a name="l00581"></a>00581         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckLimit_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">OnCheckLimit</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
254 <a name="l00582"></a>00582 
255 <a name="l00588"></a>00588         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnCheckBan_28userrec_20_2Auser_2C_20chanrec_20_2Achan_29">OnCheckBan</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan);
256 <a name="l00589"></a>00589 
257 <a name="l00593"></a>00593         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnStats_28char_20symbol_29">OnStats</a>(<span class="keywordtype">char</span> symbol);
258 <a name="l00594"></a>00594 
259 <a name="l00598"></a>00598         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnChangeLocalUserHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">OnChangeLocalUserHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost);
260 <a name="l00599"></a>00599 
261 <a name="l00603"></a>00603         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnChangeLocalUserGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20newhost_29">OnChangeLocalUserGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> newhost); 
262 <a name="l00604"></a>00604 
263 <a name="l00608"></a>00608         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnLocalTopicChange_28userrec_20_2Auser_2C_20chanrec_20_2Achan_2C_20std_3A_3Astring_20topic_29">OnLocalTopicChange</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="classchanrec.html">chanrec</a>* chan, <a class="code" href="namespaceirc.html#string">std::string</a> topic);
264 <a name="l00609"></a>00609 
265 <a name="l00615"></a>00615         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnEvent_28Event_20_2Aevent_29">OnEvent</a>(<a class="code" href="classEvent.html">Event</a>* event);
266 <a name="l00616"></a>00616 
267 <a name="l00623"></a>00623         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classModule.html#OnRequest_28Request_20_2Arequest_29">OnRequest</a>(<a class="code" href="classRequest.html">Request</a>* request);
268 <a name="l00624"></a>00624 
269 <a name="l00631"></a>00631         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnOperCompare_28std_3A_3Astring_20password_2C_20std_3A_3Astring_20input_29">OnOperCompare</a>(<a class="code" href="namespaceirc.html#string">std::string</a> password, <a class="code" href="namespaceirc.html#string">std::string</a> input);
270 <a name="l00632"></a>00632 
271 <a name="l00638"></a>00638         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGlobalOper_28userrec_20_2Auser_29">OnGlobalOper</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
272 <a name="l00639"></a>00639 
273 <a name="l00644"></a>00644         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnGlobalConnect_28userrec_20_2Auser_29">OnGlobalConnect</a>(<a class="code" href="classuserrec.html">userrec</a>* user);
274 <a name="l00645"></a>00645 
275 <a name="l00649"></a>00649         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnAddBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">OnAddBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask);
276 <a name="l00650"></a>00650 
277 <a name="l00654"></a>00654         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnDelBan_28userrec_20_2Asource_2C_20chanrec_20_2Achannel_2C_20std_3A_3Astring_20banmask_29">OnDelBan</a>(<a class="code" href="classuserrec.html">userrec</a>* source, <a class="code" href="classchanrec.html">chanrec</a>* channel,<a class="code" href="namespaceirc.html#string">std::string</a> banmask);
278 <a name="l00655"></a>00655 
279 <a name="l00662"></a>00662         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRawSocketAccept_28int_20fd_2C_20std_3A_3Astring_20ip_2C_20int_20localport_29">OnRawSocketAccept</a>(<span class="keywordtype">int</span> fd, <a class="code" href="namespaceirc.html#string">std::string</a> ip, <span class="keywordtype">int</span> localport);
280 <a name="l00663"></a>00663 
281 <a name="l00670"></a>00670         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawSocketWrite_28int_20fd_2C_20char_20_2Abuffer_2C_20int_20count_29">OnRawSocketWrite</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> count);
282 <a name="l00671"></a>00671 
283 <a name="l00675"></a>00675         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classModule.html#OnRawSocketClose_28int_20fd_29">OnRawSocketClose</a>(<span class="keywordtype">int</span> fd);
284 <a name="l00676"></a>00676 
285 <a name="l00687"></a>00687         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classModule.html#OnRawSocketRead_28int_20fd_2C_20char_20_2Abuffer_2C_20unsigned_20int_20count_2C_20int_20_26readresult_29">OnRawSocketRead</a>(<span class="keywordtype">int</span> fd, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> count, <span class="keywordtype">int</span> &amp;readresult);
286 <a name="l00688"></a>00688 };
287 <a name="l00689"></a>00689 
288 <a name="l00690"></a>00690 
289 <a name="l00696"></a><a class="code" href="classServer.html">00696</a> <span class="keyword">class </span><a class="code" href="classServer.html">Server</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
290 <a name="l00697"></a>00697 {
291 <a name="l00698"></a>00698  <span class="keyword">public</span>:
292 <a name="l00702"></a>00702         <a class="code" href="classServer.html#Server_28_29">Server</a>();
293 <a name="l00706"></a>00706         <span class="keyword">virtual</span> <a class="code" href="classServer.html#_7EServer_28_29">~Server</a>();
294 <a name="l00707"></a>00707 
295 <a name="l00711"></a>00711         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendOpers_28std_3A_3Astring_20s_29">SendOpers</a>(<a class="code" href="namespaceirc.html#string">std::string</a> s);
296 <a name="l00716"></a>00716         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Log_28int_20level_2C_20std_3A_3Astring_20s_29">Log</a>(<span class="keywordtype">int</span> level, <a class="code" href="namespaceirc.html#string">std::string</a> s);
297 <a name="l00721"></a>00721         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#Send_28int_20Socket_2C_20std_3A_3Astring_20s_29">Send</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s);
298 <a name="l00726"></a>00726         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendServ_28int_20Socket_2C_20std_3A_3Astring_20s_29">SendServ</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="namespaceirc.html#string">std::string</a> s);
299 <a name="l00730"></a>00730         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannelServerNotice_28std_3A_3Astring_20ServName_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20text_29">SendChannelServerNotice</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ServName, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> text);
300 <a name="l00735"></a>00735         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendFrom_28int_20Socket_2C_20userrec_20_2AUser_2C_20std_3A_3Astring_20s_29">SendFrom</a>(<span class="keywordtype">int</span> Socket, <a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> s);
301 <a name="l00750"></a>00750         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendTo_28userrec_20_2ASource_2C_20userrec_20_2ADest_2C_20std_3A_3Astring_20s_29">SendTo</a>(<a class="code" href="classuserrec.html">userrec</a>* Source, <a class="code" href="classuserrec.html">userrec</a>* Dest, <a class="code" href="namespaceirc.html#string">std::string</a> s);
302 <a name="l00757"></a>00757         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChannel_2C_20std_3A_3Astring_20s_2C_20bool_20IncludeSender_29">SendChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Channel, <a class="code" href="namespaceirc.html#string">std::string</a> s,<span class="keywordtype">bool</span> IncludeSender);
303 <a name="l00762"></a>00762         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#CommonChannels_28userrec_20_2Au_31_2C_20userrec_20_2Au_32_29">CommonChannels</a>(<a class="code" href="classuserrec.html">userrec</a>* u1, <a class="code" href="classuserrec.html">userrec</a>* u2);
304 <a name="l00770"></a>00770         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendCommon_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_2C_20bool_20IncludeSender_29">SendCommon</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text,<span class="keywordtype">bool</span> IncludeSender);
305 <a name="l00775"></a>00775         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendWallops_28userrec_20_2AUser_2C_20std_3A_3Astring_20text_29">SendWallops</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="namespaceirc.html#string">std::string</a> text);
306 <a name="l00776"></a>00776 
307 <a name="l00780"></a>00780         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsNick_28std_3A_3Astring_20nick_29">IsNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick);
308 <a name="l00784"></a>00784         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classServer.html#CountUsers_28chanrec_20_2Ac_29">CountUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* c);
309 <a name="l00788"></a>00788         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindNick_28std_3A_3Astring_20nick_29">FindNick</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nick);
310 <a name="l00792"></a>00792         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html">userrec</a>* <a class="code" href="classServer.html#FindDescriptor_28int_20socket_29">FindDescriptor</a>(<span class="keywordtype">int</span> socket);
311 <a name="l00796"></a>00796         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#FindChannel_28std_3A_3Astring_20channel_29">FindChannel</a>(<a class="code" href="namespaceirc.html#string">std::string</a> channel);
312 <a name="l00801"></a>00801         <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#ChanMode_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">ChanMode</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
313 <a name="l00805"></a>00805         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsOnChannel_28userrec_20_2AUser_2C_20chanrec_20_2AChan_29">IsOnChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* User, <a class="code" href="classchanrec.html">chanrec</a>* Chan);
314 <a name="l00808"></a>00808         <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerName_28_29">GetServerName</a>();
315 <a name="l00811"></a>00811         <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetNetworkName_28_29">GetNetworkName</a>();
316 <a name="l00814"></a>00814         <span class="keyword">virtual</span> <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classServer.html#GetServerDescription_28_29">GetServerDescription</a>();
317 <a name="l00820"></a>00820         <span class="keyword">virtual</span> <a class="code" href="classAdmin.html">Admin</a> <a class="code" href="classServer.html#GetAdmin_28_29">GetAdmin</a>();
318 <a name="l00839"></a>00839         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedMode_28char_20modechar_2C_20int_20type_2C_20bool_20requires_5Foper_2C_20int_20params_5Fwhen_5Fon_2C_20int_20params_5Fwhen_5Foff_29">AddExtendedMode</a>(<span class="keywordtype">char</span> modechar, <span class="keywordtype">int</span> type, <span class="keywordtype">bool</span> requires_oper, <span class="keywordtype">int</span> params_when_on, <span class="keywordtype">int</span> params_when_off);
319 <a name="l00840"></a>00840 
320 <a name="l00862"></a>00862         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#AddExtendedListMode_28char_20modechar_29">AddExtendedListMode</a>(<span class="keywordtype">char</span> modechar);
321 <a name="l00863"></a>00863 
322 <a name="l00881"></a>00881         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddCommand_28char_20_2Acmd_2C_20handlerfunc_20f_2C_20char_20flags_2C_20int_20minparams_2C_20char_20_2Asource_29">AddCommand</a>(<span class="keywordtype">char</span>* cmd, handlerfunc f, <span class="keywordtype">char</span> flags, <span class="keywordtype">int</span> minparams, <span class="keywordtype">char</span>* source);
323 <a name="l00882"></a>00882          
324 <a name="l00904"></a>00904         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendMode_28char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">SendMode</a>(<span class="keywordtype">char</span> **parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a> *user);
325 <a name="l00905"></a>00905         
326 <a name="l00918"></a>00918         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#SendToModeMask_28std_3A_3Astring_20modes_2C_20int_20flags_2C_20std_3A_3Astring_20text_29">SendToModeMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> modes, <span class="keywordtype">int</span> flags, <a class="code" href="namespaceirc.html#string">std::string</a> text);
327 <a name="l00919"></a>00919 
328 <a name="l00925"></a>00925         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#JoinUserToChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20key_29">JoinUserToChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> key);
329 <a name="l00926"></a>00926         
330 <a name="l00932"></a>00932         <span class="keyword">virtual</span> <a class="code" href="classchanrec.html">chanrec</a>* <a class="code" href="classServer.html#PartUserFromChannel_28userrec_20_2Auser_2C_20std_3A_3Astring_20cname_2C_20std_3A_3Astring_20reason_29">PartUserFromChannel</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> cname, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
331 <a name="l00933"></a>00933         
332 <a name="l00939"></a>00939         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeUserNick_28userrec_20_2Auser_2C_20std_3A_3Astring_20nickname_29">ChangeUserNick</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> nickname);
333 <a name="l00940"></a>00940         
334 <a name="l00951"></a>00951         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#QuitUser_28userrec_20_2Auser_2C_20std_3A_3Astring_20reason_29">QuitUser</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> reason);
335 <a name="l00952"></a>00952         
336 <a name="l00957"></a>00957         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#MatchText_28std_3A_3Astring_20sliteral_2C_20std_3A_3Astring_20spattern_29">MatchText</a>(<a class="code" href="namespaceirc.html#string">std::string</a> sliteral, <a class="code" href="namespaceirc.html#string">std::string</a> spattern);
337 <a name="l00958"></a>00958         
338 <a name="l00970"></a>00970         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#CallCommandHandler_28std_3A_3Astring_20commandname_2C_20char_20_2A_2Aparameters_2C_20int_20pcnt_2C_20userrec_20_2Auser_29">CallCommandHandler</a>(<a class="code" href="namespaceirc.html#string">std::string</a> commandname, <span class="keywordtype">char</span>** parameters, <span class="keywordtype">int</span> pcnt, <a class="code" href="classuserrec.html">userrec</a>* user);
339 <a name="l00971"></a>00971         
340 <a name="l00977"></a>00977         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeHost_28userrec_20_2Auser_2C_20std_3A_3Astring_20host_29">ChangeHost</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> host);
341 <a name="l00978"></a>00978         
342 <a name="l00984"></a>00984         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#ChangeGECOS_28userrec_20_2Auser_2C_20std_3A_3Astring_20gecos_29">ChangeGECOS</a>(<a class="code" href="classuserrec.html">userrec</a>* user, <a class="code" href="namespaceirc.html#string">std::string</a> gecos);
343 <a name="l00985"></a>00985         
344 <a name="l00994"></a>00994         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsUlined_28std_3A_3Astring_20server_29">IsUlined</a>(<a class="code" href="namespaceirc.html#string">std::string</a> server);
345 <a name="l00995"></a>00995         
346 <a name="l00999"></a>00999         <span class="keyword">virtual</span> <a class="code" href="modules_8h.html#chanuserlist">chanuserlist</a> <a class="code" href="classServer.html#GetUsers_28chanrec_20_2Achan_29">GetUsers</a>(<a class="code" href="classchanrec.html">chanrec</a>* chan);
347 <a name="l01000"></a>01000 
348 <a name="l01007"></a>01007         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#UserToPseudo_28userrec_20_2Auser_2C_20std_3A_3Astring_20message_29">UserToPseudo</a>(<a class="code" href="classuserrec.html">userrec</a>* user,<a class="code" href="namespaceirc.html#string">std::string</a> message);
349 <a name="l01008"></a>01008 
350 <a name="l01015"></a>01015         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#PseudoToUser_28userrec_20_2Aalive_2C_20userrec_20_2Azombie_2C_20std_3A_3Astring_20message_29">PseudoToUser</a>(<a class="code" href="classuserrec.html">userrec</a>* alive,<a class="code" href="classuserrec.html">userrec</a>* zombie,<a class="code" href="namespaceirc.html#string">std::string</a> message);
351 <a name="l01016"></a>01016 
352 <a name="l01024"></a>01024         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddGLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddGLine</a>(<span class="keywordtype">long</span> <a class="code" href="commands_8h.html#duration_28const_20char_20_2Astr_29">duration</a>, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
353 <a name="l01025"></a>01025 
354 <a name="l01033"></a>01033         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddQLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20nickname_29">AddQLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> nickname);
355 <a name="l01034"></a>01034 
356 <a name="l01042"></a>01042         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddZLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20ipaddr_29">AddZLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> ipaddr);
357 <a name="l01043"></a>01043 
358 <a name="l01051"></a>01051         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddKLine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddKLine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
359 <a name="l01052"></a>01052 
360 <a name="l01060"></a>01060         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddELine_28long_20duration_2C_20std_3A_3Astring_20source_2C_20std_3A_3Astring_20reason_2C_20std_3A_3Astring_20hostmask_29">AddELine</a>(<span class="keywordtype">long</span> duration, <a class="code" href="namespaceirc.html#string">std::string</a> source, <a class="code" href="namespaceirc.html#string">std::string</a> reason, <a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
361 <a name="l01061"></a>01061 
362 <a name="l01064"></a>01064         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelGLine_28std_3A_3Astring_20hostmask_29">DelGLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
363 <a name="l01065"></a>01065 
364 <a name="l01068"></a>01068         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelQLine_28std_3A_3Astring_20nickname_29">DelQLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> nickname);
365 <a name="l01069"></a>01069 
366 <a name="l01072"></a>01072         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelZLine_28std_3A_3Astring_20ipaddr_29">DelZLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> ipaddr);
367 <a name="l01073"></a>01073 
368 <a name="l01076"></a>01076         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelKLine_28std_3A_3Astring_20hostmask_29">DelKLine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
369 <a name="l01077"></a>01077 
370 <a name="l01080"></a>01080         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#DelELine_28std_3A_3Astring_20hostmask_29">DelELine</a>(<a class="code" href="namespaceirc.html#string">std::string</a> hostmask);
371 <a name="l01081"></a>01081 
372 <a name="l01087"></a>01087         <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classServer.html#CalcDuration_28std_3A_3Astring_20duration_29">CalcDuration</a>(<a class="code" href="namespaceirc.html#string">std::string</a> duration);
373 <a name="l01088"></a>01088 
374 <a name="l01091"></a>01091         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classServer.html#IsValidMask_28std_3A_3Astring_20mask_29">IsValidMask</a>(<a class="code" href="namespaceirc.html#string">std::string</a> mask);
375 <a name="l01092"></a>01092 
376 <a name="l01097"></a>01097         <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a>* <a class="code" href="classServer.html#FindModule_28std_3A_3Astring_20name_29">FindModule</a>(<a class="code" href="namespaceirc.html#string">std::string</a> name);
377 <a name="l01098"></a>01098 
378 <a name="l01101"></a>01101         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#AddSocket_28InspSocket_20_2Asock_29">AddSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock);
379 <a name="l01102"></a>01102 
380 <a name="l01105"></a>01105         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classServer.html#DelSocket_28InspSocket_20_2Asock_29">DelSocket</a>(<a class="code" href="classInspSocket.html">InspSocket</a>* sock);
381 <a name="l01106"></a>01106 };
382 <a name="l01107"></a>01107 
383 <a name="l01108"></a>01108 
384 <a name="l01109"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FA_5FNUMBER">01109</a> <span class="preprocessor">#define CONF_NOT_A_NUMBER       0x000010</span>
385 <a name="l01110"></a><a class="code" href="modules_8h.html#CONF_5FNOT_5FUNSIGNED">01110</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_NOT_UNSIGNED       0x000080</span>
386 <a name="l01111"></a><a class="code" href="modules_8h.html#CONF_5FVALUE_5FNOT_5FFOUND">01111</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_VALUE_NOT_FOUND    0x000100</span>
387 <a name="l01112"></a><a class="code" href="modules_8h.html#CONF_5FFILE_5FNOT_5FFOUND">01112</a> <span class="preprocessor"></span><span class="preprocessor">#define CONF_FILE_NOT_FOUND     0x000200</span>
388 <a name="l01113"></a>01113 <span class="preprocessor"></span>
389 <a name="l01114"></a>01114 
390 <a name="l01121"></a><a class="code" href="classConfigReader.html">01121</a> <span class="keyword">class </span><a class="code" href="classConfigReader.html">ConfigReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
391 <a name="l01122"></a>01122 {
392 <a name="l01123"></a>01123   <span class="keyword">protected</span>:
393 <a name="l01129"></a><a class="code" href="classConfigReader.html#cache">01129</a>         std::stringstream *<a class="code" href="classConfigReader.html#cache">cache</a>;
394 <a name="l01130"></a><a class="code" href="classConfigReader.html#errorlog">01130</a>         std::stringstream *<a class="code" href="classConfigReader.html#errorlog">errorlog</a>;
395 <a name="l01133"></a><a class="code" href="classConfigReader.html#readerror">01133</a>         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#readerror">readerror</a>;
396 <a name="l01134"></a><a class="code" href="classConfigReader.html#error">01134</a>         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#error">error</a>;
397 <a name="l01135"></a>01135         
398 <a name="l01136"></a>01136   <span class="keyword">public</span>:
399 <a name="l01141"></a>01141         <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>();                 <span class="comment">// default constructor reads ircd.conf</span>
400 <a name="l01145"></a>01145 <span class="comment"></span>        <a class="code" href="classConfigReader.html#ConfigReader_28_29">ConfigReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);     <span class="comment">// read a module-specific config</span>
401 <a name="l01149"></a>01149 <span class="comment"></span>        <a class="code" href="classConfigReader.html#_7EConfigReader_28_29">~ConfigReader</a>();
402 <a name="l01154"></a>01154         <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classConfigReader.html#ReadValue_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ReadValue</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index);
403 <a name="l01160"></a>01160         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#ReadFlag_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_29">ReadFlag</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index);
404 <a name="l01169"></a>01169         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#ReadInteger_28std_3A_3Astring_20tag_2C_20std_3A_3Astring_20name_2C_20int_20index_2C_20bool_20needs_5Funsigned_29">ReadInteger</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <a class="code" href="namespaceirc.html#string">std::string</a> name, <span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> needs_unsigned);
405 <a name="l01174"></a>01174         <span class="keywordtype">long</span> <a class="code" href="classConfigReader.html#GetError_28_29">GetError</a>();
406 <a name="l01181"></a>01181         <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#Enumerate_28std_3A_3Astring_20tag_29">Enumerate</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag);
407 <a name="l01186"></a>01186         <span class="keywordtype">bool</span> <a class="code" href="classConfigReader.html#Verify_28_29">Verify</a>();
408 <a name="l01193"></a>01193         <span class="keywordtype">void</span> <a class="code" href="classConfigReader.html#DumpErrors_28bool_20bail_2C_20userrec_20_2Auser_29">DumpErrors</a>(<span class="keywordtype">bool</span> bail,<a class="code" href="classuserrec.html">userrec</a>* user);
409 <a name="l01194"></a>01194 
410 <a name="l01200"></a>01200         <span class="keywordtype">int</span> <a class="code" href="classConfigReader.html#EnumerateValues_28std_3A_3Astring_20tag_2C_20int_20index_29">EnumerateValues</a>(<a class="code" href="namespaceirc.html#string">std::string</a> tag, <span class="keywordtype">int</span> index);
411 <a name="l01201"></a>01201 };
412 <a name="l01202"></a>01202 
413 <a name="l01203"></a>01203 
414 <a name="l01204"></a>01204 
415 <a name="l01210"></a><a class="code" href="classFileReader.html">01210</a> <span class="keyword">class </span><a class="code" href="classFileReader.html">FileReader</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
416 <a name="l01211"></a>01211 {
417 <a name="l01212"></a><a class="code" href="classFileReader.html#fc">01212</a>  <a class="code" href="modules_8h.html#file_5Fcache">file_cache</a> <a class="code" href="classFileReader.html#fc">fc</a>;
418 <a name="l01213"></a>01213  <span class="keyword">public</span>:
419 <a name="l01218"></a>01218          <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>();
420 <a name="l01219"></a>01219 
421 <a name="l01225"></a>01225          <a class="code" href="classFileReader.html#FileReader_28_29">FileReader</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
422 <a name="l01226"></a>01226 
423 <a name="l01230"></a>01230          <a class="code" href="classFileReader.html#_7EFileReader_28_29">~FileReader</a>();
424 <a name="l01231"></a>01231 
425 <a name="l01237"></a>01237          <span class="keywordtype">void</span> <a class="code" href="classFileReader.html#LoadFile_28std_3A_3Astring_20filename_29">LoadFile</a>(<a class="code" href="namespaceirc.html#string">std::string</a> filename);
426 <a name="l01238"></a>01238 
427 <a name="l01242"></a>01242          <span class="keywordtype">bool</span> <a class="code" href="classFileReader.html#Exists_28_29">Exists</a>();
428 <a name="l01243"></a>01243          
429 <a name="l01248"></a>01248          <a class="code" href="namespaceirc.html#string">std::string</a> <a class="code" href="classFileReader.html#GetLine_28int_20x_29">GetLine</a>(<span class="keywordtype">int</span> x);
430 <a name="l01249"></a>01249 
431 <a name="l01255"></a>01255          <span class="keywordtype">int</span> <a class="code" href="classFileReader.html#FileSize_28_29">FileSize</a>();
432 <a name="l01256"></a>01256 };
433 <a name="l01257"></a>01257 
434 <a name="l01258"></a>01258 
435 <a name="l01265"></a><a class="code" href="classModuleFactory.html">01265</a> <span class="keyword">class </span><a class="code" href="classModuleFactory.html">ModuleFactory</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
436 <a name="l01266"></a>01266 {
437 <a name="l01267"></a>01267  <span class="keyword">public</span>:
438 <a name="l01268"></a><a class="code" href="classModuleFactory.html#ModuleFactory_28_29">01268</a>         <a class="code" href="classModuleFactory.html#ModuleFactory_28_29">ModuleFactory</a>() { }
439 <a name="l01269"></a><a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">01269</a>         <span class="keyword">virtual</span> <a class="code" href="classModuleFactory.html#_7EModuleFactory_28_29">~ModuleFactory</a>() { }
440 <a name="l01274"></a>01274         <span class="keyword">virtual</span> <a class="code" href="classModule.html">Module</a> * <a class="code" href="classModuleFactory.html#CreateModule_28_29_3D_30">CreateModule</a>() = 0;
441 <a name="l01275"></a>01275 };
442 <a name="l01276"></a>01276 
443 <a name="l01277"></a>01277 
444 <a name="l01278"></a><a class="code" href="modules_8h.html#ircd_5Fmodule">01278</a> <span class="keyword">typedef</span> DLLFactory&lt;ModuleFactory&gt; <a class="code" href="modules_8h.html#ircd_5Fmodule">ircd_module</a>;
445 <a name="l01279"></a>01279 
446 <a name="l01280"></a>01280 <span class="preprocessor">#endif</span>
447 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Nov 27 01:43:24 2005 for InspIRCd by&nbsp;
448 <a href="http://www.doxygen.org/index.html">
449 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
450 </body>
451 </html>