diff options
author | Attila Molnar <attilamolnar@hush.com> | 2014-02-22 14:00:04 +0100 |
---|---|---|
committer | Attila Molnar <attilamolnar@hush.com> | 2014-02-22 14:00:04 +0100 |
commit | 7affd6453d9d564636da5fe5c0fe7baba5fecf7a (patch) | |
tree | 4fd4c2992e67dfaf6f63935ec9e07b738abb789d /include/mode.h | |
parent | 7ffef79f97c8dc9f21da35dff9f822be7f62edf3 (diff) |
Add ModeParser::GetModes(), returns all user/chanmodes
Diffstat (limited to 'include/mode.h')
-rw-r--r-- | include/mode.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/include/mode.h b/include/mode.h index d71423ecf..c257226c9 100644 --- a/include/mode.h +++ b/include/mode.h @@ -491,15 +491,15 @@ class CoreExport ModeParser public: static const ModeHandler::Id MODEID_MAX = 64; + /** Type of the container that maps mode names to ModeHandlers + */ + typedef TR1NS::unordered_map<std::string, ModeHandler*, irc::insensitive, irc::StrHashComp> ModeHandlerMap; + private: /** Last item in the ModeType enum */ static const unsigned int MODETYPE_LAST = 2; - /** Type of the container that maps mode names to ModeHandlers - */ - typedef TR1NS::unordered_map<std::string, ModeHandler*, irc::insensitive, irc::StrHashComp> ModeHandlerMap; - /** Mode handlers for each mode, to access a handler subtract * 65 from the ascii value of the mode letter. * The upper bit of the value indicates if its a usermode @@ -733,6 +733,12 @@ class CoreExport ModeParser * @return A list containing all prefix modes */ const PrefixModeList& GetPrefixModes() const { return mhlist.prefix; } + + /** Get a mode name -> ModeHandler* map containing all modes of the given type + * @param mt Type of modes to return, MODETYPE_USER or MODETYPE_CHANNEL + * @return A map of mode handlers of the given type + */ + const ModeHandlerMap& GetModes(ModeType mt) const { return modehandlersbyname[mt]; } }; inline const std::string& ModeParser::GetModeListFor004Numeric() |