X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fmodules.h;h=ce2402964c4516a1f065f7b0d8a0255f53965017;hb=1dca8b79edf65c0e5e846cc120f1321fb0a1d15c;hp=2481f8207de135317fb56e5cee2a2006478fffea;hpb=ee7ac5aaede95eb82ecc948d0e52ad01ddeaa6c9;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/modules.h b/include/modules.h index 2481f8207..ce2402964 100644 --- a/include/modules.h +++ b/include/modules.h @@ -35,14 +35,23 @@ #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 @@ -234,6 +243,7 @@ enum Implementation I_OnBuildNeighborList, I_OnGarbageCollect, I_OnSetConnectClass, I_OnText, I_OnPassCompare, I_OnNamesListItem, I_OnNumeric, I_OnPreRehash, I_OnModuleRehash, I_OnSendWhoLine, I_OnChangeIdent, I_OnSetUserIP, + I_OnServiceAdd, I_OnServiceDel, I_END }; @@ -276,7 +286,7 @@ class CoreExport Module : public classbase, public usecountbase /** Clean up prior to destruction * If you override, you must call this AFTER your module's cleanup */ - virtual CullResult cull() CXX11_OVERRIDE; + CullResult cull() CXX11_OVERRIDE; /** Default destructor. * destroys a module class @@ -997,6 +1007,16 @@ class CoreExport Module : public classbase, public usecountbase * @param user The user whose IP is being set */ virtual void OnSetUserIP(LocalUser* user); + + /** Called whenever a ServiceProvider is registered. + * @param service ServiceProvider being registered. + */ + virtual void OnServiceAdd(ServiceProvider& service); + + /** Called whenever a ServiceProvider is unregistered. + * @param service ServiceProvider being unregistered. + */ + virtual void OnServiceDel(ServiceProvider& service); }; /** A list of modules