diff options
author | attilamolnar <attilamolnar@hush.com> | 2013-09-02 12:33:28 +0200 |
---|---|---|
committer | attilamolnar <attilamolnar@hush.com> | 2013-09-12 14:44:17 +0200 |
commit | 7ba25076818e42b4eac9199477a01101cf57e848 (patch) | |
tree | 35c2c547fc992b58592a3b5f89d63cb53d589cbb /include | |
parent | 52e4d9c96c83ca4bbbeb487966ac2897a384907d (diff) |
Keep lists of mode handlers by type
Diffstat (limited to 'include')
-rw-r--r-- | include/mode.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/mode.h b/include/mode.h index bfe4041b9..68f792f3a 100644 --- a/include/mode.h +++ b/include/mode.h @@ -497,6 +497,19 @@ class CoreExport ModeParser */ ModeHandler* modehandlers[256]; + /** Lists of mode handlers by type + */ + struct + { + /** List of mode handlers that inherit from ListModeBase + */ + std::vector<ListModeBase*> list; + + /** List of mode handlers that inherit from PrefixMode + */ + std::vector<PrefixMode*> prefix; + } mhlist; + /** Mode watcher classes */ std::multimap<std::string, ModeWatcher*> modewatchermap; @@ -545,6 +558,9 @@ class CoreExport ModeParser std::string Cached004ModeList; public: + typedef std::vector<ListModeBase*> ListModeList; + typedef std::vector<PrefixMode*> PrefixModeList; + typedef unsigned int ModeProcessFlag; enum ModeProcessFlags { @@ -676,6 +692,16 @@ class CoreExport ModeParser * just the "@%+" part if the parameter false */ std::string BuildPrefixes(bool lettersAndModes = true); + + /** Get a list of all mode handlers that inherit from ListModeBase + * @return A list containing ListModeBase modes + */ + const ListModeList& GetListModes() const { return mhlist.list; } + + /** Get a list of all prefix modes + * @return A list containing all prefix modes + */ + const PrefixModeList& GetPrefixModes() const { return mhlist.prefix; } }; inline const std::string& ModeParser::GetModeListFor004Numeric() |