]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Add LocalIntExt and LocalStringExt::unserialize() for non-FORMAT_NETWORK
authorAttila Molnar <attilamolnar@hush.com>
Thu, 26 Nov 2015 12:53:01 +0000 (13:53 +0100)
committerAttila Molnar <attilamolnar@hush.com>
Thu, 26 Nov 2015 12:53:01 +0000 (13:53 +0100)
include/extensible.h
src/base.cpp

index 11d6acbc9359deb9dbfe455fd32f094ee531595d..5ac4fa9dab0cfd755ace8fd679876501965646b5 100644 (file)
@@ -201,6 +201,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 +210,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); }
index b007a109863b34587d26b0c389b4871f70b92562..496b23ef54e914832ebc8692e2f128f649356005 100644 (file)
@@ -243,6 +243,12 @@ std::string LocalStringExt::serialize(SerializeFormat format, const Extensible*
        return "";
 }
 
+void LocalStringExt::unserialize(SerializeFormat format, Extensible* container, const std::string& value)
+{
+       if (format != FORMAT_NETWORK)
+               set(container, value);
+}
+
 LocalIntExt::LocalIntExt(const std::string& Key, ExtensibleType exttype, Module* mod)
        : LocalExtItem(Key, exttype, mod)
 {
@@ -259,6 +265,12 @@ std::string LocalIntExt::serialize(SerializeFormat format, const Extensible* con
        return ConvToStr(reinterpret_cast<intptr_t>(item));
 }
 
+void LocalIntExt::unserialize(SerializeFormat format, Extensible* container, const std::string& value)
+{
+       if (format != FORMAT_NETWORK)
+               set(container, ConvToInt(value));
+}
+
 intptr_t LocalIntExt::get(const Extensible* container) const
 {
        return reinterpret_cast<intptr_t>(get_raw(container));