X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fmode.h;h=7c5682135c7475f3d09353dbe0b734ac0230e8f2;hb=869fd6ca2822ef45ad7c3939b9ab7418200daf3e;hp=d71423ecff5e2e54cb7c35244d69df9a51afc831;hpb=1b6dda7ad54dd0242cd9eac30f167d76f061d2fa;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/mode.h b/include/mode.h index d71423ecf..7c5682135 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 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 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 @@ -637,10 +637,12 @@ class CoreExport ModeParser const std::string& GetLastParse() const { return LastParse; } const std::vector& GetLastParseParams() { return LastParseParams; } const std::vector& GetLastParseTranslate() { return LastParseTranslate; } + /** Add a mode to the mode parser. - * @return True if the mode was successfully added. + * Throws a ModuleException if the mode cannot be added. */ - bool AddMode(ModeHandler* mh); + void AddMode(ModeHandler* mh); + /** Delete a mode from the mode parser. * When a mode is deleted, the mode handler will be called * for every user (if it is a user mode) or for every channel @@ -733,6 +735,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()