diff options
author | Adam <Adam@anope.org> | 2017-02-07 17:20:07 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2017-02-07 17:20:07 -0500 |
commit | 09dca29c8898916772c2a2a6b86b625c812007ed (patch) | |
tree | 1b28f4751feec3ea2b46fa0afb061da7926f3a47 /include | |
parent | 8b694bc392c36551e428b84454efb81cdbc8bcd3 (diff) |
Normalize databases by not allowing generic Object references
Remove redis database support
Diffstat (limited to 'include')
-rw-r--r-- | include/event.h | 2 | ||||
-rw-r--r-- | include/modules/chanserv/chanaccess.h | 7 | ||||
-rw-r--r-- | include/modules/chanserv/main/chanaccess.h | 8 | ||||
-rw-r--r-- | include/modules/hostserv.h | 4 | ||||
-rw-r--r-- | include/modules/memoserv.h | 7 | ||||
-rw-r--r-- | include/modules/operserv/info.h | 7 | ||||
-rw-r--r-- | include/modules/sql.h | 2 | ||||
-rw-r--r-- | include/serialize.h | 9 |
8 files changed, 23 insertions, 23 deletions
diff --git a/include/event.h b/include/event.h index 85e406795..bcc04cc0a 100644 --- a/include/event.h +++ b/include/event.h @@ -1202,7 +1202,7 @@ namespace Event virtual EventReturn OnSerializeDeref(Serialize::ID value, Serialize::TypeBase *type) anope_abstract; - virtual EventReturn OnSerializableGetId(Serialize::ID &id) anope_abstract; + virtual EventReturn OnSerializableGetId(Serialize::TypeBase *type, Serialize::ID &id) anope_abstract; virtual void OnSerializableDelete(Serialize::Object *) anope_abstract; diff --git a/include/modules/chanserv/chanaccess.h b/include/modules/chanserv/chanaccess.h index faaf48175..dff39c0f8 100644 --- a/include/modules/chanserv/chanaccess.h +++ b/include/modules/chanserv/chanaccess.h @@ -35,7 +35,7 @@ class CoreExport ChanAccess : public Serialize::Object static constexpr const char *const NAME = "access"; Serialize::Storage<Channel *> channel; - Serialize::Storage<Serialize::Object *> object; + Serialize::Storage<NickServ::Account *> account; Serialize::Storage<Anope::string> creator, mask; Serialize::Storage<time_t> last_seen, created; @@ -56,11 +56,10 @@ class CoreExport ChanAccess : public Serialize::Object virtual Anope::string GetMask() anope_abstract; virtual void SetMask(const Anope::string &) anope_abstract; - virtual Serialize::Object *GetObj() anope_abstract; - virtual void SetObj(Serialize::Object *) anope_abstract; + virtual NickServ::Account *GetAccount() anope_abstract; + virtual void SetAccount(NickServ::Account *) anope_abstract; virtual Anope::string Mask() anope_abstract; - virtual NickServ::Account *GetAccount() anope_abstract; /** Check if this access entry matches the given user or account * @param u The user diff --git a/include/modules/chanserv/main/chanaccess.h b/include/modules/chanserv/main/chanaccess.h index a126da685..fb78056ea 100644 --- a/include/modules/chanserv/main/chanaccess.h +++ b/include/modules/chanserv/main/chanaccess.h @@ -22,8 +22,7 @@ class ChanAccessImpl : public ChanServ::ChanAccess { public: - ChanAccessImpl(Serialize::TypeBase *type) : ChanServ::ChanAccess(type) { } - ChanAccessImpl(Serialize::TypeBase *type, Serialize::ID id) : ChanServ::ChanAccess(type, id) { } + using ChanServ::ChanAccess::ChanAccess; ChanServ::Channel *GetChannel() override; void SetChannel(ChanServ::Channel *ci) override; @@ -40,11 +39,10 @@ class ChanAccessImpl : public ChanServ::ChanAccess Anope::string GetMask() override; void SetMask(const Anope::string &) override; - Serialize::Object *GetObj() override; - void SetObj(Serialize::Object *) override; + NickServ::Account *GetAccount() override; + void SetAccount(NickServ::Account *) override; Anope::string Mask() override; - NickServ::Account *GetAccount() override; bool Matches(const User *u, NickServ::Account *acc) override; }; diff --git a/include/modules/hostserv.h b/include/modules/hostserv.h index 6934c813e..f2ec9a187 100644 --- a/include/modules/hostserv.h +++ b/include/modules/hostserv.h @@ -31,8 +31,8 @@ namespace HostServ public: static constexpr const char *const NAME = "vhost"; - virtual Serialize::Object *GetOwner() anope_abstract; - virtual void SetOwner(Serialize::Object *) anope_abstract; + virtual NickServ::Account *GetAccount() anope_abstract; + virtual void SetAccount(NickServ::Account *) anope_abstract; virtual Anope::string GetIdent() anope_abstract; virtual void SetIdent(const Anope::string &) anope_abstract; diff --git a/include/modules/memoserv.h b/include/modules/memoserv.h index 8c39b5a5e..888f793fe 100644 --- a/include/modules/memoserv.h +++ b/include/modules/memoserv.h @@ -138,8 +138,11 @@ namespace MemoServ virtual bool HasIgnore(User *u) anope_abstract; - virtual Serialize::Object *GetOwner() anope_abstract; - virtual void SetOwner(Serialize::Object *) anope_abstract; + virtual NickServ::Account *GetAccount() anope_abstract; + virtual void SetAccount(NickServ::Account *) anope_abstract; + + virtual ChanServ::Channel *GetChannel() anope_abstract; + virtual void SetChannel(ChanServ::Channel *) anope_abstract; virtual int16_t GetMemoMax() anope_abstract; virtual void SetMemoMax(const int16_t &) anope_abstract; diff --git a/include/modules/operserv/info.h b/include/modules/operserv/info.h index 0e2198880..0ab6d65b6 100644 --- a/include/modules/operserv/info.h +++ b/include/modules/operserv/info.h @@ -25,8 +25,11 @@ class OperInfo : public Serialize::Object public: static constexpr const char *const NAME = "operinfo"; - virtual Serialize::Object *GetTarget() anope_abstract; - virtual void SetTarget(Serialize::Object *) anope_abstract; + virtual NickServ::Account *GetAccount() anope_abstract; + virtual void SetAccount(NickServ::Account *) anope_abstract; + + virtual ChanServ::Channel *GetChannel() anope_abstract; + virtual void SetChannel(ChanServ::Channel *) anope_abstract; virtual Anope::string GetInfo() anope_abstract; virtual void SetInfo(const Anope::string &) anope_abstract; diff --git a/include/modules/sql.h b/include/modules/sql.h index 263b99fd1..31e7af0bf 100644 --- a/include/modules/sql.h +++ b/include/modules/sql.h @@ -210,7 +210,7 @@ namespace SQL virtual Query BeginTransaction() anope_abstract; virtual Query Commit() anope_abstract; - virtual Serialize::ID GetID(const Anope::string &) anope_abstract; + virtual Serialize::ID GetID(const Anope::string &prefix, const Anope::string &type) anope_abstract; virtual Query GetTables(const Anope::string &prefix) anope_abstract; }; diff --git a/include/serialize.h b/include/serialize.h index 90aedc7ae..10ec14d16 100644 --- a/include/serialize.h +++ b/include/serialize.h @@ -41,11 +41,9 @@ namespace Serialize template<typename T, typename> class Type; template<typename T> class Reference; - // by id - extern std::unordered_map<ID, Object *> objects; extern std::vector<FieldBase *> serializableFields; - extern Object *GetID(ID id); + extern Object *GetID(Serialize::TypeBase *type, ID id); template<typename T> inline T GetObject(); @@ -240,7 +238,6 @@ class CoreExport Serialize::TypeBase : public Service std::set<Object *> objects; TypeBase(Module *owner, const Anope::string &n); - ~TypeBase(); void Unregister(); @@ -292,7 +289,7 @@ class Serialize::Type : public Base T* RequireID(ID id) { - Object *s = Serialize::GetID(id); + Object *s = Serialize::GetID(this, id); if (s == nullptr) return new T(this, id); @@ -353,7 +350,7 @@ class Serialize::Reference if (!valid) return nullptr; - Object *targ = GetID(id); + Object *targ = GetID(type, id); if (targ != nullptr && targ->GetSerializableType() == type) return anope_dynamic_static_cast<T*>(targ); |