]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/extensible.h
Remove <options:ircumsgprefix> entirely
[user/henk/code/inspircd.git] / include / extensible.h
index b98bb921fd98a2bec8c854bce4e9a3c4fc7b1717..1a51fdaafe54d62fa5dbb59d9921519bd8d5124c 100644 (file)
@@ -69,6 +69,10 @@ class CoreExport ExtensionItem : public ServiceProvider, public usecountbase
        /** Free the item */
        virtual void free(void* item) = 0;
 
+       /** Register this object in the ExtensionManager
+        */
+       void RegisterService() CXX11_OVERRIDE;
+
  protected:
        /** Get the item from the internal map */
        void* get_raw(const Extensible* container) const;
@@ -128,6 +132,11 @@ class CoreExport ExtensionManager
        void BeginUnregister(Module* module, std::vector<reference<ExtensionItem> >& list);
        ExtensionItem* GetItem(const std::string& name);
 
+       /** Get all registered extensions keyed by their names
+        * @return Const map of ExtensionItem pointers keyed by their names
+        */
+       const ExtMap& GetExts() const { return types; }
+
  private:
        ExtMap types;
 };
@@ -196,6 +205,7 @@ class CoreExport LocalStringExt : public SimpleExtItem<std::string>
        LocalStringExt(const std::string& key, ExtensibleType exttype, Module* owner);
        virtual ~LocalStringExt();
        std::string serialize(SerializeFormat format, const Extensible* container, void* item) const;
+       void unserialize(SerializeFormat format, Extensible* container, const std::string& value);
 };
 
 class CoreExport LocalIntExt : public LocalExtItem
@@ -204,6 +214,7 @@ class CoreExport LocalIntExt : public LocalExtItem
        LocalIntExt(const std::string& key, ExtensibleType exttype, Module* owner);
        virtual ~LocalIntExt();
        std::string serialize(SerializeFormat format, const Extensible* container, void* item) const;
+       void unserialize(SerializeFormat format, Extensible* container, const std::string& value);
        intptr_t get(const Extensible* container) const;
        intptr_t set(Extensible* container, intptr_t value);
        void unset(Extensible* container) { set(container, 0); }