]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules.h
Deduplicate error handling in the socket engines.
[user/henk/code/inspircd.git] / include / modules.h
index d9d05a39603c2fa4245b9ebe01332c0fd7e4ad0e..5244930d003f181c0e338fea984b4e8408d0a59f 100644 (file)
 #include "timer.h"
 #include "mode.h"
 
-/** Used to define a set of behavior bits for a module
- */
-enum ModuleFlags {
-       VF_NONE = 0,            // module is not special at all
-       VF_VENDOR = 2,          // module is a vendor module (came in the original tarball, not 3rd party)
-       VF_COMMON = 4,          // module needs to be common on all servers in a network to link
-       VF_OPTCOMMON = 8,       // module should be common on all servers for unsurprising behavior
-       VF_CORE = 16            // module is a core command, can be assumed loaded on all servers
+/** Used to specify the behaviour of a module. */
+enum ModuleFlags
+{
+       /** The module has no special attributes. */
+       VF_NONE = 0,
+
+       /** The module is a coremod and can be assumed to be loaded on all servers. */
+       VF_CORE = 1,
+
+       /* The module is included with InspIRCd. */
+       VF_VENDOR = 2,
+
+       /** The module MUST be loaded on all servers on a network to link. */
+       VF_COMMON = 4,
+
+       /** The module SHOULD be loaded on all servers on a network for consistency. */
+       VF_OPTCOMMON = 8
 };
 
 /** Used to represent an event type, for user, channel or server
@@ -649,16 +658,15 @@ class CoreExport Module : public classbase, public usecountbase
         */
        virtual void OnExpireLine(XLine *line);
 
-       /** Called before your module is unloaded to clean up Extensibles.
-        * This method is called once for every user and channel on the network,
-        * so that when your module unloads it may clear up any remaining data
-        * in the form of Extensibles added using Extensible::Extend().
-        * If the target_type variable is TYPE_USER, then void* item refers to
-        * a User*, otherwise it refers to a Channel*.
-        * @param target_type The type of item being cleaned
-        * @param item A pointer to the item's class
+       /** Called before the module is unloaded to clean up extensibles.
+        * This method is called once for every channel, membership, and user.
+        * so that you can clear up any data relating to the specified extensible.
+        * @param type The type of extensible being cleaned up. If this is EXT_CHANNEL
+        *             then item is a Channel*, EXT_MEMBERSHIP then item is a Membership*,
+        *             and EXT_USER then item is a User*.
+        * @param item A pointer to the extensible which is being cleaned up.
         */
-       virtual void OnCleanup(int target_type, void* item);
+       virtual void OnCleanup(ExtensionItem::ExtensibleType type, Extensible* item);
 
        /** Called after any nickchange, local or remote. This can be used to track users after nickchanges
         * have been applied. Please note that although you can see remote nickchanges through this function, you should
@@ -989,7 +997,7 @@ class CoreExport Module : public classbase, public usecountbase
         * @param user The user that this line of the query is about
         * @param memb The member shown in this line, NULL if no channel is in this line
         * @param numeric Numeric to send; modifiable.
-        * @param Return MOD_RES_PASSTHRU to allow the line to be displayed, MOD_RES_DENY to hide it
+        * @return MOD_RES_PASSTHRU to allow the line to be displayed, MOD_RES_DENY to hide it
         */
        virtual ModResult OnSendWhoLine(User* source, const std::vector<std::string>& params, User* user, Membership* memb, Numeric::Numeric& numeric);
 
@@ -1028,7 +1036,7 @@ class CoreExport ModuleManager : public fakederef<ModuleManager>
                PRIO_STATE_LAST
        } prioritizationState;
 
-       /** Loads all core modules (cmd_*)
+       /** Loads all core modules (core_*)
         */
        void LoadCoreModules(std::map<std::string, ServiceList>& servicemap);