summaryrefslogtreecommitdiff
path: root/include/mode.h
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2014-02-22 14:00:04 +0100
committerAttila Molnar <attilamolnar@hush.com>2014-02-22 14:00:04 +0100
commit7affd6453d9d564636da5fe5c0fe7baba5fecf7a (patch)
tree4fd4c2992e67dfaf6f63935ec9e07b738abb789d /include/mode.h
parent7ffef79f97c8dc9f21da35dff9f822be7f62edf3 (diff)
Add ModeParser::GetModes(), returns all user/chanmodes
Diffstat (limited to 'include/mode.h')
-rw-r--r--include/mode.h14
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()