diff options
author | Sadie Powell <sadie@witchery.services> | 2025-03-17 12:58:22 +0000 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2025-03-17 12:58:22 +0000 |
commit | bb1f93f1508ebdd0a6bef227cf924229dd05497b (patch) | |
tree | 807223c968d79a37c125cb2b5f41248f5ed6a45a /modules/rpc/rpc_system.cpp | |
parent | 85fbc500d8bcc83a26f3227c90cb82896b767d62 (diff) |
Switch RPC event registration to use the service system.
Diffstat (limited to 'modules/rpc/rpc_system.cpp')
-rw-r--r-- | modules/rpc/rpc_system.cpp | 31 |
1 files changed, 10 insertions, 21 deletions
diff --git a/modules/rpc/rpc_system.cpp b/modules/rpc/rpc_system.cpp index 4982e0646..2c2f33fd2 100644 --- a/modules/rpc/rpc_system.cpp +++ b/modules/rpc/rpc_system.cpp @@ -19,9 +19,12 @@ class AnopeDebugTypesRPCEvent final : public RPC::Event { public: - AnopeDebugTypesRPCEvent() - : RPC::Event("anope.debugTypes") + AnopeDebugTypesRPCEvent(Module *o) + : RPC::Event(o, "anope.debugTypes") { +#if !DEBUG_BUILD + Unregister(); +#endif } bool Run(RPC::ServiceInterface *iface, HTTPClient *client, RPC::Request &request) override @@ -80,15 +83,15 @@ class SystemListMethodsRPCEvent final : public RPC::Event { public: - SystemListMethodsRPCEvent() - : RPC::Event("system.listMethods") + SystemListMethodsRPCEvent(Module *o) + : RPC::Event(o, "system.listMethods") { } bool Run(RPC::ServiceInterface *iface, HTTPClient *client, RPC::Request &request) override { auto &root = request.Root<RPC::Array>(); - for (const auto &[event, _] : iface->GetEvents()) + for (const auto &event : Service::GetServiceKeys(RPC_EVENT)) root.Reply(event); return true; } @@ -104,25 +107,11 @@ private: public: ModuleRPCSystem(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, EXTRA | VENDOR) + , anopedebugtypesrpcevent(this) + , systemlistmethodsrpcevent(this) { if (!RPC::service) throw ModuleException("Unable to find RPC interface, is jsonrpc/xmlrpc loaded?"); - -#if DEBUG_BUILD - RPC::service->Register(&anopedebugtypesrpcevent); -#endif - RPC::service->Register(&systemlistmethodsrpcevent); - } - - ~ModuleRPCSystem() override - { - if (!RPC::service) - return; - -#if DEBUG_BUILD - RPC::service->Unregister(&anopedebugtypesrpcevent); -#endif - RPC::service->Unregister(&systemlistmethodsrpcevent); } }; |