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
*/
virtual void AfterMode(User* source, User* dest, Channel* channel, const std::string& parameter, bool adding);
};
-typedef std::multimap<std::string, ModeWatcher*>::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
typedef TR1NS::unordered_map<std::string, ModeHandler*, irc::insensitive, irc::StrHashComp> ModeHandlerMap;
private:
+ /** Type of the container that maps mode names to ModeWatchers
+ */
+ typedef insp::flat_multimap<std::string, ModeWatcher*> ModeWatcherMap;
+
/** Last item in the ModeType enum
*/
static const unsigned int MODETYPE_LAST = 2;
/** Mode watcher classes
*/
- std::multimap<std::string, ModeWatcher*> modewatchermap;
+ ModeWatcherMap modewatchermap;
/** Last processed mode change
*/
const ModeHandlerMap& GetModes(ModeType mt) const { return modehandlersbyname[mt]; }
/** Show the list of a list mode to a user. Modules can deny the listing.
- * @param user User to show the list to.
- * @param chan Channel to show the list of.
- * @param mh List mode to show the list of.
- */
+ * @param user User to show the list to.
+ * @param chan Channel to show the list of.
+ * @param mh List mode to show the list of.
+ */
void ShowListModeList(User* user, Channel* chan, ModeHandler* mh);
};