]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules.h
Remove <options:ircumsgprefix> entirely
[user/henk/code/inspircd.git] / include / modules.h
index 3cf7802846f7cc6acd2e817d8b218a1c3e6805f8..93e5c05a0fd56f9f1c65da2877bab4239f440d08 100644 (file)
@@ -1035,9 +1035,6 @@ class CoreExport ModuleManager : public fakederef<ModuleManager>
                PRIO_STATE_LAST
        } prioritizationState;
 
-       /** Internal unload module hook */
-       bool CanUnload(Module*);
-
        /** Loads all core modules (cmd_*)
         */
        void LoadCoreModules(std::map<std::string, ServiceList>& servicemap);
@@ -1068,6 +1065,13 @@ class CoreExport ModuleManager : public fakederef<ModuleManager>
         */
        ServiceList* NewServices;
 
+       /** Expands the name of a module by prepending "m_" and appending ".so".
+        * No-op if the name already has the ".so" extension.
+        * @param modname Module name to expand
+        * @return Module name starting with "m_" and ending with ".so"
+        */
+       static std::string ExpandModName(const std::string& modname);
+
        /** Simple, bog-standard, boring constructor.
         */
        ModuleManager();
@@ -1158,18 +1162,19 @@ class CoreExport ModuleManager : public fakederef<ModuleManager>
         */
        bool Unload(Module* module);
 
-       /** Run an asynchronous reload of the given module. When the reload is
-        * complete, the callback will be run with true if the reload succeeded
-        * and false if it did not.
-        */
-       void Reload(Module* module, HandlerBase1<void, bool>* callback);
-
        /** Called by the InspIRCd constructor to load all modules from the config file.
         */
        void LoadAll();
        void UnloadAll();
        void DoSafeUnload(Module*);
 
+       /** Check if a module can be unloaded and if yes, prepare it for unload
+        * @param mod Module to be unloaded
+        * @return True if the module is unloadable, false otherwise.
+        * If true the module must be unloaded in the current main loop iteration.
+        */
+       bool CanUnload(Module* mod);
+
        /** Find a module by name, and return a Module* to it.
         * This is preferred over iterating the module lists yourself.
         * @param name The module name to look up
@@ -1208,6 +1213,17 @@ class CoreExport ModuleManager : public fakederef<ModuleManager>
         * @return A ModuleMap containing all loaded modules
         */
        const ModuleMap& GetModules() const { return Modules; }
+
+       /** Make a service referenceable by dynamic_references
+        * @param name Name that will be used by dynamic_references to find the object
+        * @param service Service to make referenceable by dynamic_references
+        */
+       void AddReferent(const std::string& name, ServiceProvider* service);
+
+       /** Make a service no longer referenceable by dynamic_references
+        * @param service Service to make no longer referenceable by dynamic_references
+        */
+       void DelReferent(ServiceProvider* service);
 };
 
 /** Do not mess with these functions unless you know the C preprocessor