<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>InspIRCd: users.h Source File</title>
<link href="inspircd.doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.3 -->
<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>users.h</h1><a href="users_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*       +------------------------------------+</span>
00002 <span class="comment"> *       | Inspire Internet Relay Chat Daemon |</span>
00003 <span class="comment"> *       +------------------------------------+</span>
00004 <span class="comment"> *</span>
00005 <span class="comment"> *  Inspire is copyright (C) 2002-2004 ChatSpike-Dev.</span>
00006 <span class="comment"> *                       E-mail:</span>
00007 <span class="comment"> *                &lt;brain@chatspike.net&gt;</span>
00008 <span class="comment"> *                &lt;Craig@chatspike.net&gt;</span>
00009 <span class="comment"> *     </span>
00010 <span class="comment"> * Written by Craig Edwards, Craig McLure, and others.</span>
00011 <span class="comment"> * This program is free but copyrighted software; see</span>
00012 <span class="comment"> *            the file COPYING for details.</span>
00013 <span class="comment"> *</span>
00014 <span class="comment"> * ---------------------------------------------------</span>
00015 <span class="comment"> */</span>
00016 
00017 <span class="preprocessor">#include "inspircd_config.h"</span> 
00018 <span class="preprocessor">#include "<a class="code" href="channels_8h.html">channels.h</a>"</span>
00019 <span class="preprocessor">#include "<a class="code" href="connection_8h.html">connection.h</a>"</span>
00020 <span class="preprocessor">#include "inspstring.h"</span>
00021 <span class="preprocessor">#include &lt;string&gt;</span>
00022  
00023 <span class="preprocessor">#ifndef __USERS_H__ </span>
00024 <span class="preprocessor"></span><span class="preprocessor">#define __USERS_H__ </span>
00025 <span class="preprocessor"></span> 
<a name="l00026"></a><a class="code" href="users_8h.html#a0">00026</a> <span class="preprocessor">#define STATUS_OP       4</span>
<a name="l00027"></a><a class="code" href="users_8h.html#a1">00027</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_HOP      2</span>
<a name="l00028"></a><a class="code" href="users_8h.html#a2">00028</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_VOICE    1</span>
<a name="l00029"></a><a class="code" href="users_8h.html#a3">00029</a> <span class="preprocessor"></span><span class="preprocessor">#define STATUS_NORMAL   0</span>
00030 <span class="preprocessor"></span>
<a name="l00031"></a><a class="code" href="users_8h.html#a4">00031</a> <span class="preprocessor">#define CC_ALLOW        0</span>
<a name="l00032"></a><a class="code" href="users_8h.html#a5">00032</a> <span class="preprocessor"></span><span class="preprocessor">#define CC_DENY         1</span>
00033 <span class="preprocessor"></span>
<a name="l00036"></a><a class="code" href="classInvited.html">00036</a> <span class="keyword">class </span><a class="code" href="classInvited.html">Invited</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
00037 {
00038  <span class="keyword">public</span>:
<a name="l00039"></a><a class="code" href="classInvited.html#o0">00039</a>         <span class="keywordtype">char</span> <a class="code" href="classInvited.html#o0">channel</a>[CHANMAX];
00040 };
00041 
00042 
<a name="l00045"></a><a class="code" href="classConnectClass.html">00045</a> <span class="keyword">class </span><a class="code" href="classConnectClass.html">ConnectClass</a> : <span class="keyword">public</span> <a class="code" href="classclassbase.html">classbase</a>
00046 {
00047  <span class="keyword">public</span>:
<a name="l00050"></a><a class="code" href="classConnectClass.html#o0">00050</a>         <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#o0">type</a>;
<a name="l00053"></a><a class="code" href="classConnectClass.html#o1">00053</a>         <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#o1">registration_timeout</a>;
<a name="l00056"></a><a class="code" href="classConnectClass.html#o2">00056</a>         <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#o2">flood</a>;
<a name="l00059"></a><a class="code" href="classConnectClass.html#o3">00059</a>         <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#o3">host</a>[MAXBUF];
<a name="l00062"></a><a class="code" href="classConnectClass.html#o4">00062</a>         <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#o4">pingtime</a>;
<a name="l00065"></a><a class="code" href="classConnectClass.html#o5">00065</a>         <span class="keywordtype">char</span> <a class="code" href="classConnectClass.html#o5">pass</a>[MAXBUF];
00066 
<a name="l00069"></a><a class="code" href="classConnectClass.html#o6">00069</a>         <span class="keywordtype">int</span> <a class="code" href="classConnectClass.html#o6">threshold</a>;
00070 
<a name="l00073"></a><a class="code" href="classConnectClass.html#o7">00073</a>         <span class="keywordtype">long</span> <a class="code" href="classConnectClass.html#o7">sendqmax</a>;
00074 
<a name="l00077"></a><a class="code" href="classConnectClass.html#o8">00077</a>         <span class="keywordtype">long</span> <a class="code" href="classConnectClass.html#o8">recvqmax</a>;
00078         
<a name="l00079"></a><a class="code" href="classConnectClass.html#a0">00079</a>         <a class="code" href="classConnectClass.html#a0">ConnectClass</a>()
00080         {
00081                 <a class="code" href="classConnectClass.html#o1">registration_timeout</a> = 0;
00082                 <a class="code" href="classConnectClass.html#o2">flood</a> = 0;
00083                 <a class="code" href="classConnectClass.html#o4">pingtime</a> = 0;
00084                 <a class="code" href="classConnectClass.html#o6">threshold</a> = 0;
00085                 <a class="code" href="classConnectClass.html#o7">sendqmax</a> = 0;
00086                 <a class="code" href="classConnectClass.html#o8">recvqmax</a> = 0;
00087                 strlcpy(<a class="code" href="classConnectClass.html#o3">host</a>,<span class="stringliteral">""</span>,MAXBUF);
00088                 strlcpy(<a class="code" href="classConnectClass.html#o5">pass</a>,<span class="stringliteral">""</span>,MAXBUF);
00089         }
00090 };
00091 
<a name="l00094"></a><a class="code" href="users_8h.html#a6">00094</a> <span class="keyword">typedef</span> std::vector&lt;Invited&gt; <a class="code" href="users_8h.html#a6">InvitedList</a>;
00095 
00096 
00097 
<a name="l00100"></a><a class="code" href="users_8h.html#a7">00100</a> <span class="keyword">typedef</span> std::vector&lt;ConnectClass&gt; <a class="code" href="users_8h.html#a7">ClassVector</a>;
00101 
<a name="l00108"></a><a class="code" href="classuserrec.html">00108</a> <span class="keyword">class </span><a class="code" href="classuserrec.html">userrec</a> : <span class="keyword">public</span> <a class="code" href="classconnection.html">connection</a>
00109 {
00110  <span class="keyword">private</span>:
00111 
<a name="l00114"></a><a class="code" href="classuserrec.html#r0">00114</a>         <a class="code" href="users_8h.html#a6">InvitedList</a> <a class="code" href="classuserrec.html#r0">invites</a>;
00115  <span class="keyword">public</span>:
00116         
<a name="l00121"></a><a class="code" href="classuserrec.html#o0">00121</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#o0">nick</a>[NICKMAX];
00122         
<a name="l00126"></a><a class="code" href="classuserrec.html#o1">00126</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#o1">ident</a>[IDENTMAX+2];
00127 
<a name="l00131"></a><a class="code" href="classuserrec.html#o2">00131</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#o2">dhost</a>[160];
00132         
<a name="l00135"></a><a class="code" href="classuserrec.html#o3">00135</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#o3">fullname</a>[MAXGECOS+1];
00136         
<a name="l00144"></a><a class="code" href="classuserrec.html#o4">00144</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#o4">modes</a>[54];
00145         
<a name="l00146"></a><a class="code" href="classuserrec.html#o5">00146</a>         <a class="code" href="classucrec.html">ucrec</a> <a class="code" href="classuserrec.html#o5">chans</a>[MAXCHANS];
00147         
<a name="l00150"></a><a class="code" href="classuserrec.html#o6">00150</a>         <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#o6">server</a>;
00151         
<a name="l00155"></a><a class="code" href="classuserrec.html#o7">00155</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#o7">awaymsg</a>[MAXAWAY+1];
00156         
<a name="l00161"></a><a class="code" href="classuserrec.html#o8">00161</a>         <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#o8">flood</a>;
00162         
<a name="l00167"></a><a class="code" href="classuserrec.html#o9">00167</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#o9">timeout</a>;
00168         
<a name="l00174"></a><a class="code" href="classuserrec.html#o10">00174</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#o10">oper</a>[NICKMAX];
00175 
<a name="l00178"></a><a class="code" href="classuserrec.html#o11">00178</a>         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#o11">dns_done</a>;
00179 
<a name="l00182"></a><a class="code" href="classuserrec.html#o12">00182</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#o12">pingmax</a>;
00183 
<a name="l00188"></a><a class="code" href="classuserrec.html#o13">00188</a>         <span class="keywordtype">char</span> <a class="code" href="classuserrec.html#o13">password</a>[MAXBUF];
00189 
<a name="l00194"></a><a class="code" href="classuserrec.html#o14">00194</a>         std::string <a class="code" href="classuserrec.html#o14">recvq</a>;
00195 
<a name="l00199"></a><a class="code" href="classuserrec.html#o15">00199</a>         std::string <a class="code" href="classuserrec.html#o15">sendq</a>;
00200 
<a name="l00203"></a><a class="code" href="classuserrec.html#o16">00203</a>         <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#o16">lines_in</a>;
<a name="l00204"></a><a class="code" href="classuserrec.html#o17">00204</a>         time_t <a class="code" href="classuserrec.html#o17">reset_due</a>;
<a name="l00205"></a><a class="code" href="classuserrec.html#o18">00205</a>         <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#o18">threshold</a>;
00206 
00207         <span class="comment">/* Write error string</span>
00208 <span class="comment">         */</span>
<a name="l00209"></a><a class="code" href="classuserrec.html#o19">00209</a>         std::string <a class="code" href="classuserrec.html#o19">WriteError</a>;
00210 
<a name="l00213"></a><a class="code" href="classuserrec.html#o20">00213</a>         <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#o20">sendqmax</a>;
00214 
<a name="l00217"></a><a class="code" href="classuserrec.html#o21">00217</a>         <span class="keywordtype">long</span> <a class="code" href="classuserrec.html#o21">recvqmax</a>;
00218 
00219         <a class="code" href="classuserrec.html#a0">userrec</a>();
00220         
<a name="l00221"></a><a class="code" href="classuserrec.html#a1">00221</a>         <span class="keyword">virtual</span> <a class="code" href="classuserrec.html#a1">~userrec</a>() {  }
00222         
00227         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a2">GetFullHost</a>();
00228         
00234         <span class="keyword">virtual</span> <span class="keywordtype">char</span>* <a class="code" href="classuserrec.html#a3">GetFullRealHost</a>();
00235         
00238         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a4">IsInvited</a>(<span class="keywordtype">char</span>* channel);
00239         
00242         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a5">InviteTo</a>(<span class="keywordtype">char</span>* channel);
00243         
00248         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a6">RemoveInvite</a>(<span class="keywordtype">char</span>* channel);
00249         
00254         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a7">HasPermission</a>(<span class="keywordtype">char</span>* command);
00255 
00258         <span class="keywordtype">int</span> <a class="code" href="classuserrec.html#a8">ReadData</a>(<span class="keywordtype">void</span>* buffer, size_t size);
00259 
00267         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a9">AddBuffer</a>(std::string a);
00268 
00272         <span class="keywordtype">bool</span> <a class="code" href="classuserrec.html#a10">BufferIsReady</a>();
00273 
00276         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a11">ClearBuffer</a>();
00277 
00285         std::string <a class="code" href="classuserrec.html#a12">GetBuffer</a>();
00286 
00292         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a13">SetWriteError</a>(std::string error);
00293 
00297         std::string <a class="code" href="classuserrec.html#a14">GetWriteError</a>();
00298 
00304         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a15">AddWriteBuf</a>(std::string data);
00305 
00312         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a16">FlushWriteBuf</a>();
00313 
00316         <a class="code" href="users_8h.html#a6">InvitedList</a>* <a class="code" href="classuserrec.html#a17">GetInviteList</a>();
00317 
00320         <span class="keywordtype">void</span> <a class="code" href="classuserrec.html#a18">CloseSocket</a>();
00321 };
00322 
<a name="l00325"></a><a class="code" href="classWhoWasUser.html">00325</a> <span class="keyword">class </span><a class="code" href="classWhoWasUser.html">WhoWasUser</a>
00326 {
00327  <span class="keyword">public</span>:
<a name="l00328"></a><a class="code" href="classWhoWasUser.html#o0">00328</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#o0">nick</a>[NICKMAX];
<a name="l00329"></a><a class="code" href="classWhoWasUser.html#o1">00329</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#o1">ident</a>[IDENTMAX+1];
<a name="l00330"></a><a class="code" href="classWhoWasUser.html#o2">00330</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#o2">dhost</a>[160];
<a name="l00331"></a><a class="code" href="classWhoWasUser.html#o3">00331</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#o3">host</a>[160];
<a name="l00332"></a><a class="code" href="classWhoWasUser.html#o4">00332</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#o4">fullname</a>[MAXGECOS+1];
<a name="l00333"></a><a class="code" href="classWhoWasUser.html#o5">00333</a>         <span class="keywordtype">char</span> <a class="code" href="classWhoWasUser.html#o5">server</a>[256];
<a name="l00334"></a><a class="code" href="classWhoWasUser.html#o6">00334</a>         time_t <a class="code" href="classWhoWasUser.html#o6">signon</a>;
00335 };
00336 
00337 <span class="preprocessor">#endif</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon May 30 05:15:21 2005 for InspIRCd by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
</a>1.3.3 </small></address>
</body>
</html>