]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - docs/module-doc/classchanrec.html
Fixed binary images in this dir that cvs2svn stored as ascii
[user/henk/code/inspircd.git] / docs / module-doc / classchanrec.html
index 633651143573461510e89d8acb34494fa25655e5..a8c1aa117cd95bbd751be8779f28bde324dfbf6d 100644 (file)
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>chanrec class Reference</title>
-<link href="inspircd.css" rel="stylesheet" type="text/css">
+<title>InspIRCd: chanrec Class Reference</title>
+<link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
 </head><body>
-<!-- Generated by Doxygen 1.3-rc3 -->
-<center>
-<a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
-<hr><h1>chanrec Class Reference</h1>Holds all relevent information for a channel. 
+<!-- Generated by Doxygen 1.4.4-20050815 -->
+<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>
+<h1>chanrec Class Reference</h1><!-- doxytag: class="chanrec" --><!-- doxytag: inherits="Extensible" -->Holds all relevent information for a channel.  
 <a href="#_details">More...</a>
 <p>
 <code>#include &lt;<a class="el" href="channels_8h-source.html">channels.h</a>&gt;</code>
 <p>
 Inheritance diagram for chanrec:<p><center><img src="classchanrec__inherit__graph.gif" border="0" usemap="#chanrec__inherit__map" alt="Inheritance graph"></center>
 <map name="chanrec__inherit__map">
-<area href="classclassbase.html" shape="rect" coords="7,16,73,37" alt="">
+<area href="classExtensible.html" shape="rect" coords="7,81,89,108" alt="">
+<area href="classclassbase.html" shape="rect" coords="8,7,88,33" alt="">
 </map>
 <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>
 <map name="chanrec__coll__map">
-<area href="classclassbase.html" shape="rect" coords="149,91,216,112" alt="">
+<area href="classExtensible.html" shape="rect" coords="68,204,151,231" alt="">
+<area href="classclassbase.html" shape="rect" coords="68,97,148,124" alt="">
 </map>
-<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>
+<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">
 <tr><td></td></tr>
-<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
-<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a0">SetCustomMode</a> (char mode, bool mode_on)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sets or unsets a custom mode in the channels info.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a1">SetCustomModeParam</a> (char mode, char *parameter, bool mode_on)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Sets or unsets the parameters for a custom mode in a channels info.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>bool&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a2">IsCustomModeSet</a> (char mode)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Returns true if a custom mode is set on a channel.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>std::string&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a3">GetModeParameter</a> (char mode)</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Returns the parameter for a custom mode on a channel.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a4">chanrec</a> ()</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Creates a channel record and initialises it with default values.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>virtual&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#a5">~chanrec</a> ()</td></tr>
-<tr><td colspan=2><br><h2>Public Attributes</h2></td></tr>
-<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m0">name</a> [CHANMAX]</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>The channels name.</em> <a href="#m0"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m1">custom_modes</a> [MAXMODES]</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Custom modes for the channel.</em> <a href="#m1"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m2">topic</a> [MAXBUF]</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Channel topic.</em> <a href="#m2"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m3">created</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Creation time.</em> <a href="#m3"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>time_t&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m4">topicset</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Time topic was set.</em> <a href="#m4"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m5">setby</a> [NICKMAX]</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>The last user to set the topic.</em> <a href="#m5"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>long&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m6">limit</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Contains the channel user limit.</em> <a href="#m6"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>char&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m7">key</a> [32]</td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Contains the channel key.</em> <a href="#m7"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m8">topiclock</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +t is set.</em> <a href="#m8"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m9">noexternal</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +n is set.</em> <a href="#m9"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m10">inviteonly</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +i is set.</em> <a href="#m10"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m11">moderated</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +m is set.</em> <a href="#m11"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m12">secret</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +s is set.</em> <a href="#m12"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top>short int&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m13">c_private</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>Nonzero if the mode +p is set.</em> <a href="#m13"></a><em></em></font><br><br></td></tr>
-<tr><td nowrap align=right valign=top><a class="el" href="channels_8h.html#a5">BanList</a>&nbsp;</td><td valign=bottom><a class="el" href="classchanrec.html#m14">bans</a></td></tr>
-<tr><td>&nbsp;</td><td><font size=-1><em>The list of all bans set on the channel.</em> <a href="#m14"></a><em></em></font><br><br></td></tr>
+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
+<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>
+
+<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>
+<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>
+
+<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>
+<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>
+
+<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>
+<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>
+
+<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>
+<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>
+
+<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>
+<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>
+
+<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>
+<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>
+
+<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>
+<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>
+
+<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>
+<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>
+
+<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>
+<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>
+
+<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
+<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>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The channels name.  <a href="#name_5BCHANMAX_5D"></a><br></td></tr>
+<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>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Custom modes for the channel.  <a href="#custom_5Fmodes_5BMAXMODES_5D"></a><br></td></tr>
+<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>
+
+<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>
+<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>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Channel topic.  <a href="#topic_5BMAXBUF_5D"></a><br></td></tr>
+<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>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creation time.  <a href="#created"></a><br></td></tr>
+<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>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Time topic was set.  <a href="#topicset"></a><br></td></tr>
+<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>
+
+<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>
+<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>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the channel user limit.  <a href="#limit"></a><br></td></tr>
+<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>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains the channel key.  <a href="#key_5B_33_32_5D"></a><br></td></tr>
+<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>
+
+<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>
+<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>
+
+<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>
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
-Holds all relevent information for a channel.
+Holds all relevent information for a channel. 
 <p>
-This class represents a channel, and contains its name, modes, time created, topic, topic set time, etc, and an instance of the BanList type. 
+This class represents a channel, and contains its name, modes, time created, topic, topic set time, etc, and an instance of the BanList type.
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00083">83</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.<hr><h2>Constructor &amp; Destructor Documentation</h2>
-<a name="a4" doxytag="chanrec::chanrec"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+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>
+<a class="anchor" name="chanrec_28_29"></a><!-- doxytag: member="chanrec::chanrec" ref="chanrec_28_29" args="()" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> chanrec::chanrec </td>
+          <td class="md" nowrap valign="top">chanrec::chanrec           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
-          <td class="md" valign="top">)&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap></td>
         </tr>
-
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -98,44 +119,44 @@ Definition at line <a class="el" href="channels_8h-source.html#l00083">83</a> of
     <td>
 
 <p>
-Creates a channel record and initialises it with default values.
+Creates a channel record and initialises it with default values. 
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00012">12</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+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>.
 <p>
-References <a class="el" href="channels_8h-source.html#l00144">c_private</a>, <a class="el" href="channels_8h-source.html#l00100">created</a>, <a class="el" href="channels_8h-source.html#l00130">inviteonly</a>, <a class="el" href="channels_8h-source.html#l00113">limit</a>, <a class="el" href="channels_8h-source.html#l00134">moderated</a>, <a class="el" href="channels_8h-source.html#l00126">noexternal</a>, <a class="el" href="channels_8h-source.html#l00139">secret</a>, <a class="el" href="channels_8h-source.html#l00122">topiclock</a>, and <a class="el" href="channels_8h-source.html#l00104">topicset</a>.
+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 {
+<a name="l00075"></a>00075         strcpy(<a class="code" href="classchanrec.html#name_5BCHANMAX_5D">name</a>,<span class="stringliteral">""</span>);
+<a name="l00076"></a>00076         strcpy(<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>,<span class="stringliteral">""</span>);
+<a name="l00077"></a>00077         strcpy(<a class="code" href="classchanrec.html#topic_5BMAXBUF_5D">topic</a>,<span class="stringliteral">""</span>);
+<a name="l00078"></a>00078         strcpy(<a class="code" href="classchanrec.html#setby_5BNICKMAX_5D">setby</a>,<span class="stringliteral">""</span>);
+<a name="l00079"></a>00079         strcpy(<a class="code" href="classchanrec.html#key_5B_33_32_5D">key</a>,<span class="stringliteral">""</span>);
+<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;
+<a name="l00081"></a>00081         <a class="code" href="classchanrec.html#binarymodes">binarymodes</a> = 0;
+<a name="l00082"></a>00082         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.clear();
+<a name="l00083"></a>00083 }
+</pre></div>
 <p>
-<div class="fragment"><pre>00013 {
-00014         strcpy(name,<span class="stringliteral">""</span>);
-00015         strcpy(custom_modes,<span class="stringliteral">""</span>);
-00016         strcpy(topic,<span class="stringliteral">""</span>);
-00017         strcpy(setby,<span class="stringliteral">""</span>);
-00018         strcpy(key,<span class="stringliteral">""</span>);
-00019         <a class="code" href="classchanrec.html#m3">created</a> = <a class="code" href="classchanrec.html#m4">topicset</a> = <a class="code" href="classchanrec.html#m6">limit</a> = 0;
-00020         <a class="code" href="classchanrec.html#m8">topiclock</a> = <a class="code" href="classchanrec.html#m9">noexternal</a> = <a class="code" href="classchanrec.html#m10">inviteonly</a> = <a class="code" href="classchanrec.html#m11">moderated</a> = <a class="code" href="classchanrec.html#m12">secret</a> = <a class="code" href="classchanrec.html#m13">c_private</a> = <span class="keyword">false</span>;
-00021 }
-</pre></div>    </td>
+    </td>
   </tr>
 </table>
-<a name="a5" doxytag="chanrec::~chanrec"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="_7Echanrec_28_29"></a><!-- doxytag: member="chanrec::~chanrec" ref="_7Echanrec_28_29" args="()" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> virtual chanrec::~chanrec </td>
+          <td class="md" nowrap valign="top">virtual chanrec::~chanrec           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
-          <td class="md" valign="top">)&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap><code> [inline, virtual]</code></td>
         </tr>
-
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -145,32 +166,31 @@ References <a class="el" href="channels_8h-source.html#l00144">c_private</a>, <a
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00174">174</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+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> }
+</pre></div>
 <p>
-<div class="fragment"><pre>00174 { <span class="comment">/* stub */</span> }
-</pre></div>    </td>
+    </td>
   </tr>
 </table>
 <hr><h2>Member Function Documentation</h2>
-<a name="a3" doxytag="chanrec::GetModeParameter"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="AddUser_28char_20_2Acastuser_29"></a><!-- doxytag: member="chanrec::AddUser" ref="AddUser_28char_20_2Acastuser_29" args="(char *castuser)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> std::string chanrec::GetModeParameter </td>
+          <td class="md" nowrap valign="top">void chanrec::AddUser           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mode</em>          </td>
-          <td class="md" valign="top">)&nbsp;</td>
+          <td class="md" nowrap valign="top">char *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>castuser</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap></td>
         </tr>
-
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -178,49 +198,46 @@ Definition at line <a class="el" href="channels_8h-source.html#l00174">174</a> o
     <td>
 
 <p>
-Returns the parameter for a custom mode on a channel.
+Add a user pointer to the internal reference list. 
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <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>
+  </table>
+</dl>
+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.
 <p>
-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.
+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>.
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00087">87</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+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>.
 <p>
-References <a class="el" href="channels_8cpp-source.html#l00010">custom_mode_params</a>.
+Referenced by <a class="el" href="channels_8cpp-source.html#l00372">ForceChan()</a>.<div class="fragment"><pre class="fragment"><a name="l00167"></a>00167 {
+<a name="l00168"></a>00168         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.push_back(castuser);
+<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>);
+<a name="l00170"></a>00170 }
+</pre></div>
 <p>
-<div class="fragment"><pre>00088 {
-00089         <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.size())
-00090         {
-00091                 <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.end(); i++)
-00092                 {
-00093                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-00094                         {
-00095                                 <span class="keywordflow">return</span> std::string(i-&gt;parameter);
-00096                         }
-00097                 }
-00098         }
-00099         <span class="keywordflow">return</span> std::string(<span class="stringliteral">""</span>);
-00100 }
-</pre></div>    </td>
+    </td>
   </tr>
 </table>
-<a name="a2" doxytag="chanrec::IsCustomModeSet"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="DelUser_28char_20_2Acastuser_29"></a><!-- doxytag: member="chanrec::DelUser" ref="DelUser_28char_20_2Acastuser_29" args="(char *castuser)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> bool chanrec::IsCustomModeSet </td>
+          <td class="md" nowrap valign="top">void chanrec::DelUser           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char&nbsp;</td>
-          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mode</em>          </td>
-          <td class="md" valign="top">)&nbsp;</td>
+          <td class="md" nowrap valign="top">char *&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>castuser</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
           <td class="md" nowrap></td>
         </tr>
-
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -228,47 +245,54 @@ References <a class="el" href="channels_8cpp-source.html#l00010">custom_mode_par
     <td>
 
 <p>
-Returns true if a custom mode is set on a channel.
+Delete a user pointer to the internal reference list. 
 <p>
-
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <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>
+  </table>
+</dl>
+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.
+<p>
+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>.
+<p>
+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>.
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00081">81</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+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 {
+<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++)
+<a name="l00175"></a>00175         {
+<a name="l00176"></a>00176                 <span class="keywordflow">if</span> (*a == castuser)
+<a name="l00177"></a>00177                 {
+<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>);
+<a name="l00179"></a>00179                         <a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>.erase(a);
+<a name="l00180"></a>00180                         <span class="keywordflow">return</span>;
+<a name="l00181"></a>00181                 }
+<a name="l00182"></a>00182         }
+<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>);
+<a name="l00184"></a>00184 }
+</pre></div>
 <p>
-<div class="fragment"><pre>00082 {
-00083         log(DEBUG,<span class="stringliteral">"Checking ISCustomModeSet: %c %s"</span>,mode,this-&gt;custom_modes);
-00084         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode) != 0);
-00085 }
-</pre></div>    </td>
+    </td>
   </tr>
 </table>
-<a name="a0" doxytag="chanrec::SetCustomMode"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="GetModeParameter_28char_20mode_29"></a><!-- doxytag: member="chanrec::GetModeParameter" ref="GetModeParameter_28char_20mode_29" args="(char mode)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> void chanrec::SetCustomMode </td>
+          <td class="md" nowrap valign="top"><a class="el" href="namespaceirc.html#string">std::string</a> chanrec::GetModeParameter           </td>
           <td class="md" valign="top">(&nbsp;</td>
           <td class="md" nowrap valign="top">char&nbsp;</td>
-          <td class="mdname" nowrap>&nbsp; <em>mode</em>, </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td></td>
-          <td class="md" nowrap>bool&nbsp;</td>
-          <td class="mdname" nowrap>&nbsp; <em>mode_on</em></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
+          <td class="mdname1" valign="top" nowrap> <em>mode</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
         </tr>
-
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -276,76 +300,54 @@ Definition at line <a class="el" href="channels_8cpp-source.html#l00081">81</a>
     <td>
 
 <p>
-Sets or unsets a custom mode in the channels info.
+Returns the parameter for a custom mode on a channel. 
 <p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>The mode character you wish to query</td></tr>
+  </table>
+</dl>
+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>
+<dl compact><dt><b>Returns:</b></dt><dd>The parameter for this mode is returned, or an empty string</dd></dl>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00023">23</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
+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>.
 <p>
-References <a class="el" href="channels_8h-source.html#l00092">custom_modes</a>, and <a class="el" href="channels_8cpp-source.html#l00050">SetCustomModeParam()</a>.
+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 {
+<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())
+<a name="l00149"></a>00149         {
+<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++)
+<a name="l00151"></a>00151                 {
+<a name="l00152"></a>00152                         <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+<a name="l00153"></a>00153                         {
+<a name="l00154"></a>00154                                 <span class="keywordflow">return</span> i-&gt;parameter;
+<a name="l00155"></a>00155                         }
+<a name="l00156"></a>00156                 }
+<a name="l00157"></a>00157         }
+<a name="l00158"></a>00158         <span class="keywordflow">return</span> <span class="stringliteral">""</span>;
+<a name="l00159"></a>00159 }
+</pre></div>
 <p>
-<div class="fragment"><pre>00024 {
-00025         <span class="keywordflow">if</span> (mode_on) {
-00026                 <span class="keywordtype">char</span> m[3];
-00027                 m[0] = mode;
-00028                 m[1] = <span class="charliteral">'\0'</span>;
-00029                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
-00030                 {
-00031                         strncat(custom_modes,m,MAXMODES);
-00032                 }
-00033                 log(DEBUG,<span class="stringliteral">"Custom mode %c set"</span>,mode);
-00034         }
-00035         <span class="keywordflow">else</span> {
-00036                 <span class="keywordtype">char</span> temp[MAXBUF];
-00037                 <span class="keywordtype">int</span> count = 0;
-00038                 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> q = 0; q &lt; strlen(custom_modes); q++) {
-00039                         <span class="keywordflow">if</span> (<a class="code" href="classchanrec.html#m1">custom_modes</a>[q] != mode) {
-00040                                 temp[count++] = mode;
-00041                         }
-00042                 }
-00043                 temp[count] = <span class="charliteral">'\0'</span>;
-00044                 strncpy(custom_modes,temp,MAXMODES);
-00045                 log(DEBUG,<span class="stringliteral">"Custom mode %c removed"</span>,mode);
-00046                 this-&gt;<a class="code" href="classchanrec.html#a1">SetCustomModeParam</a>(mode,<span class="stringliteral">""</span>,<span class="keyword">false</span>);
-00047         }
-00048 }
-</pre></div>    </td>
+    </td>
   </tr>
 </table>
-<a name="a1" doxytag="chanrec::SetCustomModeParam"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="GetUserCounter_28_29"></a><!-- doxytag: member="chanrec::GetUserCounter" ref="GetUserCounter_28_29" args="()" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> void chanrec::SetCustomModeParam </td>
+          <td class="md" nowrap valign="top">long chanrec::GetUserCounter           </td>
           <td class="md" valign="top">(&nbsp;</td>
-          <td class="md" nowrap valign="top">char&nbsp;</td>
-          <td class="mdname" nowrap>&nbsp; <em>mode</em>, </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td></td>
-          <td class="md" nowrap>char *&nbsp;</td>
-          <td class="mdname" nowrap>&nbsp; <em>parameter</em>, </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td></td>
-          <td class="md" nowrap>bool&nbsp;</td>
-          <td class="mdname" nowrap>&nbsp; <em>mode_on</em></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td class="md">)&nbsp;</td>
-          <td class="md" colspan="2"></td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
         </tr>
-
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -353,61 +355,36 @@ References <a class="el" href="channels_8h-source.html#l00092">custom_modes</a>,
     <td>
 
 <p>
-Sets or unsets the parameters for a custom mode in a channels info.
+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. 
 <p>
+<dl compact><dt><b>Returns:</b></dt><dd>The number of users on this channel</dd></dl>
 
 <p>
-Definition at line <a class="el" href="channels_8cpp-source.html#l00050">50</a> of file <a class="el" href="channels_8cpp-source.html">channels.cpp</a>.
-<p>
-References <a class="el" href="channels_8h-source.html#l00064">ModeParameter::channel</a>, <a class="el" href="channels_8cpp-source.html#l00010">custom_mode_params</a>, <a class="el" href="channels_8h-source.html#l00062">ModeParameter::mode</a>, and <a class="el" href="channels_8h-source.html#l00063">ModeParameter::parameter</a>.
-<p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00023">SetCustomMode()</a>.
+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 {
+<a name="l00163"></a>00163         <span class="keywordflow">return</span> (this-&gt;internal_userlist.size());
+<a name="l00164"></a>00164 }
+</pre></div>
 <p>
-<div class="fragment"><pre>00051 {
-00052 
-00053         log(DEBUG,<span class="stringliteral">"SetCustomModeParam called"</span>);
-00054         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
-00055         M.<a class="code" href="classModeParameter.html#m0">mode</a> = mode;
-00056         strcpy(M.<a class="code" href="classModeParameter.html#m2">channel</a>,this-&gt;name);
-00057         strcpy(M.<a class="code" href="classModeParameter.html#m1">parameter</a>,parameter);
-00058         <span class="keywordflow">if</span> (mode_on)
-00059         {
-00060                 log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s added"</span>,mode,parameter);
-00061                 <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.push_back(M);
-00062         }
-00063         <span class="keywordflow">else</span>
-00064         {
-00065                 <span class="keywordflow">if</span> (<a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.size())
-00066                 {
-00067                         <span class="keywordflow">for</span> (vector&lt;ModeParameter&gt;::iterator i = <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.begin(); i &lt; <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.end(); i++)
-00068                         {
-00069                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
-00070                                 {
-00071                                         log(DEBUG,<span class="stringliteral">"Custom mode parameter %c %s removed"</span>,mode,parameter);
-00072                                         <a class="code" href="channels_8cpp.html#a0">custom_mode_params</a>.erase(i);
-00073                                         <span class="keywordflow">return</span>;
-00074                                 }
-00075                         }
-00076                 }
-00077                 log(DEBUG,<span class="stringliteral">"*** BUG *** Attempt to remove non-existent mode parameter!"</span>);
-00078         }
-00079 }
-</pre></div>    </td>
+    </td>
   </tr>
 </table>
-<hr><h2>Member Data Documentation</h2>
-<a name="m14" doxytag="chanrec::bans"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="GetUsers_28_29"></a><!-- doxytag: member="chanrec::GetUsers" ref="GetUsers_28_29" args="()" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> <a class="el" href="channels_8h.html#a5">BanList</a> chanrec::bans
+          <td class="md" nowrap valign="top">std::vector&lt; char * &gt; * chanrec::GetUsers           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -415,25 +392,42 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00023">SetCustomMod
     <td>
 
 <p>
-The list of all bans set on the channel.
+Obrain the internal reference list The internal reference list contains a list of userrec* cast to char*. 
 <p>
+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>
+<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>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00148">148</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+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>.
+<p>
+References <a class="el" href="channels_8h-source.html#l00117">internal_userlist</a>.
+<p>
+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 {
+<a name="l00188"></a>00188         <span class="keywordflow">return</span> &amp;<a class="code" href="classchanrec.html#internal_5Fuserlist">internal_userlist</a>;
+<a name="l00189"></a>00189 }
+</pre></div>
+<p>
+    </td>
   </tr>
 </table>
-<a name="m13" doxytag="chanrec::c_private"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="IsCustomModeSet_28char_20mode_29"></a><!-- doxytag: member="chanrec::IsCustomModeSet" ref="IsCustomModeSet_28char_20mode_29" args="(char mode)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int chanrec::c_private
+          <td class="md" nowrap valign="top">bool chanrec::IsCustomModeSet           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char&nbsp;</td>
+          <td class="mdname1" valign="top" nowrap> <em>mode</em>          </td>
+          <td class="md" valign="top">&nbsp;)&nbsp;</td>
+          <td class="md" nowrap></td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -441,27 +435,51 @@ Definition at line <a class="el" href="channels_8h-source.html#l00148">148</a> o
     <td>
 
 <p>
-Nonzero if the mode +p is set.
+Returns true if a custom mode is set on a channel. 
 <p>
-This value cannot be set at the same time as <a class="el" href="classchanrec.html#m12">chanrec::secret</a>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>The mode character you wish to query </td></tr>
+  </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>True if the custom mode is set, false if otherwise</dd></dl>
+
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00144">144</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+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 {
+<a name="l00143"></a>00143         <span class="keywordflow">return</span> (strchr(this-&gt;custom_modes,mode));
+<a name="l00144"></a>00144 }
+</pre></div>
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+    </td>
   </tr>
 </table>
-<a name="m3" doxytag="chanrec::created"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<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>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> time_t chanrec::created
+          <td class="md" nowrap valign="top">void chanrec::SetCustomMode           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char&nbsp;</td>
+          <td class="mdname" nowrap> <em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>bool&nbsp;</td>
+          <td class="mdname" nowrap> <em>mode_on</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -469,27 +487,78 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-Creation time.
+Sets or unsets a custom mode in the channels info. 
 <p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>The mode character to set or unset </td></tr>
+    <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>
+  </table>
+</dl>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00100">100</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+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>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+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 {
+<a name="l00087"></a>00087         <span class="keywordflow">if</span> (mode_on) {
+<a name="l00088"></a>00088                 <span class="keyword">static</span> <span class="keywordtype">char</span> m[3];
+<a name="l00089"></a>00089                 m[0] = mode;
+<a name="l00090"></a>00090                 m[1] = <span class="charliteral">'\0'</span>;
+<a name="l00091"></a>00091                 <span class="keywordflow">if</span> (!strchr(this-&gt;custom_modes,mode))
+<a name="l00092"></a>00092                 {
+<a name="l00093"></a>00093                         strlcat(<a class="code" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">custom_modes</a>,m,MAXMODES);
+<a name="l00094"></a>00094                 }
+<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);
+<a name="l00096"></a>00096         }
+<a name="l00097"></a>00097         <span class="keywordflow">else</span> {
+<a name="l00098"></a>00098 
+<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>;
+<a name="l00100"></a>00100                 <span class="keywordtype">int</span> pos = a.find(mode);
+<a name="l00101"></a>00101                 a.erase(pos,1);
+<a name="l00102"></a>00102                 strncpy(this-&gt;custom_modes,a.c_str(),MAXMODES);
+<a name="l00103"></a>00103 
+<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);
+<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>);
+<a name="l00106"></a>00106         }
+<a name="l00107"></a>00107 }
+</pre></div>
+<p>
+    </td>
   </tr>
 </table>
-<a name="m1" doxytag="chanrec::custom_modes"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<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>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char chanrec::custom_modes[MAXMODES]
+          <td class="md" nowrap valign="top">void chanrec::SetCustomModeParam           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">char&nbsp;</td>
+          <td class="mdname" nowrap> <em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>char *&nbsp;</td>
+          <td class="mdname" nowrap> <em>parameter</em>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>bool&nbsp;</td>
+          <td class="mdname" nowrap> <em>mode_on</em></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -497,27 +566,69 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-Custom modes for the channel.
+Sets or unsets the parameters for a custom mode in a channels info. 
 <p>
-Plugins may use this field in any way they see fit.
+<dl compact><dt><b>Parameters:</b></dt><dd>
+  <table border="0" cellspacing="2" cellpadding="0">
+    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>The mode character to set or unset </td></tr>
+    <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>
+    <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>
+  </table>
+</dl>
+
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00092">92</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+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>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00023">SetCustomMode()</a>.    </td>
+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>.
+<p>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00085">SetCustomMode()</a>.<div class="fragment"><pre class="fragment"><a name="l00111"></a>00111 {
+<a name="l00112"></a>00112 
+<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>);
+<a name="l00114"></a>00114         <a class="code" href="classModeParameter.html">ModeParameter</a> M;
+<a name="l00115"></a>00115         M.<a class="code" href="classModeParameter.html#mode">mode</a> = mode;
+<a name="l00116"></a>00116         strlcpy(M.<a class="code" href="classModeParameter.html#channel_5BCHANMAX_5D">channel</a>,this-&gt;name,CHANMAX);
+<a name="l00117"></a>00117         strlcpy(M.<a class="code" href="classModeParameter.html#parameter_5BMAXBUF_5D">parameter</a>,parameter,MAXBUF);
+<a name="l00118"></a>00118         <span class="keywordflow">if</span> (mode_on)
+<a name="l00119"></a>00119         {
+<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);
+<a name="l00121"></a>00121                 <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.push_back(M);
+<a name="l00122"></a>00122         }
+<a name="l00123"></a>00123         <span class="keywordflow">else</span>
+<a name="l00124"></a>00124         {
+<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())
+<a name="l00126"></a>00126                 {
+<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++)
+<a name="l00128"></a>00128                         {
+<a name="l00129"></a>00129                                 <span class="keywordflow">if</span> ((i-&gt;mode == mode) &amp;&amp; (!strcasecmp(this-&gt;name,i-&gt;channel)))
+<a name="l00130"></a>00130                                 {
+<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);
+<a name="l00132"></a>00132                                         <a class="code" href="channels_8cpp.html#custom_5Fmode_5Fparams">custom_mode_params</a>.erase(i);
+<a name="l00133"></a>00133                                         <span class="keywordflow">return</span>;
+<a name="l00134"></a>00134                                 }
+<a name="l00135"></a>00135                         }
+<a name="l00136"></a>00136                 }
+<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>);
+<a name="l00138"></a>00138         }
+<a name="l00139"></a>00139 }
+</pre></div>
+<p>
+    </td>
   </tr>
 </table>
-<a name="m10" doxytag="chanrec::inviteonly"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<hr><h2>Member Data Documentation</h2>
+<a class="anchor" name="bans"></a><!-- doxytag: member="chanrec::bans" ref="bans" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int chanrec::inviteonly
+          <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>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -525,27 +636,28 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00023">SetCustomMod
     <td>
 
 <p>
-Nonzero if the mode +i is set.
+The list of all bans set on the channel. 
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00130">130</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+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>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00194">add_channel()</a>.    </td>
   </tr>
 </table>
-<a name="m7" doxytag="chanrec::key"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="binarymodes"></a><!-- doxytag: member="chanrec::binarymodes" ref="binarymodes" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char chanrec::key[32]
+          <td class="md" nowrap valign="top">char <a class="el" href="classchanrec.html#binarymodes">chanrec::binarymodes</a>          </td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -553,25 +665,28 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-Contains the channel key.
+Contains a bitmask of the CM_* builtin (RFC) binary mode symbols. 
 <p>
-If this value is an empty string, there is no channel key in place.
+
+<p>
+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>.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00118">118</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+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>
   </tr>
 </table>
-<a name="m6" doxytag="chanrec::limit"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="created"></a><!-- doxytag: member="chanrec::created" ref="created" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> long chanrec::limit
+          <td class="md" nowrap valign="top">time_t <a class="el" href="classchanrec.html#created">chanrec::created</a>          </td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -579,27 +694,28 @@ Definition at line <a class="el" href="channels_8h-source.html#l00118">118</a> o
     <td>
 
 <p>
-Contains the channel user limit.
+Creation time. 
 <p>
-If this value is zero, there is no limit in place.
+
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00113">113</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+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>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+Referenced by <a class="el" href="channels_8cpp-source.html#l00073">chanrec()</a>.    </td>
   </tr>
 </table>
-<a name="m11" doxytag="chanrec::moderated"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="custom_5Fmodes_5BMAXMODES_5D"></a><!-- doxytag: member="chanrec::custom_modes" ref="custom_5Fmodes_5BMAXMODES_5D" args="[MAXMODES]" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int chanrec::moderated
+          <td class="md" nowrap valign="top">char <a class="el" href="classchanrec.html#custom_5Fmodes_5BMAXMODES_5D">chanrec::custom_modes</a>[MAXMODES]          </td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -607,27 +723,28 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-Nonzero if the mode +m is set.
+Custom modes for the channel. 
 <p>
-
+Plugins may use this field in any way they see fit.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00134">134</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+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>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+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>
   </tr>
 </table>
-<a name="m0" doxytag="chanrec::name"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="internal_5Fuserlist"></a><!-- doxytag: member="chanrec::internal_userlist" ref="internal_5Fuserlist" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char chanrec::name[CHANMAX]
+          <td class="md" nowrap valign="top">std::vector&lt;char*&gt; <a class="el" href="classchanrec.html#internal_5Fuserlist">chanrec::internal_userlist</a>          </td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -635,25 +752,28 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-The channels name.
+User list (casted to char*'s to stop forward declaration stuff) (chicken and egg scenario!). 
 <p>
 
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00088">88</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+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>.
+<p>
+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>
   </tr>
 </table>
-<a name="m9" doxytag="chanrec::noexternal"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="key_5B_33_32_5D"></a><!-- doxytag: member="chanrec::key" ref="key_5B_33_32_5D" args="[32]" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int chanrec::noexternal
+          <td class="md" nowrap valign="top">char <a class="el" href="classchanrec.html#key_5B_33_32_5D">chanrec::key</a>[32]          </td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -661,27 +781,28 @@ Definition at line <a class="el" href="channels_8h-source.html#l00088">88</a> of
     <td>
 
 <p>
-Nonzero if the mode +n is set.
+Contains the channel key. 
 <p>
-
+If this value is an empty string, there is no channel key in place.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00126">126</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+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>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+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>
   </tr>
 </table>
-<a name="m12" doxytag="chanrec::secret"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="limit"></a><!-- doxytag: member="chanrec::limit" ref="limit" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int chanrec::secret
+          <td class="md" nowrap valign="top">short int <a class="el" href="classchanrec.html#limit">chanrec::limit</a>          </td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -689,27 +810,28 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-Nonzero if the mode +s is set.
+Contains the channel user limit. 
 <p>
-This value cannot be set at the same time as <a class="el" href="classchanrec.html#m13">chanrec::c_private</a>
+If this value is zero, there is no limit in place.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00139">139</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+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>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+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>
   </tr>
 </table>
-<a name="m5" doxytag="chanrec::setby"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="name_5BCHANMAX_5D"></a><!-- doxytag: member="chanrec::name" ref="name_5BCHANMAX_5D" args="[CHANMAX]" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char chanrec::setby[NICKMAX]
+          <td class="md" nowrap valign="top">char <a class="el" href="classchanrec.html#name_5BCHANMAX_5D">chanrec::name</a>[CHANMAX]          </td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -717,25 +839,28 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-The last user to set the topic.
+The channels name. 
 <p>
-If this member is an empty string, no topic was ever set.
+
+<p>
+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>.
 <p>
-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>.    </td>
+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>
   </tr>
 </table>
-<a name="m2" doxytag="chanrec::topic"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="setby_5BNICKMAX_5D"></a><!-- doxytag: member="chanrec::setby" ref="setby_5BNICKMAX_5D" args="[NICKMAX]" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> char chanrec::topic[MAXBUF]
+          <td class="md" nowrap valign="top">char <a class="el" href="classchanrec.html#setby_5BNICKMAX_5D">chanrec::setby</a>[NICKMAX]          </td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -743,25 +868,28 @@ Definition at line <a class="el" href="channels_8h-source.html#l00108">108</a> o
     <td>
 
 <p>
-Channel topic.
+The last user to set the topic. 
 <p>
-If this is an empty string, no channel topic is set.
+If this member is an empty string, no topic was ever set.
+<p>
+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>.
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00097">97</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.    </td>
+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>
   </tr>
 </table>
-<a name="m8" doxytag="chanrec::topiclock"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="topic_5BMAXBUF_5D"></a><!-- doxytag: member="chanrec::topic" ref="topic_5BMAXBUF_5D" args="[MAXBUF]" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> short int chanrec::topiclock
+          <td class="md" nowrap valign="top">char <a class="el" href="classchanrec.html#topic_5BMAXBUF_5D">chanrec::topic</a>[MAXBUF]          </td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -769,27 +897,28 @@ Definition at line <a class="el" href="channels_8h-source.html#l00097">97</a> of
     <td>
 
 <p>
-Nonzero if the mode +t is set.
+Channel topic. 
 <p>
-
+If this is an empty string, no channel topic is set.
 <p>
 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>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+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>
   </tr>
 </table>
-<a name="m4" doxytag="chanrec::topicset"></a><p>
-<table width="100%" cellpadding="2" cellspacing="0" border="0">
+<a class="anchor" name="topicset"></a><!-- doxytag: member="chanrec::topicset" ref="topicset" args="" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
-    <td class="md">
+    <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top"> time_t chanrec::topicset
+          <td class="md" nowrap valign="top">time_t <a class="el" href="classchanrec.html#topicset">chanrec::topicset</a>          </td>
+        </tr>
       </table>
     </td>
   </tr>
 </table>
-<table cellspacing=5 cellpadding=0 border=0>
+<table cellspacing="5" cellpadding="0" border="0">
   <tr>
     <td>
       &nbsp;
@@ -797,20 +926,19 @@ Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a
     <td>
 
 <p>
-Time topic was set.
+Time topic was set. 
 <p>
-If no topic was ever set, this will be equal to <a class="el" href="classchanrec.html#m3">chanrec::created</a>
+If no topic was ever set, this will be equal to <a class="el" href="classchanrec.html#created">chanrec::created</a>
 <p>
-Definition at line <a class="el" href="channels_8h-source.html#l00104">104</a> of file <a class="el" href="channels_8h-source.html">channels.h</a>.
+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>.
 <p>
-Referenced by <a class="el" href="channels_8cpp-source.html#l00012">chanrec()</a>.    </td>
+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>
   </tr>
 </table>
 <hr>The documentation for this class was generated from the following files:<ul>
 <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>
-<hr><address style="align: right;"><small>Generated on Tue Apr 6 21:13:44 2004 for InspIRCd by
+<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 19 18:05:21 2005 for InspIRCd by&nbsp;
 <a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border=0 
-width=110 height=53></a>1.3-rc3 </small></address>
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4-20050815 </small></address>
 </body>
 </html>