]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - docs/module-doc/classchanrec.html
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2578 e03df62e-2008...
[user/henk/code/inspircd.git] / docs / module-doc / classchanrec.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>InspIRCd: chanrec Class Reference</title>
4 <link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.4.4-20050815 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
8 <h1>chanrec Class Reference</h1><!-- doxytag: class="chanrec" --><!-- doxytag: inherits="Extensible" -->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 Inheritance diagram for chanrec:<p><center><img src="classchanrec__inherit__graph.gif" border="0" usemap="#chanrec__inherit__map" alt="Inheritance graph"></center>
14 <map name="chanrec__inherit__map">
15 <area href="classExtensible.html" shape="rect" coords="7,81,89,108" alt="">
16 <area href="classclassbase.html" shape="rect" coords="8,7,88,33" alt="">
17 </map>
18 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for chanrec:<p><center><img src="classchanrec__coll__graph.gif" border="0" usemap="#chanrec__coll__map" alt="Collaboration graph"></center>
19 <map name="chanrec__coll__map">
20 <area href="classExtensible.html" shape="rect" coords="68,204,151,231" alt="">
21 <area href="classclassbase.html" shape="rect" coords="68,97,148,124" alt="">
22 </map>
23 <center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center><a href="classchanrec-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
24 <tr><td></td></tr>
25 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
26 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#SetCustomMode_28char_20mode_2C_20bool_20mode_5Fon_29">SetCustomMode</a> (char mode, bool mode_on)</td></tr>
27
28 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or unsets a custom mode in the channels info.  <a href="#SetCustomMode_28char_20mode_2C_20bool_20mode_5Fon_29"></a><br></td></tr>
29 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29">SetCustomModeParam</a> (char mode, char *parameter, bool mode_on)</td></tr>
30
31 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets or unsets the parameters for a custom mode in a channels info.  <a href="#SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29"></a><br></td></tr>
32 <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#IsCustomModeSet_28char_20mode_29">IsCustomModeSet</a> (char mode)</td></tr>
33
34 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if a custom mode is set on a channel.  <a href="#IsCustomModeSet_28char_20mode_29"></a><br></td></tr>
35 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="namespaceirc.html#string">std::string</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#GetModeParameter_28char_20mode_29">GetModeParameter</a> (char mode)</td></tr>
36
37 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the parameter for a custom mode on a channel.  <a href="#GetModeParameter_28char_20mode_29"></a><br></td></tr>
38 <tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#GetUserCounter_28_29">GetUserCounter</a> ()</td></tr>
39
40 <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.  <a href="#GetUserCounter_28_29"></a><br></td></tr>
41 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#AddUser_28char_20_2Acastuser_29">AddUser</a> (char *castuser)</td></tr>
42
43 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a user pointer to the internal reference list.  <a href="#AddUser_28char_20_2Acastuser_29"></a><br></td></tr>
44 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#DelUser_28char_20_2Acastuser_29">DelUser</a> (char *castuser)</td></tr>
45
46 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Delete a user pointer to the internal reference list.  <a href="#DelUser_28char_20_2Acastuser_29"></a><br></td></tr>
47 <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#GetUsers_28_29">GetUsers</a> ()</td></tr>
48
49 <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*.  <a href="#GetUsers_28_29"></a><br></td></tr>
50 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#chanrec_28_29">chanrec</a> ()</td></tr>
51
52 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a channel record and initialises it with default values.  <a href="#chanrec_28_29"></a><br></td></tr>
53 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#_7Echanrec_28_29">~chanrec</a> ()</td></tr>
54
55 <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
56 <tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#name_5BCHANMAX_5D">name</a> [CHANMAX]</td></tr>
57
58 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The channels name.  <a href="#name_5BCHANMAX_5D"></a><br></td></tr>
59 <tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a> [MAXMODES]</td></tr>
60
61 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Custom modes for the channel.  <a href="#custom_5Fmodes_5BMAXMODES_5D"></a><br></td></tr>
62 <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#internal_5Fuserlist">internal_userlist</a></td></tr>
63
64 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">User list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!).  <a href="#internal_5Fuserlist"></a><br></td></tr>
65 <tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a> [MAXBUF]</td></tr>
66
67 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Channel topic.  <a href="#topic_5BMAXBUF_5D"></a><br></td></tr>
68 <tr><td class="memItemLeft" nowrap align="right" valign="top">time_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#created">created</a></td></tr>
69
70 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creation time.  <a href="#created"></a><br></td></tr>
71 <tr><td class="memItemLeft" nowrap align="right" valign="top">time_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#topicset">topicset</a></td></tr>
72
73 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Time topic was set.  <a href="#topicset"></a><br></td></tr>
74 <tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a> [NICKMAX]</td></tr>
75
76 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The last user to set the topic.  <a href="#setby_5BNICKMAX_5D"></a><br></td></tr>
77 <tr><td class="memItemLeft" nowrap align="right" valign="top">short int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#limit">limit</a></td></tr>
78
79 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the channel user limit.  <a href="#limit"></a><br></td></tr>
80 <tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#key_5B_33_32_5D">key</a> [32]</td></tr>
81
82 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the channel key.  <a href="#key_5B_33_32_5D"></a><br></td></tr>
83 <tr><td class="memItemLeft" nowrap align="right" valign="top">char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#binarymodes">binarymodes</a></td></tr>
84
85 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains a bitmask of the CM_* builtin (RFC) binary mode symbols.  <a href="#binarymodes"></a><br></td></tr>
86 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="channels_8h.html#BanList">BanList</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classchanrec.html#bans">bans</a></td></tr>
87
88 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The list of all bans set on the channel.  <a href="#bans"></a><br></td></tr>
89 </table>
90 <hr><a name="_details"></a><h2>Detailed Description</h2>
91 Holds all relevent information for a channel. 
92 <p>
93 This class represents a channel, and contains its name, modes, time created, topic, topic set time, etc, and an instance of the BanList type.
94 <p>
95
96 <p>
97 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>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
98 <a class="anchor" name="chanrec_28_29"></a><!-- doxytag: member="chanrec::chanrec" ref="chanrec_28_29" args="()" --><p>
99 <table class="mdTable" cellpadding="2" cellspacing="0">
100   <tr>
101     <td class="mdRow">
102       <table cellpadding="0" cellspacing="0" border="0">
103         <tr>
104           <td class="md" nowrap valign="top">chanrec::chanrec           </td>
105           <td class="md" valign="top">(&nbsp;</td>
106           <td class="mdname1" valign="top" nowrap>          </td>
107           <td class="md" valign="top">&nbsp;)&nbsp;</td>
108           <td class="md" nowrap></td>
109         </tr>
110       </table>
111     </td>
112   </tr>
113 </table>
114 <table cellspacing="5" cellpadding="0" border="0">
115   <tr>
116     <td>
117       &nbsp;
118     </td>
119     <td>
120
121 <p>
122 Creates a channel record and initialises it with default values. 
123 <p>
124
125 <p>
126 Definition at line <a class="el" href="channels_8cpp-source.html#l00073">73</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
127 <p>
128 References <a class="el" href="channels_8h-source.html#l00147">binarymodes</a>, <a class="el" href="channels_8h-source.html#l00125">created</a>, <a class="el" href="channels_8h-source.html#l00112">custom_modes</a>, <a class="el" href="channels_8h-source.html#l00117">internal_userlist</a>, <a class="el" href="channels_8h-source.html#l00143">key</a>, <a class="el" href="channels_8h-source.html#l00138">limit</a>, <a class="el" href="channels_8h-source.html#l00108">name</a>, <a class="el" href="channels_8h-source.html#l00133">setby</a>, <a class="el" href="channels_8h-source.html#l00122">topic</a>, and <a class="el" href="channels_8h-source.html#l00129">topicset</a>.<div class="fragment"><pre class="fragment"><a name="l00074"></a>00074 {
129 <a name="l00075"></a>00075         strcpy(<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>,<span class="stringliteral">""</span>);
130 <a name="l00076"></a>00076         strcpy(<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>,<span class="stringliteral">""</span>);
131 <a name="l00077"></a>00077         strcpy(<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>,<span class="stringliteral">""</span>);
132 <a name="l00078"></a>00078         strcpy(<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>,<span class="stringliteral">""</span>);
133 <a name="l00079"></a>00079         strcpy(<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>,<span class="stringliteral">""</span>);
134 <a name="l00080"></a>00080         <a class="code" href="classchanrec.html#created">created</a> = <a class="code" href="classchanrec.html#topicset">topicset</a> = <a class="code" href="classchanrec.html#limit">limit</a> = 0;
135 <a name="l00081"></a>00081         <a class="code" href="classchanrec.html#binarymodes">binarymodes</a> = 0;
136 <a name="l00082"></a>00082         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.clear();
137 <a name="l00083"></a>00083 }
138 </pre></div>
139 <p>
140     </td>
141   </tr>
142 </table>
143 <a class="anchor" name="_7Echanrec_28_29"></a><!-- doxytag: member="chanrec::~chanrec" ref="_7Echanrec_28_29" args="()" --><p>
144 <table class="mdTable" cellpadding="2" cellspacing="0">
145   <tr>
146     <td class="mdRow">
147       <table cellpadding="0" cellspacing="0" border="0">
148         <tr>
149           <td class="md" nowrap valign="top">virtual chanrec::~chanrec           </td>
150           <td class="md" valign="top">(&nbsp;</td>
151           <td class="mdname1" valign="top" nowrap>          </td>
152           <td class="md" valign="top">&nbsp;)&nbsp;</td>
153           <td class="md" nowrap><code> [inline, virtual]</code></td>
154         </tr>
155       </table>
156     </td>
157   </tr>
158 </table>
159 <table cellspacing="5" cellpadding="0" border="0">
160   <tr>
161     <td>
162       &nbsp;
163     </td>
164     <td>
165
166 <p>
167
168 <p>
169 Definition at line <a class="el" href="channels_8h-source.html#l00226">226</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<div class="fragment"><pre class="fragment"><a name="l00226"></a>00226 { <span class="comment">/* stub */</span> }
170 </pre></div>
171 <p>
172     </td>
173   </tr>
174 </table>
175 <hr><h2>Member Function Documentation</h2>
176 <a class="anchor" name="AddUser_28char_20_2Acastuser_29"></a><!-- doxytag: member="chanrec::AddUser" ref="AddUser_28char_20_2Acastuser_29" args="(char *castuser)" --><p>
177 <table class="mdTable" cellpadding="2" cellspacing="0">
178   <tr>
179     <td class="mdRow">
180       <table cellpadding="0" cellspacing="0" border="0">
181         <tr>
182           <td class="md" nowrap valign="top">void chanrec::AddUser           </td>
183           <td class="md" valign="top">(&nbsp;</td>
184           <td class="md" nowrap valign="top">char *&nbsp;</td>
185           <td class="mdname1" valign="top" nowrap> <em>castuser</em>          </td>
186           <td class="md" valign="top">&nbsp;)&nbsp;</td>
187           <td class="md" nowrap></td>
188         </tr>
189       </table>
190     </td>
191   </tr>
192 </table>
193 <table cellspacing="5" cellpadding="0" border="0">
194   <tr>
195     <td>
196       &nbsp;
197     </td>
198     <td>
199
200 <p>
201 Add a user pointer to the internal reference list. 
202 <p>
203 <dl compact><dt><b>Parameters:</b></dt><dd>
204   <table border="0" cellspacing="2" cellpadding="0">
205     <tr><td valign="top"></td><td valign="top"><em>castuser</em>&nbsp;</td><td>This should be a pointer to a userrec, casted to char*</td></tr>
206   </table>
207 </dl>
208 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.
209 <p>
210 Definition at line <a class="el" href="channels_8cpp-source.html#l00166">166</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
211 <p>
212 References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00117">internal_userlist</a>, and <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>.
213 <p>
214 Referenced by <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>.<div class="fragment"><pre class="fragment"><a name="l00167"></a>00167 {
215 <a name="l00168"></a>00168         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.push_back(castuser);
216 <a name="l00169"></a>00169         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Added casted user to channel's internal list"</span>);
217 <a name="l00170"></a>00170 }
218 </pre></div>
219 <p>
220     </td>
221   </tr>
222 </table>
223 <a class="anchor" name="DelUser_28char_20_2Acastuser_29"></a><!-- doxytag: member="chanrec::DelUser" ref="DelUser_28char_20_2Acastuser_29" args="(char *castuser)" --><p>
224 <table class="mdTable" cellpadding="2" cellspacing="0">
225   <tr>
226     <td class="mdRow">
227       <table cellpadding="0" cellspacing="0" border="0">
228         <tr>
229           <td class="md" nowrap valign="top">void chanrec::DelUser           </td>
230           <td class="md" valign="top">(&nbsp;</td>
231           <td class="md" nowrap valign="top">char *&nbsp;</td>
232           <td class="mdname1" valign="top" nowrap> <em>castuser</em>          </td>
233           <td class="md" valign="top">&nbsp;)&nbsp;</td>
234           <td class="md" nowrap></td>
235         </tr>
236       </table>
237     </td>
238   </tr>
239 </table>
240 <table cellspacing="5" cellpadding="0" border="0">
241   <tr>
242     <td>
243       &nbsp;
244     </td>
245     <td>
246
247 <p>
248 Delete a user pointer to the internal reference list. 
249 <p>
250 <dl compact><dt><b>Parameters:</b></dt><dd>
251   <table border="0" cellspacing="2" cellpadding="0">
252     <tr><td valign="top"></td><td valign="top"><em>castuser</em>&nbsp;</td><td>This should be a pointer to a userrec, casted to char*</td></tr>
253   </table>
254 </dl>
255 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.
256 <p>
257 Definition at line <a class="el" href="channels_8cpp-source.html#l00172">172</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
258 <p>
259 References <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="channels_8h-source.html#l00117">internal_userlist</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, and <a class="el" href="channels_8h-source.html#l00108">name</a>.
260 <p>
261 Referenced by <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>.<div class="fragment"><pre class="fragment"><a name="l00173"></a>00173 {
262 <a name="l00174"></a>00174         <span class="keywordflow">for</span> (std::vector&lt;char*&gt;::iterator a = <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.begin(); a &lt; <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.end(); a++)
263 <a name="l00175"></a>00175         {
264 <a name="l00176"></a>00176                 <span class="keywordflow">if</span> (*a == castuser)
265 <a name="l00177"></a>00177                 {
266 <a name="l00178"></a>00178                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Removed casted user from channel's internal list"</span>);
267 <a name="l00179"></a>00179                         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.erase(a);
268 <a name="l00180"></a>00180                         <span class="keywordflow">return</span>;
269 <a name="l00181"></a>00181                 }
270 <a name="l00182"></a>00182         }
271 <a name="l00183"></a>00183         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"BUG BUG BUG! Attempt to remove an uncasted user from the internal list of %s!"</span>,<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>);
272 <a name="l00184"></a>00184 }
273 </pre></div>
274 <p>
275     </td>
276   </tr>
277 </table>
278 <a class="anchor" name="GetModeParameter_28char_20mode_29"></a><!-- doxytag: member="chanrec::GetModeParameter" ref="GetModeParameter_28char_20mode_29" args="(char mode)" --><p>
279 <table class="mdTable" cellpadding="2" cellspacing="0">
280   <tr>
281     <td class="mdRow">
282       <table cellpadding="0" cellspacing="0" border="0">
283         <tr>
284           <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> chanrec::GetModeParameter           </td>
285           <td class="md" valign="top">(&nbsp;</td>
286           <td class="md" nowrap valign="top">char&nbsp;</td>
287           <td class="mdname1" valign="top" nowrap> <em>mode</em>          </td>
288           <td class="md" valign="top">&nbsp;)&nbsp;</td>
289           <td class="md" nowrap></td>
290         </tr>
291       </table>
292     </td>
293   </tr>
294 </table>
295 <table cellspacing="5" cellpadding="0" border="0">
296   <tr>
297     <td>
298       &nbsp;
299     </td>
300     <td>
301
302 <p>
303 Returns the parameter for a custom mode on a channel. 
304 <p>
305 <dl compact><dt><b>Parameters:</b></dt><dd>
306   <table border="0" cellspacing="2" cellpadding="0">
307     <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>The mode character you wish to query</td></tr>
308   </table>
309 </dl>
310 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.<p>
311 <dl compact><dt><b>Returns:</b></dt><dd>The parameter for this mode is returned, or an empty string</dd></dl>
312
313 <p>
314 Definition at line <a class="el" href="channels_8cpp-source.html#l00146">146</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
315 <p>
316 References <a class="el" href="channels_8cpp-source.html#l00069">custom_mode_params</a>.<div class="fragment"><pre class="fragment"><a name="l00147"></a>00147 {
317 <a name="l00148"></a>00148         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.size())
318 <a name="l00149"></a>00149         {
319 <a name="l00150"></a>00150                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.end(); i++)
320 <a name="l00151"></a>00151                 {
321 <a name="l00152"></a>00152                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
322 <a name="l00153"></a>00153                         {
323 <a name="l00154"></a>00154                                 <span class="keywordflow">return</span> i-&gt;parameter;
324 <a name="l00155"></a>00155                         }
325 <a name="l00156"></a>00156                 }
326 <a name="l00157"></a>00157         }
327 <a name="l00158"></a>00158         <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
328 <a name="l00159"></a>00159 }
329 </pre></div>
330 <p>
331     </td>
332   </tr>
333 </table>
334 <a class="anchor" name="GetUserCounter_28_29"></a><!-- doxytag: member="chanrec::GetUserCounter" ref="GetUserCounter_28_29" args="()" --><p>
335 <table class="mdTable" cellpadding="2" cellspacing="0">
336   <tr>
337     <td class="mdRow">
338       <table cellpadding="0" cellspacing="0" border="0">
339         <tr>
340           <td class="md" nowrap valign="top">long chanrec::GetUserCounter           </td>
341           <td class="md" valign="top">(&nbsp;</td>
342           <td class="mdname1" valign="top" nowrap>          </td>
343           <td class="md" valign="top">&nbsp;)&nbsp;</td>
344           <td class="md" nowrap></td>
345         </tr>
346       </table>
347     </td>
348   </tr>
349 </table>
350 <table cellspacing="5" cellpadding="0" border="0">
351   <tr>
352     <td>
353       &nbsp;
354     </td>
355     <td>
356
357 <p>
358 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. 
359 <p>
360 <dl compact><dt><b>Returns:</b></dt><dd>The number of users on this channel</dd></dl>
361
362 <p>
363 Definition at line <a class="el" href="channels_8cpp-source.html#l00161">161</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00162"></a>00162 {
364 <a name="l00163"></a>00163         <span class="keywordflow">return</span> (this-&gt;internal_userlist.size());
365 <a name="l00164"></a>00164 }
366 </pre></div>
367 <p>
368     </td>
369   </tr>
370 </table>
371 <a class="anchor" name="GetUsers_28_29"></a><!-- doxytag: member="chanrec::GetUsers" ref="GetUsers_28_29" args="()" --><p>
372 <table class="mdTable" cellpadding="2" cellspacing="0">
373   <tr>
374     <td class="mdRow">
375       <table cellpadding="0" cellspacing="0" border="0">
376         <tr>
377           <td class="md" nowrap valign="top">std::vector&lt; char * &gt; * chanrec::GetUsers           </td>
378           <td class="md" valign="top">(&nbsp;</td>
379           <td class="mdname1" valign="top" nowrap>          </td>
380           <td class="md" valign="top">&nbsp;)&nbsp;</td>
381           <td class="md" nowrap></td>
382         </tr>
383       </table>
384     </td>
385   </tr>
386 </table>
387 <table cellspacing="5" cellpadding="0" border="0">
388   <tr>
389     <td>
390       &nbsp;
391     </td>
392     <td>
393
394 <p>
395 Obrain the internal reference list The internal reference list contains a list of userrec* cast to char*. 
396 <p>
397 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.<p>
398 <dl compact><dt><b>Returns:</b></dt><dd>This function returns a vector of userrec pointers, each of which has been casted to char* to prevent circular references</dd></dl>
399
400 <p>
401 Definition at line <a class="el" href="channels_8cpp-source.html#l00186">186</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
402 <p>
403 References <a class="el" href="channels_8h-source.html#l00117">internal_userlist</a>.
404 <p>
405 Referenced by <a class="el" href="modules_8cpp-source.html#l00373">Server::GetUsers()</a>.<div class="fragment"><pre class="fragment"><a name="l00187"></a>00187 {
406 <a name="l00188"></a>00188         <span class="keywordflow">return</span> &amp;<a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>;
407 <a name="l00189"></a>00189 }
408 </pre></div>
409 <p>
410     </td>
411   </tr>
412 </table>
413 <a class="anchor" name="IsCustomModeSet_28char_20mode_29"></a><!-- doxytag: member="chanrec::IsCustomModeSet" ref="IsCustomModeSet_28char_20mode_29" args="(char mode)" --><p>
414 <table class="mdTable" cellpadding="2" cellspacing="0">
415   <tr>
416     <td class="mdRow">
417       <table cellpadding="0" cellspacing="0" border="0">
418         <tr>
419           <td class="md" nowrap valign="top">bool chanrec::IsCustomModeSet           </td>
420           <td class="md" valign="top">(&nbsp;</td>
421           <td class="md" nowrap valign="top">char&nbsp;</td>
422           <td class="mdname1" valign="top" nowrap> <em>mode</em>          </td>
423           <td class="md" valign="top">&nbsp;)&nbsp;</td>
424           <td class="md" nowrap></td>
425         </tr>
426       </table>
427     </td>
428   </tr>
429 </table>
430 <table cellspacing="5" cellpadding="0" border="0">
431   <tr>
432     <td>
433       &nbsp;
434     </td>
435     <td>
436
437 <p>
438 Returns true if a custom mode is set on a channel. 
439 <p>
440 <dl compact><dt><b>Parameters:</b></dt><dd>
441   <table border="0" cellspacing="2" cellpadding="0">
442     <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>The mode character you wish to query </td></tr>
443   </table>
444 </dl>
445 <dl compact><dt><b>Returns:</b></dt><dd>True if the custom mode is set, false if otherwise</dd></dl>
446
447 <p>
448 Definition at line <a class="el" href="channels_8cpp-source.html#l00141">141</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.<div class="fragment"><pre class="fragment"><a name="l00142"></a>00142 {
449 <a name="l00143"></a>00143         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode));
450 <a name="l00144"></a>00144 }
451 </pre></div>
452 <p>
453     </td>
454   </tr>
455 </table>
456 <a class="anchor" name="SetCustomMode_28char_20mode_2C_20bool_20mode_5Fon_29"></a><!-- doxytag: member="chanrec::SetCustomMode" ref="SetCustomMode_28char_20mode_2C_20bool_20mode_5Fon_29" args="(char mode, bool mode_on)" --><p>
457 <table class="mdTable" cellpadding="2" cellspacing="0">
458   <tr>
459     <td class="mdRow">
460       <table cellpadding="0" cellspacing="0" border="0">
461         <tr>
462           <td class="md" nowrap valign="top">void chanrec::SetCustomMode           </td>
463           <td class="md" valign="top">(&nbsp;</td>
464           <td class="md" nowrap valign="top">char&nbsp;</td>
465           <td class="mdname" nowrap> <em>mode</em>, </td>
466         </tr>
467         <tr>
468           <td class="md" nowrap align="right"></td>
469           <td class="md"></td>
470           <td class="md" nowrap>bool&nbsp;</td>
471           <td class="mdname" nowrap> <em>mode_on</em></td>
472         </tr>
473         <tr>
474           <td class="md"></td>
475           <td class="md">)&nbsp;</td>
476           <td class="md" colspan="2"></td>
477         </tr>
478       </table>
479     </td>
480   </tr>
481 </table>
482 <table cellspacing="5" cellpadding="0" border="0">
483   <tr>
484     <td>
485       &nbsp;
486     </td>
487     <td>
488
489 <p>
490 Sets or unsets a custom mode in the channels info. 
491 <p>
492 <dl compact><dt><b>Parameters:</b></dt><dd>
493   <table border="0" cellspacing="2" cellpadding="0">
494     <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>The mode character to set or unset </td></tr>
495     <tr><td valign="top"></td><td valign="top"><em>mode_on</em>&nbsp;</td><td>True if you want to set the mode or false if you want to remove it</td></tr>
496   </table>
497 </dl>
498
499 <p>
500 Definition at line <a class="el" href="channels_8cpp-source.html#l00085">85</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
501 <p>
502 References <a class="el" href="channels_8h-source.html#l00112">custom_modes</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, and <a class="el" href="channels_8cpp-source.html#l00110">SetCustomModeParam()</a>.<div class="fragment"><pre class="fragment"><a name="l00086"></a>00086 {
503 <a name="l00087"></a>00087         <span class="keywordflow">if</span> (mode_on) {
504 <a name="l00088"></a>00088                 <span class="keyword">static</span> <span class="keywordtype">char</span> m[3];
505 <a name="l00089"></a>00089                 m[0] = mode;
506 <a name="l00090"></a>00090                 m[1] = <span class="charliteral">'\0'</span>;
507 <a name="l00091"></a>00091                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
508 <a name="l00092"></a>00092                 {
509 <a name="l00093"></a>00093                         strlcat(<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>,m,MAXMODES);
510 <a name="l00094"></a>00094                 }
511 <a name="l00095"></a>00095                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode %c set"</span>,mode);
512 <a name="l00096"></a>00096         }
513 <a name="l00097"></a>00097         <span class="keywordflow">else</span> {
514 <a name="l00098"></a>00098 
515 <a name="l00099"></a>00099                 <a class="code" href="namespaceirc.html#string">std::string</a> a = this-&gt;<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>;
516 <a name="l00100"></a>00100                 <span class="keywordtype">int</span> pos = a.find(mode);
517 <a name="l00101"></a>00101                 a.erase(pos,1);
518 <a name="l00102"></a>00102                 strncpy(this-&gt;custom_modes,a.c_str(),MAXMODES);
519 <a name="l00103"></a>00103 
520 <a name="l00104"></a>00104                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode %c removed: modelist='%s'"</span>,mode,this-&gt;custom_modes);
521 <a name="l00105"></a>00105                 this-&gt;<a class="code" href="classchanrec.html#SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
522 <a name="l00106"></a>00106         }
523 <a name="l00107"></a>00107 }
524 </pre></div>
525 <p>
526     </td>
527   </tr>
528 </table>
529 <a class="anchor" name="SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29"></a><!-- doxytag: member="chanrec::SetCustomModeParam" ref="SetCustomModeParam_28char_20mode_2C_20char_20_2Aparameter_2C_20bool_20mode_5Fon_29" args="(char mode, char *parameter, bool mode_on)" --><p>
530 <table class="mdTable" cellpadding="2" cellspacing="0">
531   <tr>
532     <td class="mdRow">
533       <table cellpadding="0" cellspacing="0" border="0">
534         <tr>
535           <td class="md" nowrap valign="top">void chanrec::SetCustomModeParam           </td>
536           <td class="md" valign="top">(&nbsp;</td>
537           <td class="md" nowrap valign="top">char&nbsp;</td>
538           <td class="mdname" nowrap> <em>mode</em>, </td>
539         </tr>
540         <tr>
541           <td class="md" nowrap align="right"></td>
542           <td class="md"></td>
543           <td class="md" nowrap>char *&nbsp;</td>
544           <td class="mdname" nowrap> <em>parameter</em>, </td>
545         </tr>
546         <tr>
547           <td class="md" nowrap align="right"></td>
548           <td class="md"></td>
549           <td class="md" nowrap>bool&nbsp;</td>
550           <td class="mdname" nowrap> <em>mode_on</em></td>
551         </tr>
552         <tr>
553           <td class="md"></td>
554           <td class="md">)&nbsp;</td>
555           <td class="md" colspan="2"></td>
556         </tr>
557       </table>
558     </td>
559   </tr>
560 </table>
561 <table cellspacing="5" cellpadding="0" border="0">
562   <tr>
563     <td>
564       &nbsp;
565     </td>
566     <td>
567
568 <p>
569 Sets or unsets the parameters for a custom mode in a channels info. 
570 <p>
571 <dl compact><dt><b>Parameters:</b></dt><dd>
572   <table border="0" cellspacing="2" cellpadding="0">
573     <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>The mode character to set or unset </td></tr>
574     <tr><td valign="top"></td><td valign="top"><em>parameter</em>&nbsp;</td><td>The parameter string to associate with this mode character </td></tr>
575     <tr><td valign="top"></td><td valign="top"><em>mode_on</em>&nbsp;</td><td>True if you want to set the mode or false if you want to remove it</td></tr>
576   </table>
577 </dl>
578
579 <p>
580 Definition at line <a class="el" href="channels_8cpp-source.html#l00110">110</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
581 <p>
582 References <a class="el" href="channels_8h-source.html#l00084">ModeParameter::channel</a>, <a class="el" href="channels_8cpp-source.html#l00069">custom_mode_params</a>, <a class="el" href="inspircd__io_8h-source.html#l00029">DEBUG</a>, <a class="el" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log()</a>, <a class="el" href="channels_8h-source.html#l00082">ModeParameter::mode</a>, and <a class="el" href="channels_8h-source.html#l00083">ModeParameter::parameter</a>.
583 <p>
584 Referenced by <a class="el" href="channels_8cpp-source.html#l00085">SetCustomMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00111"></a>00111 {
585 <a name="l00112"></a>00112 
586 <a name="l00113"></a>00113         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"SetCustomModeParam called"</span>);
587 <a name="l00114"></a>00114         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
588 <a name="l00115"></a>00115         M.<a class="code" href="classModeParameter.html#mode">mode</a> = mode;
589 <a name="l00116"></a>00116         strlcpy(M.<a class="code" href="classModeParameter.html#channel_5BCHANMAX_5D">channel</a>,this-&gt;name,CHANMAX);
590 <a name="l00117"></a>00117         strlcpy(M.<a class="code" href="classModeParameter.html#parameter_5BMAXBUF_5D">parameter</a>,parameter,MAXBUF);
591 <a name="l00118"></a>00118         <span class="keywordflow">if</span> (mode_on)
592 <a name="l00119"></a>00119         {
593 <a name="l00120"></a>00120                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
594 <a name="l00121"></a>00121                 <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.push_back(M);
595 <a name="l00122"></a>00122         }
596 <a name="l00123"></a>00123         <span class="keywordflow">else</span>
597 <a name="l00124"></a>00124         {
598 <a name="l00125"></a>00125                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.size())
599 <a name="l00126"></a>00126                 {
600 <a name="l00127"></a>00127                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.end(); i++)
601 <a name="l00128"></a>00128                         {
602 <a name="l00129"></a>00129                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
603 <a name="l00130"></a>00130                                 {
604 <a name="l00131"></a>00131                                         <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
605 <a name="l00132"></a>00132                                         <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.erase(i);
606 <a name="l00133"></a>00133                                         <span class="keywordflow">return</span>;
607 <a name="l00134"></a>00134                                 }
608 <a name="l00135"></a>00135                         }
609 <a name="l00136"></a>00136                 }
610 <a name="l00137"></a>00137                 <a class="code" href="globals_8h.html#log_28int_20level_2C_20char_20_2Atext_2C_2E_2E_2E_29">log</a>(<a class="code" href="inspircd__io_8h.html#DEBUG">DEBUG</a>,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
611 <a name="l00138"></a>00138         }
612 <a name="l00139"></a>00139 }
613 </pre></div>
614 <p>
615     </td>
616   </tr>
617 </table>
618 <hr><h2>Member Data Documentation</h2>
619 <a class="anchor" name="bans"></a><!-- doxytag: member="chanrec::bans" ref="bans" args="" --><p>
620 <table class="mdTable" cellpadding="2" cellspacing="0">
621   <tr>
622     <td class="mdRow">
623       <table cellpadding="0" cellspacing="0" border="0">
624         <tr>
625           <td class="md" nowrap valign="top"><a class="el" href="channels_8h.html#BanList">BanList</a> <a class="el" href="classchanrec.html#bans">chanrec::bans</a>          </td>
626         </tr>
627       </table>
628     </td>
629   </tr>
630 </table>
631 <table cellspacing="5" cellpadding="0" border="0">
632   <tr>
633     <td>
634       &nbsp;
635     </td>
636     <td>
637
638 <p>
639 The list of all bans set on the channel. 
640 <p>
641
642 <p>
643 Definition at line <a class="el" href="channels_8h-source.html#l00151">151</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
644 <p>
645 Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>.    </td>
646   </tr>
647 </table>
648 <a class="anchor" name="binarymodes"></a><!-- doxytag: member="chanrec::binarymodes" ref="binarymodes" args="" --><p>
649 <table class="mdTable" cellpadding="2" cellspacing="0">
650   <tr>
651     <td class="mdRow">
652       <table cellpadding="0" cellspacing="0" border="0">
653         <tr>
654           <td class="md" nowrap valign="top">char <a class="el" href="classchanrec.html#binarymodes">chanrec::binarymodes</a>          </td>
655         </tr>
656       </table>
657     </td>
658   </tr>
659 </table>
660 <table cellspacing="5" cellpadding="0" border="0">
661   <tr>
662     <td>
663       &nbsp;
664     </td>
665     <td>
666
667 <p>
668 Contains a bitmask of the CM_* builtin (RFC) binary mode symbols. 
669 <p>
670
671 <p>
672 Definition at line <a class="el" href="channels_8h-source.html#l00147">147</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
673 <p>
674 Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>.    </td>
675   </tr>
676 </table>
677 <a class="anchor" name="created"></a><!-- doxytag: member="chanrec::created" ref="created" args="" --><p>
678 <table class="mdTable" cellpadding="2" cellspacing="0">
679   <tr>
680     <td class="mdRow">
681       <table cellpadding="0" cellspacing="0" border="0">
682         <tr>
683           <td class="md" nowrap valign="top">time_t <a class="el" href="classchanrec.html#created">chanrec::created</a>          </td>
684         </tr>
685       </table>
686     </td>
687   </tr>
688 </table>
689 <table cellspacing="5" cellpadding="0" border="0">
690   <tr>
691     <td>
692       &nbsp;
693     </td>
694     <td>
695
696 <p>
697 Creation time. 
698 <p>
699
700 <p>
701 Definition at line <a class="el" href="channels_8h-source.html#l00125">125</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
702 <p>
703 Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>.    </td>
704   </tr>
705 </table>
706 <a class="anchor" name="custom_5Fmodes_5BMAXMODES_5D"></a><!-- doxytag: member="chanrec::custom_modes" ref="custom_5Fmodes_5BMAXMODES_5D" args="[MAXMODES]" --><p>
707 <table class="mdTable" cellpadding="2" cellspacing="0">
708   <tr>
709     <td class="mdRow">
710       <table cellpadding="0" cellspacing="0" border="0">
711         <tr>
712           <td class="md" nowrap valign="top">char <a class="el" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">chanrec::custom_modes</a>[MAXMODES]          </td>
713         </tr>
714       </table>
715     </td>
716   </tr>
717 </table>
718 <table cellspacing="5" cellpadding="0" border="0">
719   <tr>
720     <td>
721       &nbsp;
722     </td>
723     <td>
724
725 <p>
726 Custom modes for the channel. 
727 <p>
728 Plugins may use this field in any way they see fit.
729 <p>
730 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>.
731 <p>
732 Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, and <a class="el" href="channels_8cpp-source.html#l00085">SetCustomMode()</a>.    </td>
733   </tr>
734 </table>
735 <a class="anchor" name="internal_5Fuserlist"></a><!-- doxytag: member="chanrec::internal_userlist" ref="internal_5Fuserlist" args="" --><p>
736 <table class="mdTable" cellpadding="2" cellspacing="0">
737   <tr>
738     <td class="mdRow">
739       <table cellpadding="0" cellspacing="0" border="0">
740         <tr>
741           <td class="md" nowrap valign="top">std::vector&lt;char*&gt; <a class="el" href="classchanrec.html#internal_5Fuserlist">chanrec::internal_userlist</a>          </td>
742         </tr>
743       </table>
744     </td>
745   </tr>
746 </table>
747 <table cellspacing="5" cellpadding="0" border="0">
748   <tr>
749     <td>
750       &nbsp;
751     </td>
752     <td>
753
754 <p>
755 User list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!). 
756 <p>
757
758 <p>
759 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>.
760 <p>
761 Referenced by <a class="el" href="channels_8cpp-source.html#l00166">AddUser()</a>, <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00172">DelUser()</a>, and <a class="el" href="channels_8cpp-source.html#l00186">GetUsers()</a>.    </td>
762   </tr>
763 </table>
764 <a class="anchor" name="key_5B_33_32_5D"></a><!-- doxytag: member="chanrec::key" ref="key_5B_33_32_5D" args="[32]" --><p>
765 <table class="mdTable" cellpadding="2" cellspacing="0">
766   <tr>
767     <td class="mdRow">
768       <table cellpadding="0" cellspacing="0" border="0">
769         <tr>
770           <td class="md" nowrap valign="top">char <a class="el" href="classchanrec.html#key_5B_33_32_5D">chanrec::key</a>[32]          </td>
771         </tr>
772       </table>
773     </td>
774   </tr>
775 </table>
776 <table cellspacing="5" cellpadding="0" border="0">
777   <tr>
778     <td>
779       &nbsp;
780     </td>
781     <td>
782
783 <p>
784 Contains the channel key. 
785 <p>
786 If this value is an empty string, there is no channel key in place.
787 <p>
788 Definition at line <a class="el" href="channels_8h-source.html#l00143">143</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
789 <p>
790 Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>.    </td>
791   </tr>
792 </table>
793 <a class="anchor" name="limit"></a><!-- doxytag: member="chanrec::limit" ref="limit" args="" --><p>
794 <table class="mdTable" cellpadding="2" cellspacing="0">
795   <tr>
796     <td class="mdRow">
797       <table cellpadding="0" cellspacing="0" border="0">
798         <tr>
799           <td class="md" nowrap valign="top">short int <a class="el" href="classchanrec.html#limit">chanrec::limit</a>          </td>
800         </tr>
801       </table>
802     </td>
803   </tr>
804 </table>
805 <table cellspacing="5" cellpadding="0" border="0">
806   <tr>
807     <td>
808       &nbsp;
809     </td>
810     <td>
811
812 <p>
813 Contains the channel user limit. 
814 <p>
815 If this value is zero, there is no limit in place.
816 <p>
817 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>.
818 <p>
819 Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, and <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>.    </td>
820   </tr>
821 </table>
822 <a class="anchor" name="name_5BCHANMAX_5D"></a><!-- doxytag: member="chanrec::name" ref="name_5BCHANMAX_5D" args="[CHANMAX]" --><p>
823 <table class="mdTable" cellpadding="2" cellspacing="0">
824   <tr>
825     <td class="mdRow">
826       <table cellpadding="0" cellspacing="0" border="0">
827         <tr>
828           <td class="md" nowrap valign="top">char <a class="el" href="classchanrec.html#name_5BCHANMAX_5D">chanrec::name</a>[CHANMAX]          </td>
829         </tr>
830       </table>
831     </td>
832   </tr>
833 </table>
834 <table cellspacing="5" cellpadding="0" border="0">
835   <tr>
836     <td>
837       &nbsp;
838     </td>
839     <td>
840
841 <p>
842 The channels name. 
843 <p>
844
845 <p>
846 Definition at line <a class="el" href="channels_8h-source.html#l00108">108</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
847 <p>
848 Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00401">del_channel()</a>, <a class="el" href="channels_8cpp-source.html#l00172">DelUser()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, <a class="el" href="channels_8cpp-source.html#l00459">kick_channel()</a>, and <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>.    </td>
849   </tr>
850 </table>
851 <a class="anchor" name="setby_5BNICKMAX_5D"></a><!-- doxytag: member="chanrec::setby" ref="setby_5BNICKMAX_5D" args="[NICKMAX]" --><p>
852 <table class="mdTable" cellpadding="2" cellspacing="0">
853   <tr>
854     <td class="mdRow">
855       <table cellpadding="0" cellspacing="0" border="0">
856         <tr>
857           <td class="md" nowrap valign="top">char <a class="el" href="classchanrec.html#setby_5BNICKMAX_5D">chanrec::setby</a>[NICKMAX]          </td>
858         </tr>
859       </table>
860     </td>
861   </tr>
862 </table>
863 <table cellspacing="5" cellpadding="0" border="0">
864   <tr>
865     <td>
866       &nbsp;
867     </td>
868     <td>
869
870 <p>
871 The last user to set the topic. 
872 <p>
873 If this member is an empty string, no topic was ever set.
874 <p>
875 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>.
876 <p>
877 Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, and <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>.    </td>
878   </tr>
879 </table>
880 <a class="anchor" name="topic_5BMAXBUF_5D"></a><!-- doxytag: member="chanrec::topic" ref="topic_5BMAXBUF_5D" args="[MAXBUF]" --><p>
881 <table class="mdTable" cellpadding="2" cellspacing="0">
882   <tr>
883     <td class="mdRow">
884       <table cellpadding="0" cellspacing="0" border="0">
885         <tr>
886           <td class="md" nowrap valign="top">char <a class="el" href="classchanrec.html#topic_5BMAXBUF_5D">chanrec::topic</a>[MAXBUF]          </td>
887         </tr>
888       </table>
889     </td>
890   </tr>
891 </table>
892 <table cellspacing="5" cellpadding="0" border="0">
893   <tr>
894     <td>
895       &nbsp;
896     </td>
897     <td>
898
899 <p>
900 Channel topic. 
901 <p>
902 If this is an empty string, no channel topic is set.
903 <p>
904 Definition at line <a class="el" href="channels_8h-source.html#l00122">122</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
905 <p>
906 Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, and <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>.    </td>
907   </tr>
908 </table>
909 <a class="anchor" name="topicset"></a><!-- doxytag: member="chanrec::topicset" ref="topicset" args="" --><p>
910 <table class="mdTable" cellpadding="2" cellspacing="0">
911   <tr>
912     <td class="mdRow">
913       <table cellpadding="0" cellspacing="0" border="0">
914         <tr>
915           <td class="md" nowrap valign="top">time_t <a class="el" href="classchanrec.html#topicset">chanrec::topicset</a>          </td>
916         </tr>
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 Time topic was set. 
930 <p>
931 If no topic was ever set, this will be equal to <a class="el" href="classchanrec.html#created">chanrec::created</a>
932 <p>
933 Definition at line <a class="el" href="channels_8h-source.html#l00129">129</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#l00073">chanrec()</a>, <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>, and <a class="el" href="modules_8cpp-source.html#l00609">Server::PseudoToUser()</a>.    </td>
936   </tr>
937 </table>
938 <hr>The documentation for this class was generated from the following files:<ul>
939 <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>
940 <hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:02:15 2005 for InspIRCd by&nbsp;
941 <a href="http://www.doxygen.org/index.html">
942 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
943 </body>
944 </html>