diff options
author | Adam <Adam@anope.org> | 2012-10-01 18:50:29 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2012-10-01 18:50:29 -0400 |
commit | a434baed9154d90ad0dfd31c71a463fb8300bfd8 (patch) | |
tree | 587b81c85c8abd676bb6fe1897415017a6d3f85a /include | |
parent | f14a3dfb8a4cc9da7b5066ac8320265d54dba177 (diff) |
Allow modules to store data in their own databases.
Diffstat (limited to 'include')
-rw-r--r-- | include/access.h | 1 | ||||
-rw-r--r-- | include/account.h | 2 | ||||
-rw-r--r-- | include/bots.h | 1 | ||||
-rw-r--r-- | include/memo.h | 1 | ||||
-rw-r--r-- | include/oper.h | 1 | ||||
-rw-r--r-- | include/regchannel.h | 7 | ||||
-rw-r--r-- | include/serialize.h | 24 |
7 files changed, 21 insertions, 16 deletions
diff --git a/include/access.h b/include/access.h index b29572dfc..558dbeb5c 100644 --- a/include/access.h +++ b/include/access.h @@ -73,7 +73,6 @@ class CoreExport ChanAccess : public Serializable ChanAccess(AccessProvider *p); virtual ~ChanAccess(); - const Anope::string serialize_name() const anope_override; Serialize::Data serialize() const anope_override; static Serializable* unserialize(Serializable *obj, Serialize::Data &); diff --git a/include/account.h b/include/account.h index ff9c70727..8b4920fe4 100644 --- a/include/account.h +++ b/include/account.h @@ -134,7 +134,6 @@ class CoreExport NickAlias : public Extensible, public Flags<NickNameFlag, NS_EN time_t last_seen; /* When it was seen online for the last time */ serialize_obj<NickCore> nc; /* I'm an alias of this */ - const Anope::string serialize_name() const anope_override; Serialize::Data serialize() const anope_override; static Serializable* unserialize(Serializable *obj, Serialize::Data &); @@ -218,7 +217,6 @@ class CoreExport NickCore : public Extensible, public Flags<NickCoreFlag, NI_END time_t lastmail; /* Last time this nick record got a mail */ std::list<serialize_obj<NickAlias> > aliases; /* List of aliases */ - const Anope::string serialize_name() const anope_override; Serialize::Data serialize() const anope_override; static Serializable* unserialize(Serializable *obj, Serialize::Data &); diff --git a/include/bots.h b/include/bots.h index 521ab8c03..fa3053b57 100644 --- a/include/bots.h +++ b/include/bots.h @@ -62,7 +62,6 @@ class CoreExport BotInfo : public User, public Flags<BotFlag, BI_END>, public Se */ virtual ~BotInfo(); - const Anope::string serialize_name() const; Serialize::Data serialize() const; static Serializable* unserialize(Serializable *obj, Serialize::Data &); diff --git a/include/memo.h b/include/memo.h index 8ece00d6a..1879f89b3 100644 --- a/include/memo.h +++ b/include/memo.h @@ -38,7 +38,6 @@ class CoreExport Memo : public Flags<MemoFlag>, public Serializable public: Memo(); - const Anope::string serialize_name() const anope_override; Serialize::Data serialize() const anope_override; static Serializable* unserialize(Serializable *obj, Serialize::Data &); diff --git a/include/oper.h b/include/oper.h index d388c4339..6a18d3e2b 100644 --- a/include/oper.h +++ b/include/oper.h @@ -40,7 +40,6 @@ class CoreExport XLine : public Serializable bool HasNickOrReal() const; bool IsRegex() const; - const Anope::string serialize_name() const anope_override; Serialize::Data serialize() const anope_override; static Serializable* unserialize(Serializable *obj, Serialize::Data &data); }; diff --git a/include/regchannel.h b/include/regchannel.h index b22ebf677..0f5bb022a 100644 --- a/include/regchannel.h +++ b/include/regchannel.h @@ -95,7 +95,7 @@ struct CoreExport BadWord : Serializable Anope::string word; BadWordType type; - const Anope::string serialize_name() const anope_override; + BadWord() : Serializable("BadWord") { } Serialize::Data serialize() const anope_override; static Serializable* unserialize(Serializable *obj, Serialize::Data &); }; @@ -125,7 +125,6 @@ class CoreExport AutoKick : public Flags<AutoKickFlag>, public Serializable time_t addtime; time_t last_used; - const Anope::string serialize_name() const anope_override; Serialize::Data serialize() const anope_override; static Serializable* unserialize(Serializable *obj, Serialize::Data &); }; @@ -142,7 +141,6 @@ struct CoreExport ModeLock : Serializable ModeLock(ChannelInfo *ch, bool s, ChannelModeName n, const Anope::string &p, const Anope::string &se = "", time_t c = Anope::CurTime); - const Anope::string serialize_name() const anope_override; Serialize::Data serialize() const anope_override; static Serializable* unserialize(Serializable *obj, Serialize::Data &); }; @@ -160,7 +158,7 @@ struct CoreExport LogSetting : Serializable Anope::string creator; time_t created; - const Anope::string serialize_name() const anope_override; + LogSetting() : Serializable("LogSetting") { } Serialize::Data serialize() const anope_override; static Serializable* unserialize(Serializable *obj, Serialize::Data &); }; @@ -219,7 +217,6 @@ class CoreExport ChannelInfo : public Extensible, public Flags<ChannelInfoFlag, int16_t floodlines, floodsecs; /* For FLOOD kicker */ int16_t repeattimes; /* For REPEAT kicker */ - const Anope::string serialize_name() const anope_override; Serialize::Data serialize() const anope_override; static Serializable* unserialize(Serializable *obj, Serialize::Data &); diff --git a/include/serialize.h b/include/serialize.h index 67eb6b8ce..fd8e925ab 100644 --- a/include/serialize.h +++ b/include/serialize.h @@ -62,18 +62,22 @@ namespace Serialize extern void RegisterTypes(); +class SerializeType; + class CoreExport Serializable : public virtual Base { private: static std::list<Serializable *> *serializable_items; - + SerializeType *s_type; private: - std::list<Serializable *>::iterator s_iter; + std::list<Serializable *>::iterator s_iter; // Iterator into serializable_items + Serialize::Data last_commit; time_t last_commit_time; - protected: Serializable(); + protected: + Serializable(const Anope::string &serialize_type); Serializable(const Serializable &); virtual ~Serializable(); @@ -93,7 +97,8 @@ class CoreExport Serializable : public virtual Base bool IsTSCached(); void UpdateTS(); - virtual const Anope::string serialize_name() const = 0; + SerializeType* GetSerializableType() const; + virtual Serialize::Data serialize() const = 0; static const std::list<Serializable *> &GetItems(); @@ -108,12 +113,19 @@ class CoreExport SerializeType Anope::string name; unserialize_func unserialize; + Module *owner; + time_t timestamp; public: std::map<unsigned int, Serializable *> objects; - SerializeType(const Anope::string &n, unserialize_func f); + /** Creates a new serializable type + * @param n Type name + * @param f Func to unserialize objects + * @param owner Owner of this type. Leave NULL for the core. + */ + SerializeType(const Anope::string &n, unserialize_func f, Module *owner = NULL); ~SerializeType(); const Anope::string &GetName(); @@ -125,6 +137,8 @@ class CoreExport SerializeType time_t GetTimestamp() const; void UpdateTimestamp(); + Module* GetOwner() const; + static SerializeType *Find(const Anope::string &name); static const std::vector<Anope::string> &GetTypeOrder(); |