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">
6 <!-- Generated by Doxygen 1.4.4-20050815 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div>
9 <a class="el" href="dir_000000.html">home</a> » <a class="el" href="dir_000001.html">brain</a> » <a class="el" href="dir_000002.html">inspircd-cvs</a> » <a class="el" href="dir_000003.html">inspircd</a> » <a class="el" href="dir_000004.html">include</a></div>
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"> * <brain@chatspike.net></span>
17 <a name="l00008"></a>00008 <span class="comment"> * <Craig@chatspike.net></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 <string></span>
72 <a name="l00063"></a>00063 <span class="preprocessor">#include <deque></span>
73 <a name="l00064"></a>00064 <span class="preprocessor">#include <sstream></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<std::string> <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<userrec*> <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 <= MODCOUNT; _i++) modules[_i]-></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 <= MODCOUNT; _i++) { \</span>
95 <a name="l00090"></a>00090 <span class="preprocessor"> int res = modules[_i]->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> &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> &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> &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> &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> &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> &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> &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> &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<ModuleFactory> <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
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>