summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2017-02-07 17:20:07 -0500
committerAdam <Adam@anope.org>2017-02-07 17:20:07 -0500
commit09dca29c8898916772c2a2a6b86b625c812007ed (patch)
tree1b28f4751feec3ea2b46fa0afb061da7926f3a47 /include
parent8b694bc392c36551e428b84454efb81cdbc8bcd3 (diff)
Normalize databases by not allowing generic Object references
Remove redis database support
Diffstat (limited to 'include')
-rw-r--r--include/event.h2
-rw-r--r--include/modules/chanserv/chanaccess.h7
-rw-r--r--include/modules/chanserv/main/chanaccess.h8
-rw-r--r--include/modules/hostserv.h4
-rw-r--r--include/modules/memoserv.h7
-rw-r--r--include/modules/operserv/info.h7
-rw-r--r--include/modules/sql.h2
-rw-r--r--include/serialize.h9
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);