diff options
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() |