]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - docs/module-doc/classchanrec.html
Added final documentation for inspircd Beta 4
[user/henk/code/inspircd.git] / docs / module-doc / classchanrec.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>InspIRCd: chanrec class Reference</title>
4 <link href="inspircd.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.3.3 -->
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">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
8 <h1>chanrec Class Reference</h1>Holds all relevent information for a channel.  
9 <a href="#_details">More...</a>
10 <p>
11 <code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
12 <p>
13 Inherits <a class="el" href="classExtensible.html">Extensible</a>.
14 <p>
15 <a href="classchanrec-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
16 <tr><td></td></tr>
17 <tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
18 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a0">SetCustomMode</a> (char mode, bool mode_on)</td></tr>
19
20 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or unsets a custom mode in the channels info. </em> <a href="#a0"></a><em><br><br></td></tr>
21 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a1">SetCustomModeParam</a> (char mode, char *parameter, bool mode_on)</td></tr>
22
23 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or unsets the parameters for a custom mode in a channels info. </em> <a href="#a1"></a><em><br><br></td></tr>
24 <tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a2">IsCustomModeSet</a> (char mode)</td></tr>
25
26 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if a custom mode is set on a channel. </em> <a href="#a2"></a><em><br><br></td></tr>
27 <tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a3">GetModeParameter</a> (char mode)</td></tr>
28
29 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the parameter for a custom mode on a channel. </em> <a href="#a3"></a><em><br><br></td></tr>
30 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a4">IncUserCounter</a> ()</td></tr>
31
32 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Increment the channel "user counter" The channel user counter is a reference counter which holds the number of users on the channel. </em> <a href="#a4"></a><em><br><br></td></tr>
33 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a5">DecUserCounter</a> ()</td></tr>
34
35 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decrement the channel "user counter" The channel user counter is a reference counter which holds the number of users on the channel. </em> <a href="#a5"></a><em><br><br></td></tr>
36 <tr><td class="memItemLeft" nowrap align=right valign=top>long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a6">GetUserCounter</a> ()</td></tr>
37
38 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain the channel "user counter" This returns the channel reference counter, which is initialized to 0 when the channel is created and incremented/decremented upon joins, parts quits and kicks. </em> <a href="#a6"></a><em><br><br></td></tr>
39 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a7">AddUser</a> (char *castuser)</td></tr>
40
41 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a user pointer to the internal reference list The data inserted into the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. </em> <a href="#a7"></a><em><br><br></td></tr>
42 <tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a8">DelUser</a> (char *castuser)</td></tr>
43
44 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a user pointer to the internal reference list The data removed from the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. </em> <a href="#a8"></a><em><br><br></td></tr>
45 <tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; char * &gt; *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a9">GetUsers</a> ()</td></tr>
46
47 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obrain the internal reference list The internal reference list contains a list of userrec* cast to char*. </em> <a href="#a9"></a><em><br><br></td></tr>
48 <tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a10">chanrec</a> ()</td></tr>
49
50 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a channel record and initialises it with default values. </em> <a href="#a10"></a><em><br><br></td></tr>
51 <tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#a11">~chanrec</a> ()</td></tr>
52
53 <tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
54 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o0">name</a> [CHANMAX]</td></tr>
55
56 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The channels name. </em> <a href="#o0"></a><em><br><br></td></tr>
57 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o1">custom_modes</a> [MAXMODES]</td></tr>
58
59 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Custom modes for the channel. </em> <a href="#o1"></a><em><br><br></td></tr>
60 <tr><td class="memItemLeft" nowrap align=right valign=top>long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o2">users</a></td></tr>
61
62 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count of users on the channel used for fast user counting. </em> <a href="#o2"></a><em><br><br></td></tr>
63 <tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; char * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o3">internal_userlist</a></td></tr>
64
65 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">User list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!). </em> <a href="#o3"></a><em><br><br></td></tr>
66 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o4">topic</a> [MAXBUF]</td></tr>
67
68 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Channel topic. </em> <a href="#o4"></a><em><br><br></td></tr>
69 <tr><td class="memItemLeft" nowrap align=right valign=top>time_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o5">created</a></td></tr>
70
71 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creation time. </em> <a href="#o5"></a><em><br><br></td></tr>
72 <tr><td class="memItemLeft" nowrap align=right valign=top>time_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o6">topicset</a></td></tr>
73
74 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Time topic was set. </em> <a href="#o6"></a><em><br><br></td></tr>
75 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o7">setby</a> [NICKMAX]</td></tr>
76
77 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The last user to set the topic. </em> <a href="#o7"></a><em><br><br></td></tr>
78 <tr><td class="memItemLeft" nowrap align=right valign=top>long&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o8">limit</a></td></tr>
79
80 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the channel user limit. </em> <a href="#o8"></a><em><br><br></td></tr>
81 <tr><td class="memItemLeft" nowrap align=right valign=top>char&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o9">key</a> [32]</td></tr>
82
83 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the channel key. </em> <a href="#o9"></a><em><br><br></td></tr>
84 <tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o10">topiclock</a></td></tr>
85
86 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +t is set. </em> <a href="#o10"></a><em><br><br></td></tr>
87 <tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o11">noexternal</a></td></tr>
88
89 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +n is set. </em> <a href="#o11"></a><em><br><br></td></tr>
90 <tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o12">inviteonly</a></td></tr>
91
92 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +i is set. </em> <a href="#o12"></a><em><br><br></td></tr>
93 <tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o13">moderated</a></td></tr>
94
95 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +m is set. </em> <a href="#o13"></a><em><br><br></td></tr>
96 <tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o14">secret</a></td></tr>
97
98 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +s is set. </em> <a href="#o14"></a><em><br><br></td></tr>
99 <tr><td class="memItemLeft" nowrap align=right valign=top>short int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o15">c_private</a></td></tr>
100
101 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nonzero if the mode +p is set. </em> <a href="#o15"></a><em><br><br></td></tr>
102 <tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="channels_8h.html#a5">BanList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classchanrec.html#o16">bans</a></td></tr>
103
104 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The list of all bans set on the channel. </em> <a href="#o16"></a><em><br><br></td></tr>
105 </table>
106 <hr><a name="_details"></a><h2>Detailed Description</h2>
107 Holds all relevent information for a channel. 
108 <p>
109 This class represents a channel, and contains its name, modes, time created, topic, topic set time, etc, and an instance of the BanList type. 
110 <p>
111
112 <p>
113 Definition at line <a class="el" href="channels_8h-source.html#l00094">94</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
114 <a name="a10" doxytag="chanrec::chanrec"></a><p>
115 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
116   <tr>
117     <td class="mdRow">
118       <table cellpadding="0" cellspacing="0" border="0">
119         <tr>
120           <td class="md" nowrap valign="top"> chanrec::chanrec </td>
121           <td class="md" valign="top">(&nbsp;</td>
122           <td class="mdname1" valign="top" nowrap>          </td>
123           <td class="md" valign="top">&nbsp;)&nbsp;</td>
124           <td class="md" nowrap></td>
125         </tr>
126
127       </table>
128     </td>
129   </tr>
130 </table>
131 <table cellspacing=5 cellpadding=0 border=0>
132   <tr>
133     <td>
134       &nbsp;
135     </td>
136     <td>
137
138 <p>
139 Creates a channel record and initialises it with default values. 
140 <p>
141
142 <p>
143 Definition at line <a class="el" href="channels_8cpp-source.html#l00113">113</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
144 <p>
145 References <a class="el" href="channels_8h-source.html#l00164">c_private</a>, <a class="el" href="channels_8h-source.html#l00120">created</a>, <a class="el" href="channels_8h-source.html#l00103">custom_modes</a>, <a class="el" href="channels_8h-source.html#l00112">internal_userlist</a>, <a class="el" href="channels_8h-source.html#l00150">inviteonly</a>, <a class="el" href="channels_8h-source.html#l00138">key</a>, <a class="el" href="channels_8h-source.html#l00133">limit</a>, <a class="el" href="channels_8h-source.html#l00154">moderated</a>, <a class="el" href="channels_8h-source.html#l00099">name</a>, <a class="el" href="channels_8h-source.html#l00146">noexternal</a>, <a class="el" href="channels_8h-source.html#l00159">secret</a>, <a class="el" href="channels_8h-source.html#l00128">setby</a>, <a class="el" href="channels_8h-source.html#l00117">topic</a>, <a class="el" href="channels_8h-source.html#l00142">topiclock</a>, <a class="el" href="channels_8h-source.html#l00124">topicset</a>, and <a class="el" href="channels_8h-source.html#l00107">users</a>.
146 <p>
147 <div class="fragment"><pre>00114 {
148 00115         strcpy(name,<span class="stringliteral">""</span>);
149 00116         strcpy(custom_modes,<span class="stringliteral">""</span>);
150 00117         strcpy(topic,<span class="stringliteral">""</span>);
151 00118         strcpy(setby,<span class="stringliteral">""</span>);
152 00119         strcpy(key,<span class="stringliteral">""</span>);
153 00120         <a class="code" href="classchanrec.html#o5">created</a> = <a class="code" href="classchanrec.html#o6">topicset</a> = <a class="code" href="classchanrec.html#o8">limit</a> = <a class="code" href="classchanrec.html#o2">users</a> = 0;
154 00121         <a class="code" href="classchanrec.html#o10">topiclock</a> = <a class="code" href="classchanrec.html#o11">noexternal</a> = <a class="code" href="classchanrec.html#o12">inviteonly</a> = <a class="code" href="classchanrec.html#o13">moderated</a> = <a class="code" href="classchanrec.html#o14">secret</a> = <a class="code" href="classchanrec.html#o15">c_private</a> = <span class="keyword">false</span>;
155 00122         <a class="code" href="classchanrec.html#o3">internal_userlist</a>.clear();
156 00123 }
157 </pre></div>    </td>
158   </tr>
159 </table>
160 <a name="a11" doxytag="chanrec::~chanrec"></a><p>
161 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
162   <tr>
163     <td class="mdRow">
164       <table cellpadding="0" cellspacing="0" border="0">
165         <tr>
166           <td class="md" nowrap valign="top"> virtual chanrec::~<a class="el" href="classchanrec.html">chanrec</a> </td>
167           <td class="md" valign="top">(&nbsp;</td>
168           <td class="mdname1" valign="top" nowrap>          </td>
169           <td class="md" valign="top">&nbsp;)&nbsp;</td>
170           <td class="md" nowrap><code> [inline, virtual]</code></td>
171         </tr>
172
173       </table>
174     </td>
175   </tr>
176 </table>
177 <table cellspacing=5 cellpadding=0 border=0>
178   <tr>
179     <td>
180       &nbsp;
181     </td>
182     <td>
183
184 <p>
185
186 <p>
187 Definition at line <a class="el" href="channels_8h-source.html#l00240">240</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
188 <p>
189 <div class="fragment"><pre>00240 { <span class="comment">/* stub */</span> }
190 </pre></div>    </td>
191   </tr>
192 </table>
193 <hr><h2>Member Function Documentation</h2>
194 <a name="a7" doxytag="chanrec::AddUser"></a><p>
195 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
196   <tr>
197     <td class="mdRow">
198       <table cellpadding="0" cellspacing="0" border="0">
199         <tr>
200           <td class="md" nowrap valign="top"> void chanrec::AddUser </td>
201           <td class="md" valign="top">(&nbsp;</td>
202           <td class="md" nowrap valign="top">char *&nbsp;</td>
203           <td class="mdname1" valign="top" nowrap> <em>castuser</em>          </td>
204           <td class="md" valign="top">&nbsp;)&nbsp;</td>
205           <td class="md" nowrap></td>
206         </tr>
207
208       </table>
209     </td>
210   </tr>
211 </table>
212 <table cellspacing=5 cellpadding=0 border=0>
213   <tr>
214     <td>
215       &nbsp;
216     </td>
217     <td>
218
219 <p>
220 Add a user pointer to the internal reference list The data inserted into the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. 
221 <p>
222
223 <p>
224 Definition at line <a class="el" href="channels_8cpp-source.html#l00220">220</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
225 <p>
226 References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, and <a class="el" href="channels_8h-source.html#l00112">internal_userlist</a>.
227 <p>
228 <div class="fragment"><pre>00221 {
229 00222         <a class="code" href="classchanrec.html#o3">internal_userlist</a>.push_back(castuser);
230 00223         log(DEBUG,<span class="stringliteral">"Added casted user to channel's internal list"</span>);
231 00224 }
232 </pre></div>    </td>
233   </tr>
234 </table>
235 <a name="a5" doxytag="chanrec::DecUserCounter"></a><p>
236 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
237   <tr>
238     <td class="mdRow">
239       <table cellpadding="0" cellspacing="0" border="0">
240         <tr>
241           <td class="md" nowrap valign="top"> void chanrec::DecUserCounter </td>
242           <td class="md" valign="top">(&nbsp;</td>
243           <td class="mdname1" valign="top" nowrap>          </td>
244           <td class="md" valign="top">&nbsp;)&nbsp;</td>
245           <td class="md" nowrap></td>
246         </tr>
247
248       </table>
249     </td>
250   </tr>
251 </table>
252 <table cellspacing=5 cellpadding=0 border=0>
253   <tr>
254     <td>
255       &nbsp;
256     </td>
257     <td>
258
259 <p>
260 Decrement the channel "user counter" The channel user counter is a reference counter which holds the number of users on the channel. 
261 <p>
262 If it decremented to 0 then the channel is removed from the system. Modules may alter the reference count to hold channels open which have no users and would normally be deleted once empty.
263 <p>
264 Definition at line <a class="el" href="channels_8cpp-source.html#l00208">208</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
265 <p>
266 References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00099">name</a>, and <a class="el" href="channels_8h-source.html#l00107">users</a>.
267 <p>
268 <div class="fragment"><pre>00209 {
269 00210         <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classchanrec.html#o2">users</a> &gt; 0)
270 00211                 this-&gt;<a class="code" href="classchanrec.html#o2">users</a>--;
271 00212         log(DEBUG,<span class="stringliteral">"Decremented channel user count for %s to %lu"</span>,name,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)users);
272 00213 }
273 </pre></div>    </td>
274   </tr>
275 </table>
276 <a name="a8" doxytag="chanrec::DelUser"></a><p>
277 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
278   <tr>
279     <td class="mdRow">
280       <table cellpadding="0" cellspacing="0" border="0">
281         <tr>
282           <td class="md" nowrap valign="top"> void chanrec::DelUser </td>
283           <td class="md" valign="top">(&nbsp;</td>
284           <td class="md" nowrap valign="top">char *&nbsp;</td>
285           <td class="mdname1" valign="top" nowrap> <em>castuser</em>          </td>
286           <td class="md" valign="top">&nbsp;)&nbsp;</td>
287           <td class="md" nowrap></td>
288         </tr>
289
290       </table>
291     </td>
292   </tr>
293 </table>
294 <table cellspacing=5 cellpadding=0 border=0>
295   <tr>
296     <td>
297       &nbsp;
298     </td>
299     <td>
300
301 <p>
302 Delete a user pointer to the internal reference list The data removed from the reference list is a table as it is an arbitary pointer compared to other users by its memory address, as this is a very fast 32 or 64 bit integer comparison. 
303 <p>
304
305 <p>
306 Definition at line <a class="el" href="channels_8cpp-source.html#l00226">226</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
307 <p>
308 References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00112">internal_userlist</a>, and <a class="el" href="channels_8h-source.html#l00099">name</a>.
309 <p>
310 <div class="fragment"><pre>00227 {
311 00228         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator a = <a class="code" href="classchanrec.html#o3">internal_userlist</a>.begin(); a &lt; <a class="code" href="classchanrec.html#o3">internal_userlist</a>.end(); a++)
312 00229         {
313 00230                 <span class="keywordflow">if</span> (*a == castuser)
314 00231                 {
315 00232                         log(DEBUG,<span class="stringliteral">"Removed casted user from channel's internal list"</span>);
316 00233                         <a class="code" href="classchanrec.html#o3">internal_userlist</a>.erase(a);
317 00234                         <span class="keywordflow">return</span>;
318 00235                 }
319 00236         }
320 00237         log(DEBUG,<span class="stringliteral">"BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!"</span>,name);
321 00238 }
322 </pre></div>    </td>
323   </tr>
324 </table>
325 <a name="a3" doxytag="chanrec::GetModeParameter"></a><p>
326 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
327   <tr>
328     <td class="mdRow">
329       <table cellpadding="0" cellspacing="0" border="0">
330         <tr>
331           <td class="md" nowrap valign="top"> std::string chanrec::GetModeParameter </td>
332           <td class="md" valign="top">(&nbsp;</td>
333           <td class="md" nowrap valign="top">char&nbsp;</td>
334           <td class="mdname1" valign="top" nowrap> <em>mode</em>          </td>
335           <td class="md" valign="top">&nbsp;)&nbsp;</td>
336           <td class="md" nowrap></td>
337         </tr>
338
339       </table>
340     </td>
341   </tr>
342 </table>
343 <table cellspacing=5 cellpadding=0 border=0>
344   <tr>
345     <td>
346       &nbsp;
347     </td>
348     <td>
349
350 <p>
351 Returns the parameter for a custom mode on a channel. 
352 <p>
353 For example if "+L #foo" is set, and you pass this method 'L', it will return '#foo'. If the mode is not set on the channel, or the mode has no parameters associated with it, it will return an empty string.
354 <p>
355 Definition at line <a class="el" href="channels_8cpp-source.html#l00187">187</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
356 <p>
357 References <a class="el" href="channels_8cpp-source.html#l00111">custom_mode_params</a>.
358 <p>
359 <div class="fragment"><pre>00188 {
360 00189         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
361 00190         {
362 00191                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
363 00192                 {
364 00193                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
365 00194                         {
366 00195                                 <span class="keywordflow">return</span> std::string(i-&gt;parameter);
367 00196                         }
368 00197                 }
369 00198         }
370 00199         <span class="keywordflow">return</span> std::string(<span class="stringliteral">""</span>);
371 00200 }
372 </pre></div>    </td>
373   </tr>
374 </table>
375 <a name="a6" doxytag="chanrec::GetUserCounter"></a><p>
376 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
377   <tr>
378     <td class="mdRow">
379       <table cellpadding="0" cellspacing="0" border="0">
380         <tr>
381           <td class="md" nowrap valign="top"> long chanrec::GetUserCounter </td>
382           <td class="md" valign="top">(&nbsp;</td>
383           <td class="mdname1" valign="top" nowrap>          </td>
384           <td class="md" valign="top">&nbsp;)&nbsp;</td>
385           <td class="md" nowrap></td>
386         </tr>
387
388       </table>
389     </td>
390   </tr>
391 </table>
392 <table cellspacing=5 cellpadding=0 border=0>
393   <tr>
394     <td>
395       &nbsp;
396     </td>
397     <td>
398
399 <p>
400 Obtain the channel "user counter" This returns the channel reference counter, which is initialized to 0 when the channel is created and incremented/decremented upon joins, parts quits and kicks. 
401 <p>
402
403 <p>
404 Definition at line <a class="el" href="channels_8cpp-source.html#l00215">215</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
405 <p>
406 References <a class="el" href="channels_8h-source.html#l00107">users</a>.
407 <p>
408 <div class="fragment"><pre>00216 {
409 00217         <span class="keywordflow">return</span> (this-&gt;<a class="code" href="classchanrec.html#o2">users</a>);
410 00218 }
411 </pre></div>    </td>
412   </tr>
413 </table>
414 <a name="a9" doxytag="chanrec::GetUsers"></a><p>
415 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
416   <tr>
417     <td class="mdRow">
418       <table cellpadding="0" cellspacing="0" border="0">
419         <tr>
420           <td class="md" nowrap valign="top"> std::vector&lt; char * &gt; * chanrec::GetUsers </td>
421           <td class="md" valign="top">(&nbsp;</td>
422           <td class="mdname1" valign="top" nowrap>          </td>
423           <td class="md" valign="top">&nbsp;)&nbsp;</td>
424           <td class="md" nowrap></td>
425         </tr>
426
427       </table>
428     </td>
429   </tr>
430 </table>
431 <table cellspacing=5 cellpadding=0 border=0>
432   <tr>
433     <td>
434       &nbsp;
435     </td>
436     <td>
437
438 <p>
439 Obrain the internal reference list The internal reference list contains a list of userrec* cast to char*. 
440 <p>
441 These are used for rapid comparison to determine channel membership for PRIVMSG, NOTICE, QUIT, PART etc. The resulting pointer to the vector should be considered readonly and only modified via AddUser and DelUser.
442 <p>
443 Definition at line <a class="el" href="channels_8cpp-source.html#l00240">240</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
444 <p>
445 References <a class="el" href="channels_8h-source.html#l00112">internal_userlist</a>.
446 <p>
447 Referenced by <a class="el" href="modules_8cpp-source.html#l00457">Server::GetUsers()</a>.
448 <p>
449 <div class="fragment"><pre>00241 {
450 00242         <span class="keywordflow">return</span> &amp;<a class="code" href="classchanrec.html#o3">internal_userlist</a>;
451 00243 }
452 </pre></div>    </td>
453   </tr>
454 </table>
455 <a name="a4" doxytag="chanrec::IncUserCounter"></a><p>
456 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
457   <tr>
458     <td class="mdRow">
459       <table cellpadding="0" cellspacing="0" border="0">
460         <tr>
461           <td class="md" nowrap valign="top"> void chanrec::IncUserCounter </td>
462           <td class="md" valign="top">(&nbsp;</td>
463           <td class="mdname1" valign="top" nowrap>          </td>
464           <td class="md" valign="top">&nbsp;)&nbsp;</td>
465           <td class="md" nowrap></td>
466         </tr>
467
468       </table>
469     </td>
470   </tr>
471 </table>
472 <table cellspacing=5 cellpadding=0 border=0>
473   <tr>
474     <td>
475       &nbsp;
476     </td>
477     <td>
478
479 <p>
480 Increment the channel "user counter" The channel user counter is a reference counter which holds the number of users on the channel. 
481 <p>
482 If it decremented to 0 then the channel is removed from the system.
483 <p>
484 Definition at line <a class="el" href="channels_8cpp-source.html#l00202">202</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
485 <p>
486 References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00099">name</a>, and <a class="el" href="channels_8h-source.html#l00107">users</a>.
487 <p>
488 <div class="fragment"><pre>00203 {
489 00204         this-&gt;<a class="code" href="classchanrec.html#o2">users</a>++;
490 00205         log(DEBUG,<span class="stringliteral">"Incremented channel user count for %s to %lu"</span>,name,(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)users);
491 00206 }
492 </pre></div>    </td>
493   </tr>
494 </table>
495 <a name="a2" doxytag="chanrec::IsCustomModeSet"></a><p>
496 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
497   <tr>
498     <td class="mdRow">
499       <table cellpadding="0" cellspacing="0" border="0">
500         <tr>
501           <td class="md" nowrap valign="top"> bool chanrec::IsCustomModeSet </td>
502           <td class="md" valign="top">(&nbsp;</td>
503           <td class="md" nowrap valign="top">char&nbsp;</td>
504           <td class="mdname1" valign="top" nowrap> <em>mode</em>          </td>
505           <td class="md" valign="top">&nbsp;)&nbsp;</td>
506           <td class="md" nowrap></td>
507         </tr>
508
509       </table>
510     </td>
511   </tr>
512 </table>
513 <table cellspacing=5 cellpadding=0 border=0>
514   <tr>
515     <td>
516       &nbsp;
517     </td>
518     <td>
519
520 <p>
521 Returns true if a custom mode is set on a channel. 
522 <p>
523
524 <p>
525 Definition at line <a class="el" href="channels_8cpp-source.html#l00181">181</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
526 <p>
527 References <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>.
528 <p>
529 <div class="fragment"><pre>00182 {
530 00183         log(DEBUG,<span class="stringliteral">"Checking ISCustomModeSet: %c %s"</span>,mode,this-&gt;custom_modes);
531 00184         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode) != 0);
532 00185 }
533 </pre></div>    </td>
534   </tr>
535 </table>
536 <a name="a0" doxytag="chanrec::SetCustomMode"></a><p>
537 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
538   <tr>
539     <td class="mdRow">
540       <table cellpadding="0" cellspacing="0" border="0">
541         <tr>
542           <td class="md" nowrap valign="top"> void chanrec::SetCustomMode </td>
543           <td class="md" valign="top">(&nbsp;</td>
544           <td class="md" nowrap valign="top">char&nbsp;</td>
545           <td class="mdname" nowrap> <em>mode</em>, </td>
546         </tr>
547         <tr>
548           <td></td>
549           <td></td>
550           <td class="md" nowrap>bool&nbsp;</td>
551           <td class="mdname" nowrap> <em>mode_on</em></td>
552         </tr>
553         <tr>
554           <td></td>
555           <td class="md">)&nbsp;</td>
556           <td class="md" colspan="2"></td>
557         </tr>
558
559       </table>
560     </td>
561   </tr>
562 </table>
563 <table cellspacing=5 cellpadding=0 border=0>
564   <tr>
565     <td>
566       &nbsp;
567     </td>
568     <td>
569
570 <p>
571 Sets or unsets a custom mode in the channels info. 
572 <p>
573
574 <p>
575 Definition at line <a class="el" href="channels_8cpp-source.html#l00125">125</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
576 <p>
577 References <a class="el" href="channels_8h-source.html#l00103">custom_modes</a>, <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, and <a class="el" href="channels_8cpp-source.html#l00150">SetCustomModeParam()</a>.
578 <p>
579 <div class="fragment"><pre>00126 {
580 00127         <span class="keywordflow">if</span> (mode_on) {
581 00128                 <span class="keyword">static</span> <span class="keywordtype">char</span> m[3];
582 00129                 m[0] = mode;
583 00130                 m[1] = <span class="charliteral">'\0'</span>;
584 00131                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
585 00132                 {
586 00133                         strlcat(custom_modes,m,MAXMODES);
587 00134                 }
588 00135                 log(DEBUG,<span class="stringliteral">"Custom mode %c set"</span>,mode);
589 00136         }
590 00137         <span class="keywordflow">else</span> {
591 00138 
592 00139                 std::string a = this-&gt;<a class="code" href="classchanrec.html#o1">custom_modes</a>;
593 00140                 <span class="keywordtype">int</span> pos = a.find(mode);
594 00141                 a.erase(pos,1);
595 00142                 strncpy(this-&gt;custom_modes,a.c_str(),MAXMODES);
596 00143 
597 00144                 log(DEBUG,<span class="stringliteral">"Custom mode %c removed: modelist='%s'"</span>,mode,this-&gt;custom_modes);
598 00145                 this-&gt;<a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
599 00146         }
600 00147 }
601 </pre></div>    </td>
602   </tr>
603 </table>
604 <a name="a1" doxytag="chanrec::SetCustomModeParam"></a><p>
605 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
606   <tr>
607     <td class="mdRow">
608       <table cellpadding="0" cellspacing="0" border="0">
609         <tr>
610           <td class="md" nowrap valign="top"> void chanrec::SetCustomModeParam </td>
611           <td class="md" valign="top">(&nbsp;</td>
612           <td class="md" nowrap valign="top">char&nbsp;</td>
613           <td class="mdname" nowrap> <em>mode</em>, </td>
614         </tr>
615         <tr>
616           <td></td>
617           <td></td>
618           <td class="md" nowrap>char *&nbsp;</td>
619           <td class="mdname" nowrap> <em>parameter</em>, </td>
620         </tr>
621         <tr>
622           <td></td>
623           <td></td>
624           <td class="md" nowrap>bool&nbsp;</td>
625           <td class="mdname" nowrap> <em>mode_on</em></td>
626         </tr>
627         <tr>
628           <td></td>
629           <td class="md">)&nbsp;</td>
630           <td class="md" colspan="2"></td>
631         </tr>
632
633       </table>
634     </td>
635   </tr>
636 </table>
637 <table cellspacing=5 cellpadding=0 border=0>
638   <tr>
639     <td>
640       &nbsp;
641     </td>
642     <td>
643
644 <p>
645 Sets or unsets the parameters for a custom mode in a channels info. 
646 <p>
647
648 <p>
649 Definition at line <a class="el" href="channels_8cpp-source.html#l00150">150</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
650 <p>
651 References <a class="el" href="channels_8h-source.html#l00075">ModeParameter::channel</a>, <a class="el" href="channels_8cpp-source.html#l00111">custom_mode_params</a>, <a class="el" href="modules_8h-source.html#l00023">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00073">ModeParameter::mode</a>, and <a class="el" href="channels_8h-source.html#l00074">ModeParameter::parameter</a>.
652 <p>
653 Referenced by <a class="el" href="channels_8cpp-source.html#l00125">SetCustomMode()</a>.
654 <p>
655 <div class="fragment"><pre>00151 {
656 00152 
657 00153         log(DEBUG,<span class="stringliteral">"SetCustomModeParam called"</span>);
658 00154         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
659 00155         M.<a class="code" href="classModeParameter.html#o0">mode</a> = mode;
660 00156         strlcpy(M.<a class="code" href="classModeParameter.html#o2">channel</a>,this-&gt;name,CHANMAX);
661 00157         strlcpy(M.<a class="code" href="classModeParameter.html#o1">parameter</a>,parameter,MAXBUF);
662 00158         <span class="keywordflow">if</span> (mode_on)
663 00159         {
664 00160                 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
665 00161                 <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.push_back(M);
666 00162         }
667 00163         <span class="keywordflow">else</span>
668 00164         {
669 00165                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.size())
670 00166                 {
671 00167                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.end(); i++)
672 00168                         {
673 00169                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
674 00170                                 {
675 00171                                         log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
676 00172                                         <a class="code" href="channels_8cpp.html#a38">custom_mode_params</a>.erase(i);
677 00173                                         <span class="keywordflow">return</span>;
678 00174                                 }
679 00175                         }
680 00176                 }
681 00177                 log(DEBUG,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
682 00178         }
683 00179 }
684 </pre></div>    </td>
685   </tr>
686 </table>
687 <hr><h2>Member Data Documentation</h2>
688 <a name="o16" doxytag="chanrec::bans"></a><p>
689 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
690   <tr>
691     <td class="mdRow">
692       <table cellpadding="0" cellspacing="0" border="0">
693         <tr>
694           <td class="md" nowrap valign="top"> <a class="el" href="channels_8h.html#a5">BanList</a> <a class="el" href="classchanrec.html#o16">chanrec::bans</a>
695       </table>
696     </td>
697   </tr>
698 </table>
699 <table cellspacing=5 cellpadding=0 border=0>
700   <tr>
701     <td>
702       &nbsp;
703     </td>
704     <td>
705
706 <p>
707 The list of all bans set on the channel. 
708 <p>
709
710 <p>
711 Definition at line <a class="el" href="channels_8h-source.html#l00168">168</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
712   </tr>
713 </table>
714 <a name="o15" doxytag="chanrec::c_private"></a><p>
715 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
716   <tr>
717     <td class="mdRow">
718       <table cellpadding="0" cellspacing="0" border="0">
719         <tr>
720           <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o15">chanrec::c_private</a>
721       </table>
722     </td>
723   </tr>
724 </table>
725 <table cellspacing=5 cellpadding=0 border=0>
726   <tr>
727     <td>
728       &nbsp;
729     </td>
730     <td>
731
732 <p>
733 Nonzero if the mode +p is set. 
734 <p>
735 This value cannot be set at the same time as <a class="el" href="classchanrec.html#o14">chanrec::secret</a>
736 <p>
737 Definition at line <a class="el" href="channels_8h-source.html#l00164">164</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
738 <p>
739 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
740   </tr>
741 </table>
742 <a name="o5" doxytag="chanrec::created"></a><p>
743 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
744   <tr>
745     <td class="mdRow">
746       <table cellpadding="0" cellspacing="0" border="0">
747         <tr>
748           <td class="md" nowrap valign="top"> time_t <a class="el" href="classchanrec.html#o5">chanrec::created</a>
749       </table>
750     </td>
751   </tr>
752 </table>
753 <table cellspacing=5 cellpadding=0 border=0>
754   <tr>
755     <td>
756       &nbsp;
757     </td>
758     <td>
759
760 <p>
761 Creation time. 
762 <p>
763
764 <p>
765 Definition at line <a class="el" href="channels_8h-source.html#l00120">120</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
766 <p>
767 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
768   </tr>
769 </table>
770 <a name="o1" doxytag="chanrec::custom_modes"></a><p>
771 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
772   <tr>
773     <td class="mdRow">
774       <table cellpadding="0" cellspacing="0" border="0">
775         <tr>
776           <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o1">chanrec::custom_modes</a>[MAXMODES]
777       </table>
778     </td>
779   </tr>
780 </table>
781 <table cellspacing=5 cellpadding=0 border=0>
782   <tr>
783     <td>
784       &nbsp;
785     </td>
786     <td>
787
788 <p>
789 Custom modes for the channel. 
790 <p>
791 Plugins may use this field in any way they see fit.
792 <p>
793 Definition at line <a class="el" href="channels_8h-source.html#l00103">103</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
794 <p>
795 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="channels_8cpp-source.html#l00125">SetCustomMode()</a>.    </td>
796   </tr>
797 </table>
798 <a name="o3" doxytag="chanrec::internal_userlist"></a><p>
799 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
800   <tr>
801     <td class="mdRow">
802       <table cellpadding="0" cellspacing="0" border="0">
803         <tr>
804           <td class="md" nowrap valign="top"> std::vector&lt;char*&gt; <a class="el" href="classchanrec.html#o3">chanrec::internal_userlist</a>
805       </table>
806     </td>
807   </tr>
808 </table>
809 <table cellspacing=5 cellpadding=0 border=0>
810   <tr>
811     <td>
812       &nbsp;
813     </td>
814     <td>
815
816 <p>
817 User list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!). 
818 <p>
819
820 <p>
821 Definition at line <a class="el" href="channels_8h-source.html#l00112">112</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
822 <p>
823 Referenced by <a class="el" href="channels_8cpp-source.html#l00220">AddUser()</a>, <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00226">DelUser()</a>, and <a class="el" href="channels_8cpp-source.html#l00240">GetUsers()</a>.    </td>
824   </tr>
825 </table>
826 <a name="o12" doxytag="chanrec::inviteonly"></a><p>
827 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
828   <tr>
829     <td class="mdRow">
830       <table cellpadding="0" cellspacing="0" border="0">
831         <tr>
832           <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o12">chanrec::inviteonly</a>
833       </table>
834     </td>
835   </tr>
836 </table>
837 <table cellspacing=5 cellpadding=0 border=0>
838   <tr>
839     <td>
840       &nbsp;
841     </td>
842     <td>
843
844 <p>
845 Nonzero if the mode +i is set. 
846 <p>
847
848 <p>
849 Definition at line <a class="el" href="channels_8h-source.html#l00150">150</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
850 <p>
851 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
852   </tr>
853 </table>
854 <a name="o9" doxytag="chanrec::key"></a><p>
855 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
856   <tr>
857     <td class="mdRow">
858       <table cellpadding="0" cellspacing="0" border="0">
859         <tr>
860           <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o9">chanrec::key</a>[32]
861       </table>
862     </td>
863   </tr>
864 </table>
865 <table cellspacing=5 cellpadding=0 border=0>
866   <tr>
867     <td>
868       &nbsp;
869     </td>
870     <td>
871
872 <p>
873 Contains the channel key. 
874 <p>
875 If this value is an empty string, there is no channel key in place.
876 <p>
877 Definition at line <a class="el" href="channels_8h-source.html#l00138">138</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
878 <p>
879 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
880   </tr>
881 </table>
882 <a name="o8" doxytag="chanrec::limit"></a><p>
883 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
884   <tr>
885     <td class="mdRow">
886       <table cellpadding="0" cellspacing="0" border="0">
887         <tr>
888           <td class="md" nowrap valign="top"> long <a class="el" href="classchanrec.html#o8">chanrec::limit</a>
889       </table>
890     </td>
891   </tr>
892 </table>
893 <table cellspacing=5 cellpadding=0 border=0>
894   <tr>
895     <td>
896       &nbsp;
897     </td>
898     <td>
899
900 <p>
901 Contains the channel user limit. 
902 <p>
903 If this value is zero, there is no limit in place.
904 <p>
905 Definition at line <a class="el" href="channels_8h-source.html#l00133">133</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
906 <p>
907 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
908   </tr>
909 </table>
910 <a name="o13" doxytag="chanrec::moderated"></a><p>
911 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
912   <tr>
913     <td class="mdRow">
914       <table cellpadding="0" cellspacing="0" border="0">
915         <tr>
916           <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o13">chanrec::moderated</a>
917       </table>
918     </td>
919   </tr>
920 </table>
921 <table cellspacing=5 cellpadding=0 border=0>
922   <tr>
923     <td>
924       &nbsp;
925     </td>
926     <td>
927
928 <p>
929 Nonzero if the mode +m is set. 
930 <p>
931
932 <p>
933 Definition at line <a class="el" href="channels_8h-source.html#l00154">154</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
934 <p>
935 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
936   </tr>
937 </table>
938 <a name="o0" doxytag="chanrec::name"></a><p>
939 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
940   <tr>
941     <td class="mdRow">
942       <table cellpadding="0" cellspacing="0" border="0">
943         <tr>
944           <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o0">chanrec::name</a>[CHANMAX]
945       </table>
946     </td>
947   </tr>
948 </table>
949 <table cellspacing=5 cellpadding=0 border=0>
950   <tr>
951     <td>
952       &nbsp;
953     </td>
954     <td>
955
956 <p>
957 The channels name. 
958 <p>
959
960 <p>
961 Definition at line <a class="el" href="channels_8h-source.html#l00099">99</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
962 <p>
963 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00208">DecUserCounter()</a>, <a class="el" href="channels_8cpp-source.html#l00226">DelUser()</a>, <a class="el" href="channels_8cpp-source.html#l00202">IncUserCounter()</a>, and <a class="el" href="modules_8cpp-source.html#l00681">Server::PseudoToUser()</a>.    </td>
964   </tr>
965 </table>
966 <a name="o11" doxytag="chanrec::noexternal"></a><p>
967 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
968   <tr>
969     <td class="mdRow">
970       <table cellpadding="0" cellspacing="0" border="0">
971         <tr>
972           <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o11">chanrec::noexternal</a>
973       </table>
974     </td>
975   </tr>
976 </table>
977 <table cellspacing=5 cellpadding=0 border=0>
978   <tr>
979     <td>
980       &nbsp;
981     </td>
982     <td>
983
984 <p>
985 Nonzero if the mode +n is set. 
986 <p>
987
988 <p>
989 Definition at line <a class="el" href="channels_8h-source.html#l00146">146</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
990 <p>
991 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
992   </tr>
993 </table>
994 <a name="o14" doxytag="chanrec::secret"></a><p>
995 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
996   <tr>
997     <td class="mdRow">
998       <table cellpadding="0" cellspacing="0" border="0">
999         <tr>
1000           <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o14">chanrec::secret</a>
1001       </table>
1002     </td>
1003   </tr>
1004 </table>
1005 <table cellspacing=5 cellpadding=0 border=0>
1006   <tr>
1007     <td>
1008       &nbsp;
1009     </td>
1010     <td>
1011
1012 <p>
1013 Nonzero if the mode +s is set. 
1014 <p>
1015 This value cannot be set at the same time as <a class="el" href="classchanrec.html#o15">chanrec::c_private</a>
1016 <p>
1017 Definition at line <a class="el" href="channels_8h-source.html#l00159">159</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
1018 <p>
1019 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
1020   </tr>
1021 </table>
1022 <a name="o7" doxytag="chanrec::setby"></a><p>
1023 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1024   <tr>
1025     <td class="mdRow">
1026       <table cellpadding="0" cellspacing="0" border="0">
1027         <tr>
1028           <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o7">chanrec::setby</a>[NICKMAX]
1029       </table>
1030     </td>
1031   </tr>
1032 </table>
1033 <table cellspacing=5 cellpadding=0 border=0>
1034   <tr>
1035     <td>
1036       &nbsp;
1037     </td>
1038     <td>
1039
1040 <p>
1041 The last user to set the topic. 
1042 <p>
1043 If this member is an empty string, no topic was ever set.
1044 <p>
1045 Definition at line <a class="el" href="channels_8h-source.html#l00128">128</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
1046 <p>
1047 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00681">Server::PseudoToUser()</a>.    </td>
1048   </tr>
1049 </table>
1050 <a name="o4" doxytag="chanrec::topic"></a><p>
1051 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1052   <tr>
1053     <td class="mdRow">
1054       <table cellpadding="0" cellspacing="0" border="0">
1055         <tr>
1056           <td class="md" nowrap valign="top"> char <a class="el" href="classchanrec.html#o4">chanrec::topic</a>[MAXBUF]
1057       </table>
1058     </td>
1059   </tr>
1060 </table>
1061 <table cellspacing=5 cellpadding=0 border=0>
1062   <tr>
1063     <td>
1064       &nbsp;
1065     </td>
1066     <td>
1067
1068 <p>
1069 Channel topic. 
1070 <p>
1071 If this is an empty string, no channel topic is set.
1072 <p>
1073 Definition at line <a class="el" href="channels_8h-source.html#l00117">117</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
1074 <p>
1075 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00681">Server::PseudoToUser()</a>.    </td>
1076   </tr>
1077 </table>
1078 <a name="o10" doxytag="chanrec::topiclock"></a><p>
1079 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1080   <tr>
1081     <td class="mdRow">
1082       <table cellpadding="0" cellspacing="0" border="0">
1083         <tr>
1084           <td class="md" nowrap valign="top"> short int <a class="el" href="classchanrec.html#o10">chanrec::topiclock</a>
1085       </table>
1086     </td>
1087   </tr>
1088 </table>
1089 <table cellspacing=5 cellpadding=0 border=0>
1090   <tr>
1091     <td>
1092       &nbsp;
1093     </td>
1094     <td>
1095
1096 <p>
1097 Nonzero if the mode +t is set. 
1098 <p>
1099
1100 <p>
1101 Definition at line <a class="el" href="channels_8h-source.html#l00142">142</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
1102 <p>
1103 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>.    </td>
1104   </tr>
1105 </table>
1106 <a name="o6" doxytag="chanrec::topicset"></a><p>
1107 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1108   <tr>
1109     <td class="mdRow">
1110       <table cellpadding="0" cellspacing="0" border="0">
1111         <tr>
1112           <td class="md" nowrap valign="top"> time_t <a class="el" href="classchanrec.html#o6">chanrec::topicset</a>
1113       </table>
1114     </td>
1115   </tr>
1116 </table>
1117 <table cellspacing=5 cellpadding=0 border=0>
1118   <tr>
1119     <td>
1120       &nbsp;
1121     </td>
1122     <td>
1123
1124 <p>
1125 Time topic was set. 
1126 <p>
1127 If no topic was ever set, this will be equal to <a class="el" href="classchanrec.html#o5">chanrec::created</a>
1128 <p>
1129 Definition at line <a class="el" href="channels_8h-source.html#l00124">124</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
1130 <p>
1131 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, and <a class="el" href="modules_8cpp-source.html#l00681">Server::PseudoToUser()</a>.    </td>
1132   </tr>
1133 </table>
1134 <a name="o2" doxytag="chanrec::users"></a><p>
1135 <table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1136   <tr>
1137     <td class="mdRow">
1138       <table cellpadding="0" cellspacing="0" border="0">
1139         <tr>
1140           <td class="md" nowrap valign="top"> long <a class="el" href="classchanrec.html#o2">chanrec::users</a>
1141       </table>
1142     </td>
1143   </tr>
1144 </table>
1145 <table cellspacing=5 cellpadding=0 border=0>
1146   <tr>
1147     <td>
1148       &nbsp;
1149     </td>
1150     <td>
1151
1152 <p>
1153 Count of users on the channel used for fast user counting. 
1154 <p>
1155
1156 <p>
1157 Definition at line <a class="el" href="channels_8h-source.html#l00107">107</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
1158 <p>
1159 Referenced by <a class="el" href="channels_8cpp-source.html#l00113">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00208">DecUserCounter()</a>, <a class="el" href="channels_8cpp-source.html#l00215">GetUserCounter()</a>, and <a class="el" href="channels_8cpp-source.html#l00202">IncUserCounter()</a>.    </td>
1160   </tr>
1161 </table>
1162 <hr>The documentation for this class was generated from the following files:<ul>
1163 <li><a class="el" href="channels_8h-source.html">channels.h</a><li><a class="el" href="channels_8cpp-source.html">channels.cpp</a></ul>
1164 <hr size="1"><address style="align: right;"><small>Generated on Sat May 7 15:34:23 2005 for InspIRCd by
1165 <a href="http://www.doxygen.org/index.html">
1166 <img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
1167 </a>1.3.3 </small></address>
1168 </body>
1169 </html>