]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/connection.h
In the grand tradition of huge fucking commits:
[user/henk/code/inspircd.git] / include / connection.h
index 91eb7f0dc7093802b0d223d1de6cfc79099998f9..f476c39a5039f06ab2f7ff19289ca4fe1ca6d3d2 100644 (file)
@@ -1,35 +1,79 @@
-/*
+/*       +------------------------------------+
+ *       | Inspire Internet Relay Chat Daemon |
+ *       +------------------------------------+
+ *
+ *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ * See: http://www.inspircd.org/wiki/index.php/Credits
+ *
+ * This program is free but copyrighted software; see
+ *            the file COPYING for details.
+ *
+ * ---------------------------------------------------
+ */
 
-*/
+#ifndef __CONNECTION_H__
+#define __CONNECTION_H__
 
-#include "inspircd_config.h" 
+#include <time.h>
+#include "inspircd_config.h"
 #include "base.h"
-#include <string>
-#include <map.h>
-#ifndef __CONNECTION_H__ 
-#define __CONNECTION_H__ 
-class connection : public classbase
+#include "socketengine.h"
+
+/** connection is the base class of User, and holds basic user properties.
+ * This can be extended for holding other user-like objects in the future.
+ */
+class CoreExport connection : public EventHandler
 {
  public:
-       int fd;                 // file descriptor
-       char host[256];         // hostname
-       long ip;                // ipv4 address
-       char inbuf[MAXBUF];     // recvQ
-       long bytes_in;
-       long bytes_out;
-       long cmds_in;
-       long cmds_out;
+       /** Hostname of connection.
+        * This should be valid as per RFC1035.
+        */
+       char host[65];
+
+       /** Stats counter for bytes inbound
+        */
+       int bytes_in;
+
+       /** Stats counter for bytes outbound
+        */
+       int bytes_out;
+
+       /** Stats counter for commands inbound
+        */
+       int cmds_in;
+
+       /** Stats counter for commands outbound
+        */
+       int cmds_out;
+
+       /** True if user has authenticated, false if otherwise
+        */
        bool haspassed;
-       int port;
-       int registered;
+
+       /** Used by User to indicate the registration status of the connection
+        * It is a bitfield of the REG_NICK, REG_USER and REG_ALL bits to indicate
+        * the connection state.
+        */
+       char registered;
+       
+       /** Time the connection was last pinged
+        */
        time_t lastping;
+       
+       /** Time the connection was created, set in the constructor. This
+        * may be different from the time the user's classbase object was
+        * created.
+        */
        time_t signon;
+       
+       /** Time that the connection last sent a message, used to calculate idle time
+        */
        time_t idle_lastmsg;
+       
+       /** Used by PING checking code
+        */
        time_t nping;
 };
 
 
 #endif
-