diff options
Diffstat (limited to 'modules/database/db_redis.cpp')
-rw-r--r-- | modules/database/db_redis.cpp | 57 |
1 files changed, 34 insertions, 23 deletions
diff --git a/modules/database/db_redis.cpp b/modules/database/db_redis.cpp index 3cd023ed6..dd5ff0301 100644 --- a/modules/database/db_redis.cpp +++ b/modules/database/db_redis.cpp @@ -27,7 +27,7 @@ class Data : public Serialize::Data delete it->second; } - std::iostream& operator[](const Anope::string &key) anope_override + std::iostream& operator[](const Anope::string &key) override { std::stringstream* &stream = data[key]; if (!stream) @@ -35,7 +35,7 @@ class Data : public Serialize::Data return *stream; } - std::set<Anope::string> KeySet() const anope_override + std::set<Anope::string> KeySet() const override { std::set<Anope::string> keys; for (std::map<Anope::string, std::stringstream *>::const_iterator it = this->data.begin(), it_end = this->data.end(); it != it_end; ++it) @@ -43,7 +43,7 @@ class Data : public Serialize::Data return keys; } - size_t Hash() const anope_override + size_t Hash() const override { size_t hash = 0; for (std::map<Anope::string, std::stringstream *>::const_iterator it = this->data.begin(), it_end = this->data.end(); it != it_end; ++it) @@ -59,7 +59,7 @@ class TypeLoader : public Interface public: TypeLoader(Module *creator, const Anope::string &t) : Interface(creator), type(t) { } - void OnResult(const Reply &r) anope_override; + void OnResult(const Reply &r) override; }; class ObjectLoader : public Interface @@ -70,7 +70,7 @@ class ObjectLoader : public Interface public: ObjectLoader(Module *creator, const Anope::string &t, int64_t i) : Interface(creator), type(t), id(i) { } - void OnResult(const Reply &r) anope_override; + void OnResult(const Reply &r) override; }; class IDInterface : public Interface @@ -79,7 +79,7 @@ class IDInterface : public Interface public: IDInterface(Module *creator, Serializable *obj) : Interface(creator), o(obj) { } - void OnResult(const Reply &r) anope_override; + void OnResult(const Reply &r) override; }; class Deleter : public Interface @@ -89,7 +89,7 @@ class Deleter : public Interface public: Deleter(Module *creator, const Anope::string &t, int64_t i) : Interface(creator), type(t), id(i) { } - void OnResult(const Reply &r) anope_override; + void OnResult(const Reply &r) override; }; class Updater : public Interface @@ -99,7 +99,7 @@ class Updater : public Interface public: Updater(Module *creator, const Anope::string &t, int64_t i) : Interface(creator), type(t), id(i) { } - void OnResult(const Reply &r) anope_override; + void OnResult(const Reply &r) override; }; class ModifiedObject : public Interface @@ -109,7 +109,7 @@ class ModifiedObject : public Interface public: ModifiedObject(Module *creator, const Anope::string &t, int64_t i) : Interface(creator), type(t), id(i) { } - void OnResult(const Reply &r) anope_override; + void OnResult(const Reply &r) override; }; class SubscriptionListener : public Interface @@ -117,10 +117,15 @@ class SubscriptionListener : public Interface public: SubscriptionListener(Module *creator) : Interface(creator) { } - void OnResult(const Reply &r) anope_override; + void OnResult(const Reply &r) override; }; class DatabaseRedis : public Module, public Pipe + , public EventHook<Event::LoadDatabase> + , public EventHook<Event::SerializeTypeCreate> + , public EventHook<Event::SerializableConstruct> + , public EventHook<Event::SerializableDestruct> + , public EventHook<Event::SerializableUpdate> { SubscriptionListener sl; std::set<Serializable *> updated_items; @@ -128,7 +133,13 @@ class DatabaseRedis : public Module, public Pipe public: ServiceReference<Provider> redis; - DatabaseRedis(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, DATABASE | VENDOR), sl(this) + DatabaseRedis(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, DATABASE | VENDOR) + , EventHook<Event::LoadDatabase>("OnLoadDatabase") + , EventHook<Event::SerializeTypeCreate>("OnSerializeTypeCreate") + , EventHook<Event::SerializableConstruct>("OnSerializableConstruct") + , EventHook<Event::SerializableDestruct>("OnSerializableDestruct") + , EventHook<Event::SerializableUpdate>("OnSerializableUpdate") + , sl(this) { me = this; @@ -161,7 +172,7 @@ class DatabaseRedis : public Module, public Pipe } } - void OnNotify() anope_override + void OnNotify() override { for (std::set<Serializable *>::iterator it = this->updated_items.begin(), it_end = this->updated_items.end(); it != it_end; ++it) { @@ -173,13 +184,13 @@ class DatabaseRedis : public Module, public Pipe this->updated_items.clear(); } - void OnReload(Configuration::Conf *conf) anope_override + void OnReload(Configuration::Conf *conf) override { Configuration::Block *block = conf->GetModule(this); this->redis = ServiceReference<Provider>("Redis::Provider", block->Get<const Anope::string>("engine", "redis/main")); } - EventReturn OnLoadDatabase() anope_override + EventReturn OnLoadDatabase() override { const std::vector<Anope::string> type_order = Serialize::Type::GetTypeOrder(); for (unsigned i = 0; i < type_order.size(); ++i) @@ -195,7 +206,7 @@ class DatabaseRedis : public Module, public Pipe return EVENT_STOP; } - void OnSerializeTypeCreate(Serialize::Type *sb) anope_override + void OnSerializeTypeCreate(Serialize::Type *sb) override { if (!redis) return; @@ -203,17 +214,17 @@ class DatabaseRedis : public Module, public Pipe std::vector<Anope::string> args; args.push_back("SMEMBERS"); args.push_back("ids:" + sb->GetName()); - + redis->SendCommand(new TypeLoader(this, sb->GetName()), args); } - void OnSerializableConstruct(Serializable *obj) anope_override + void OnSerializableConstruct(Serializable *obj) override { this->updated_items.insert(obj); this->Notify(); } - void OnSerializableDestruct(Serializable *obj) anope_override + void OnSerializableDestruct(Serializable *obj) override { Serialize::Type *t = obj->GetSerializableType(); @@ -229,7 +240,7 @@ class DatabaseRedis : public Module, public Pipe this->Notify(); } - void OnSerializableUpdate(Serializable *obj) anope_override + void OnSerializableUpdate(Serializable *obj) override { this->updated_items.insert(obj); this->Notify(); @@ -458,14 +469,14 @@ void SubscriptionListener::OnResult(const Reply &r) */ if (r.multi_bulk.size() != 4) return; - + size_t sz = r.multi_bulk[2]->bulk.find(':'); if (sz == Anope::string::npos) return; - + const Anope::string &key = r.multi_bulk[2]->bulk.substr(sz + 1), &op = r.multi_bulk[3]->bulk; - + sz = key.rfind(':'); if (sz == Anope::string::npos) return; @@ -481,7 +492,7 @@ void SubscriptionListener::OnResult(const Reply &r) if (s_type == NULL) return; - + uint64_t obj_id; try { |