]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_spanningtree/main.h
Store id in TreeServer, use TreeServer::GetID() to get the id (NOTE: it is std::string)
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / main.h
index 4bf11ddd797235f49991218135b1218f6ca755d8..41961dc099096adeb5445ff30bfeb977758294ec 100644 (file)
@@ -1,8 +1,22 @@
+/*       +------------------------------------+
+ *       | 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 __ST_MAIN__
 #define __ST_MAIN__
 
 #include "inspircd.h"
 #include "modules.h"
+#include <stdarg.h>
 
 /** If you make a change which breaks the protocol, increment this.
  * If you  completely change the protocol, completely change the number.
  * Failure to document your protocol changes will result in a painfully
  * painful death by pain. You have been warned.
  */
-const long ProtocolVersion = 1105;
+const long ProtocolVersion = 1200;
 
 /** Forward declarations
  */
 class cmd_rconnect;
+class cmd_rsquit;
 class SpanningTreeUtilities;
 class TimeSyncTimer;
+class CacheRefreshTimer;
 class TreeServer;
 class Link;
 
@@ -32,6 +48,7 @@ class ModuleSpanningTree : public Module
        unsigned int max_local;
        unsigned int max_global;
        cmd_rconnect* command_rconnect;
+       cmd_rsquit* command_rsquit;
        SpanningTreeUtilities* Utils;
 
  public:
@@ -39,6 +56,8 @@ class ModuleSpanningTree : public Module
         */
        TimeSyncTimer *SyncTimer;
 
+       CacheRefreshTimer *RefreshTimer;
+
        /** Constructor
         */
        ModuleSpanningTree(InspIRCd* Me);
@@ -65,7 +84,7 @@ class ModuleSpanningTree : public Module
 
        /** Show MAP output to a user (recursive)
         */
-       void ShowMap(TreeServer* Current, userrec* user, int depth, char matrix[128][80], float &totusers, float &totservers);
+       void ShowMap(TreeServer* Current, userrec* user, int depth, char matrix[128][128], float &totusers, float &totservers);
 
        /** Handle remote MOTD
         */
@@ -95,6 +114,10 @@ class ModuleSpanningTree : public Module
         */
        int HandleRemoteWhois(const char** parameters, int pcnt, userrec* user);
 
+       /** Handle remote MODULES
+        */
+       int HandleModules(const char** parameters, int pcnt, userrec* user);
+
        /** Ping all local servers
         */
        void DoPingChecks(time_t curtime);
@@ -119,6 +142,18 @@ class ModuleSpanningTree : public Module
         */
        void BroadcastTimeSync();
 
+       /** Attempt to send a message to a user
+        */
+       void RemoteMessage(userrec* user, const char* format, ...);
+
+       /** Returns oper-specific MAP information
+        */
+       const std::string MapOperInfo(TreeServer* Current);
+
+       /** Display a time as a human readable string
+        */
+       std::string TimeToStr(time_t secs);
+
        /**
         ** *** MODULE EVENTS ***
         **/
@@ -132,15 +167,15 @@ class ModuleSpanningTree : public Module
        virtual void OnUserNotice(userrec* user, void* dest, int target_type, const std::string &text, char status, const CUList &exempt_list);
        virtual void OnUserMessage(userrec* user, void* dest, int target_type, const std::string &text, char status, const CUList &exempt_list);
        virtual void OnBackgroundTimer(time_t curtime);
-       virtual void OnUserJoin(userrec* user, chanrec* channel);
+       virtual void OnUserJoin(userrec* user, chanrec* channel, bool &silent);
        virtual void OnChangeHost(userrec* user, const std::string &newhost);
        virtual void OnChangeName(userrec* user, const std::string &gecos);
-       virtual void OnUserPart(userrec* user, chanrec* channel, const std::string &partmessage);
+       virtual void OnUserPart(userrec* user, chanrec* channel, const std::string &partmessage, bool &silent);
        virtual void OnUserConnect(userrec* user);
        virtual void OnUserQuit(userrec* user, const std::string &reason, const std::string &oper_message);
        virtual void OnUserPostNick(userrec* user, const std::string &oldnick);
-       virtual void OnUserKick(userrec* source, userrec* user, chanrec* chan, const std::string &reason);
-       virtual void OnRemoteKill(userrec* source, userrec* dest, const std::string &reason);
+       virtual void OnUserKick(userrec* source, userrec* user, chanrec* chan, const std::string &reason, bool &silent);
+       virtual void OnRemoteKill(userrec* source, userrec* dest, const std::string &reason, const std::string &operreason);
        virtual void OnRehash(userrec* user, const std::string &parameter);
        virtual void OnOper(userrec* user, const std::string &opertype);
        void OnLine(userrec* source, const std::string &host, bool adding, char linetype, long duration, const std::string &reason);