X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fextensible.h;h=2e7b83a28b3d90324577b68b151e0db75add6016;hb=a30a0074edac353cb60e134b43fa8ff0ffb67f8b;hp=c24984f2678672ae1f1a4a3922451772bc8c901f;hpb=0827c5c7425a17b6a569a9f706b5b3dea8fa345a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/extensible.h b/include/extensible.h index c24984f26..2e7b83a28 100644 --- a/include/extensible.h +++ b/include/extensible.h @@ -1,6 +1,9 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2013, 2017-2020 Sadie Powell + * Copyright (C) 2012, 2014-2015 Attila Molnar + * Copyright (C) 2012 Robby * Copyright (C) 2009 Daniel De Graaf * * This file is part of InspIRCd. InspIRCd is free software: you can @@ -51,7 +54,7 @@ class CoreExport ExtensionItem : public ServiceProvider, public usecountbase /** Initializes an instance of the ExtensionItem class. * @param key The name of the extension item (e.g. ssl_cert). * @param exttype The type of Extensible that this ExtensionItem applies to. - * @param owner The module which created this ExtensionItem + * @param owner The module which created this ExtensionItem. */ ExtensionItem(const std::string& key, ExtensibleType exttype, Module* owner); @@ -131,9 +134,11 @@ class CoreExport ExtensionItem : public ServiceProvider, public usecountbase * a map associated with the object. In this way modules can store their own custom information within user * objects, channel objects and server objects, without breaking other modules (this is more sensible than using * 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). + * supports arbitrary data storage). */ -class CoreExport Extensible : public classbase +class CoreExport Extensible + : public classbase + , public Serializable { public: typedef insp::flat_map, void*> ExtensibleStore; @@ -165,6 +170,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