]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/extensible.h
Remove ProtocolInterface::PushToClient()
[user/henk/code/inspircd.git] / include / extensible.h
index 11d6acbc9359deb9dbfe455fd32f094ee531595d..07756fb599a419fe3525fb326cfac2ff28d1ec22 100644 (file)
@@ -19,8 +19,6 @@
 
 #pragma once
 
-#include <stdint.h>
-
 enum SerializeFormat
 {
        /** Shown to a human (does not need to be unserializable) */
@@ -38,8 +36,8 @@ enum SerializeFormat
 class CoreExport ExtensionItem : public ServiceProvider, public usecountbase
 {
  public:
-    /** Extensible subclasses
-     */
+       /** Extensible subclasses
+        */
        enum ExtensibleType
        {
                EXT_USER,
@@ -69,6 +67,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;
@@ -201,6 +203,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
@@ -209,6 +212,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); }