summaryrefslogtreecommitdiff
path: root/include/extensible.h
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2019-05-13 17:24:25 +0100
committerPeter Powell <petpow@saberuk.com>2019-10-14 11:03:03 +0100
commitd0f802e30c492cb1b7e55f51063bfd38b29931c6 (patch)
treea11cbb5c48fae151d285e0536d4f51b2b09659da /include/extensible.h
parent51b9b4c9b404bd801be194644133be47bd035b58 (diff)
Implement serialisation of users.
This allows for various things which will be coming in the future. e.g. Transferring users to another server on upgrade.
Diffstat (limited to 'include/extensible.h')
-rw-r--r--include/extensible.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/include/extensible.h b/include/extensible.h
index c24984f26..f3eeabdcf 100644
--- a/include/extensible.h
+++ b/include/extensible.h
@@ -133,7 +133,9 @@ class CoreExport ExtensionItem : public ServiceProvider, public usecountbase
* a flags variable, and each module defining bits within the flag as 'theirs' as it is less prone to conflict and
* supports arbitary data storage).
*/
-class CoreExport Extensible : public classbase
+class CoreExport Extensible
+ : public classbase
+ , public Serializable
{
public:
typedef insp::flat_map<reference<ExtensionItem>, void*> ExtensibleStore;
@@ -165,6 +167,12 @@ class CoreExport Extensible : public classbase
* Free all extension items attached to this Extensible
*/
void FreeAllExtItems();
+
+ /** @copydoc Serializable::Deserialize. */
+ bool Deserialize(Data& data) CXX11_OVERRIDE;
+
+ /** @copydoc Serializable::Deserialize. */
+ bool Serialize(Serializable::Data& data) CXX11_OVERRIDE;
};
class CoreExport ExtensionManager