X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fmode.h;h=d8884bf9fcf9a2f1f0513c24307af7734ee163e7;hb=489ba0ad54bf6bdd80d5f539f67f03241ddfe77b;hp=364562dd7e1a27522be7a209a3ff3028e5cf1452;hpb=3eda212c2ad561fae6a7d8cf20280da9d37a90f4;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/mode.h b/include/mode.h index 364562dd7..d8884bf9f 100644 --- a/include/mode.h +++ b/include/mode.h @@ -168,6 +168,11 @@ class CoreExport ModeHandler : public ServiceProvider ModeHandler(Module* me, const std::string& name, char modeletter, ParamSpec params, ModeType type, Class mclass = MC_OTHER); virtual CullResult cull(); virtual ~ModeHandler(); + + /** Register this object in the ModeParser + */ + void RegisterService() CXX11_OVERRIDE; + /** * Returns true if the mode is a list mode */ @@ -473,8 +478,6 @@ class CoreExport ModeWatcher : public classbase virtual void AfterMode(User* source, User* dest, Channel* channel, const std::string& parameter, bool adding); }; -typedef std::multimap::iterator ModeWatchIter; - /** The mode parser handles routing of modes and handling of mode strings. * It marshalls, controls and maintains both ModeWatcher and ModeHandler classes, * parses client to server MODE strings for user and channel modes, and performs @@ -490,6 +493,10 @@ class CoreExport ModeParser : public fakederef typedef TR1NS::unordered_map ModeHandlerMap; private: + /** Type of the container that maps mode names to ModeWatchers + */ + typedef insp::flat_multimap ModeWatcherMap; + /** Last item in the ModeType enum */ static const unsigned int MODETYPE_LAST = 2; @@ -524,7 +531,7 @@ class CoreExport ModeParser : public fakederef /** Mode watcher classes */ - std::multimap modewatchermap; + ModeWatcherMap modewatchermap; /** Last processed mode change */