]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_monitor.cpp
Fix a bunch of weird indentation and spacing issues.
[user/henk/code/inspircd.git] / src / modules / m_monitor.cpp
index c69732a7372eb8db002bca300080c4f4cf00779f..823a6fe5dc9a0560330ec1abe8a12c0308ad6771 100644 (file)
@@ -1,6 +1,8 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
+ *   Copyright (C) 2019 Robby <robby@chatbelgie.be>
+ *   Copyright (C) 2018-2019 Sadie Powell <sadie@witchery.services>
  *   Copyright (C) 2016 Attila Molnar <attilamolnar@hush.com>
  *
  * This file is part of InspIRCd.  InspIRCd is free software: you can
@@ -79,15 +81,12 @@ class IRCv3::Monitor::Manager
 
                void unset(Extensible* container)
                {
-                       free(unset_raw(container));
+                       free(container, unset_raw(container));
                }
 
-               std::string serialize(SerializeFormat format, const Extensible* container, void* item) const
+               std::string ToInternal(const Extensible* container, void* item) const CXX11_OVERRIDE
                {
                        std::string ret;
-                       if (format == FORMAT_NETWORK)
-                               return ret;
-
                        const ExtData* extdata = static_cast<ExtData*>(item);
                        for (WatchedList::const_iterator i = extdata->list.begin(); i != extdata->list.end(); ++i)
                        {
@@ -99,9 +98,9 @@ class IRCv3::Monitor::Manager
                        return ret;
                }
 
-               void unserialize(SerializeFormat format, Extensible* container, const std::string& value);
+               void FromInternal(Extensible* container, const std::string& value) CXX11_OVERRIDE;
 
-               void free(void* item)
+               void free(Extensible* container, void* item) CXX11_OVERRIDE
                {
                        delete static_cast<ExtData*>(item);
                }
@@ -191,7 +190,7 @@ class IRCv3::Monitor::Manager
        }
 
  private:
-       typedef TR1NS::unordered_map<std::string, Entry, irc::insensitive, irc::StrHashComp> NickHash;
+       typedef TR1NS::unordered_map<std::string, Entry, irc::insensitive, irc::StrHashComp> NickHash;
 
        Entry* Find(const std::string& nick)
        {
@@ -240,17 +239,13 @@ class IRCv3::Monitor::Manager
                return &extdata->list;
        }
 
-       NickHash nicks;
-       ExtItem ext;
-       WatchedList emptywatchedlist;
+       NickHash nicks;
+       ExtItem ext;
+       WatchedList emptywatchedlist;
 };
 
-// inline is needed in static builds to support m_watch including the Manager code from this file
-inline void IRCv3::Monitor::Manager::ExtItem::unserialize(SerializeFormat format, Extensible* container, const std::string& value)
+void IRCv3::Monitor::Manager::ExtItem::FromInternal(Extensible* container, const std::string& value)
 {
-       if (format == FORMAT_NETWORK)
-               return;
-
        irc::spacesepstream ss(value);
        for (std::string nick; ss.GetToken(nick); )
                manager.Watch(static_cast<LocalUser*>(container), nick, UINT_MAX);
@@ -316,10 +311,10 @@ class CommandMonitor : public SplitCommand
        {
                Penalty = 2;
                allow_empty_last_param = false;
-               syntax = "[C|L|S|+ <nick1>[,<nick2>]|- <nick1>[,<nick2>]";
+               syntax = "C|L|S|(+|-) <nick>[,<nick>]+";
        }
 
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user)
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
        {
                char subcmd = toupper(parameters[0][0]);
                if (subcmd == '+')
@@ -402,7 +397,7 @@ class ModuleMonitor : public Module
        void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
        {
                ConfigTag* tag = ServerInstance->Config->ConfValue("monitor");
-               cmd.maxmonitor = tag->getInt("maxentries", 30, 1);
+               cmd.maxmonitor = tag->getUInt("maxentries", 30, 1);
        }
 
        void OnPostConnect(User* user) CXX11_OVERRIDE
@@ -435,7 +430,7 @@ class ModuleMonitor : public Module
 
        Version GetVersion() CXX11_OVERRIDE
        {
-               return Version("Provides MONITOR support", VF_VENDOR);
+               return Version("Adds the /MONITOR command which allows users to find out when their friends are connected to the server.", VF_VENDOR);
        }
 };