diff options
author | Sadie Powell <sadie@witchery.services> | 2025-03-15 23:37:46 +0000 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2025-03-15 23:49:58 +0000 |
commit | 3744649320509e3b6cf2f515fd49c9122577b974 (patch) | |
tree | 70b8a5815bbad06cb879f8358cf5bea9168f76ff /modules | |
parent | 30593321f46145185e02a2c6a19a839a47626ee7 (diff) |
Move the RPC service interface to the RPC header.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/extra/xmlrpc.cpp | 20 | ||||
-rw-r--r-- | modules/rpc/jsonrpc.cpp | 12 | ||||
-rw-r--r-- | modules/rpc/rpc_data.cpp | 39 | ||||
-rw-r--r-- | modules/rpc/rpc_main.cpp | 18 | ||||
-rw-r--r-- | modules/rpc/rpc_message.cpp | 17 | ||||
-rw-r--r-- | modules/rpc/rpc_system.cpp | 14 |
6 files changed, 56 insertions, 64 deletions
diff --git a/modules/extra/xmlrpc.cpp b/modules/extra/xmlrpc.cpp index bc2a0c44a..e0efd1a9c 100644 --- a/modules/extra/xmlrpc.cpp +++ b/modules/extra/xmlrpc.cpp @@ -18,7 +18,7 @@ template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; }; template<class... Ts> overloaded(Ts...) -> overloaded<Ts...>; -class MyXMLRPCServiceInterface final +class XMLRPCServiceInterface final : public RPC::ServiceInterface , public HTTPPage { @@ -69,8 +69,8 @@ public: // Whether we should use the nil XML-RPC extension. static bool enable_nil; - MyXMLRPCServiceInterface(Module *creator, const Anope::string &sname) - : RPC::ServiceInterface(creator, sname) + XMLRPCServiceInterface(Module *creator) + : RPC::ServiceInterface(creator) , HTTPPage("/xmlrpc", "text/xml") { } @@ -199,7 +199,7 @@ public: } }; -xmlrpc_value *MyXMLRPCServiceInterface::SerializeElement(xmlrpc_env &env, const RPC::Value &value) +xmlrpc_value *XMLRPCServiceInterface::SerializeElement(xmlrpc_env &env, const RPC::Value &value) { xmlrpc_value *elem; std::visit(overloaded @@ -276,20 +276,20 @@ xmlrpc_value *MyXMLRPCServiceInterface::SerializeElement(xmlrpc_env &env, const return elem; } -bool MyXMLRPCServiceInterface::enable_i8 = true; -bool MyXMLRPCServiceInterface::enable_nil = true; +bool XMLRPCServiceInterface::enable_i8 = true; +bool XMLRPCServiceInterface::enable_nil = true; class ModuleXMLRPC final : public Module { private: ServiceReference<HTTPProvider> httpref; - MyXMLRPCServiceInterface xmlrpcinterface; + XMLRPCServiceInterface xmlrpcinterface; public: ModuleXMLRPC(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, EXTRA | VENDOR) - , xmlrpcinterface(this, "rpc") + , xmlrpcinterface(this) { xmlrpc_env env; xmlrpc_env_init(&env); @@ -320,8 +320,8 @@ public: httpref->UnregisterPage(&xmlrpcinterface); auto &modconf = conf.GetModule(this); - MyXMLRPCServiceInterface::enable_i8 = modconf.Get<bool>("enable_i8", "yes"); - MyXMLRPCServiceInterface::enable_nil = modconf.Get<bool>("enable_nil", "yes"); + XMLRPCServiceInterface::enable_i8 = modconf.Get<bool>("enable_i8", "yes"); + XMLRPCServiceInterface::enable_nil = modconf.Get<bool>("enable_nil", "yes"); this->httpref = ServiceReference<HTTPProvider>("HTTPProvider", modconf.Get<const Anope::string>("server", "httpd/main")); if (!httpref) diff --git a/modules/rpc/jsonrpc.cpp b/modules/rpc/jsonrpc.cpp index 2e484460b..c0ae6df56 100644 --- a/modules/rpc/jsonrpc.cpp +++ b/modules/rpc/jsonrpc.cpp @@ -21,7 +21,7 @@ inline Anope::string yyjson_get_astr(yyjson_val *val, const char *key) return str ? str : ""; } -class MyJSONRPCServiceInterface final +class JSONRPCServiceInterface final : public RPC::ServiceInterface , public HTTPPage { @@ -88,8 +88,8 @@ private: } public: - MyJSONRPCServiceInterface(Module *creator, const Anope::string &sname) - : RPC::ServiceInterface(creator, sname) + JSONRPCServiceInterface(Module *creator) + : RPC::ServiceInterface(creator) , HTTPPage("/jsonrpc", "application/json") { } @@ -211,7 +211,7 @@ public: } }; -yyjson_mut_val *MyJSONRPCServiceInterface::SerializeElement(yyjson_mut_doc *doc, const RPC::Value &value) +yyjson_mut_val *JSONRPCServiceInterface::SerializeElement(yyjson_mut_doc *doc, const RPC::Value &value) { yyjson_mut_val *elem; std::visit(overloaded @@ -260,12 +260,12 @@ class ModuleJSONRPC final { private: ServiceReference<HTTPProvider> httpref; - MyJSONRPCServiceInterface jsonrpcinterface; + JSONRPCServiceInterface jsonrpcinterface; public: ModuleJSONRPC(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, EXTRA | VENDOR) - , jsonrpcinterface(this, "rpc") + , jsonrpcinterface(this) { } diff --git a/modules/rpc/rpc_data.cpp b/modules/rpc/rpc_data.cpp index 059468fa0..2b58a9f76 100644 --- a/modules/rpc/rpc_data.cpp +++ b/modules/rpc/rpc_data.cpp @@ -364,8 +364,6 @@ class ModuleRPCData final : public Module { private: - ServiceReference<RPC::ServiceInterface> rpc; - AnopeListChannelsRPCEvent anopelistchannelsrpcevent; AnopeChannelRPCEvent anopechannelrpcevent; @@ -381,41 +379,40 @@ private: public: ModuleRPCData(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, EXTRA | VENDOR) - , rpc("RPCServiceInterface", "rpc") { - if (!rpc) + if (!RPC::service) throw ModuleException("Unable to find RPC interface, is jsonrpc/xmlrpc loaded?"); - rpc->Register(&anopelistchannelsrpcevent); - rpc->Register(&anopechannelrpcevent); + RPC::service->Register(&anopelistchannelsrpcevent); + RPC::service->Register(&anopechannelrpcevent); - rpc->Register(&anopelistopersrpcevent); - rpc->Register(&anopeoperrpcevent); + RPC::service->Register(&anopelistopersrpcevent); + RPC::service->Register(&anopeoperrpcevent); - rpc->Register(&anopelistserversrpcevent); - rpc->Register(&anopeserverrpcevent); + RPC::service->Register(&anopelistserversrpcevent); + RPC::service->Register(&anopeserverrpcevent); - rpc->Register(&anopelistusersrpcevent); - rpc->Register(&anopeuserrpcevent); + RPC::service->Register(&anopelistusersrpcevent); + RPC::service->Register(&anopeuserrpcevent); } ~ModuleRPCData() override { - if (!rpc) + if (!RPC::service) return; - rpc->Unregister(&anopelistchannelsrpcevent); - rpc->Unregister(&anopechannelrpcevent); + RPC::service->Unregister(&anopelistchannelsrpcevent); + RPC::service->Unregister(&anopechannelrpcevent); - rpc->Unregister(&anopelistopersrpcevent); - rpc->Unregister(&anopeoperrpcevent); + RPC::service->Unregister(&anopelistopersrpcevent); + RPC::service->Unregister(&anopeoperrpcevent); - rpc->Unregister(&anopelistserversrpcevent); - rpc->Unregister(&anopeserverrpcevent); + RPC::service->Unregister(&anopelistserversrpcevent); + RPC::service->Unregister(&anopeserverrpcevent); - rpc->Unregister(&anopelistusersrpcevent); - rpc->Unregister(&anopeuserrpcevent); + RPC::service->Unregister(&anopelistusersrpcevent); + RPC::service->Unregister(&anopeuserrpcevent); } }; diff --git a/modules/rpc/rpc_main.cpp b/modules/rpc/rpc_main.cpp index a1cad972e..68bcf9a04 100644 --- a/modules/rpc/rpc_main.cpp +++ b/modules/rpc/rpc_main.cpp @@ -171,7 +171,6 @@ class ModuleRPCMain final : public Module { private: - ServiceReference<RPC::ServiceInterface> rpc; CommandRPCEvent commandrpcevent; CheckAuthenticationRPCEvent checkauthenticationrpcevent; StatsRPCEvent statsrpcevent; @@ -179,26 +178,25 @@ private: public: ModuleRPCMain(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, EXTRA | VENDOR) - , rpc("RPCServiceInterface", "rpc") { me = this; - if (!rpc) + if (!RPC::service) throw ModuleException("Unable to find RPC interface, is jsonrpc/xmlrpc loaded?"); - rpc->Register(&commandrpcevent); - rpc->Register(&checkauthenticationrpcevent); - rpc->Register(&statsrpcevent); + RPC::service->Register(&commandrpcevent); + RPC::service->Register(&checkauthenticationrpcevent); + RPC::service->Register(&statsrpcevent); } ~ModuleRPCMain() override { - if (!rpc) + if (!RPC::service) return; - rpc->Unregister(&commandrpcevent); - rpc->Unregister(&checkauthenticationrpcevent); - rpc->Unregister(&statsrpcevent); + RPC::service->Unregister(&commandrpcevent); + RPC::service->Unregister(&checkauthenticationrpcevent); + RPC::service->Unregister(&statsrpcevent); } }; diff --git a/modules/rpc/rpc_message.cpp b/modules/rpc/rpc_message.cpp index 237c6f575..f85635943 100644 --- a/modules/rpc/rpc_message.cpp +++ b/modules/rpc/rpc_message.cpp @@ -129,26 +129,25 @@ public: ModuleRPCSystem(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, EXTRA | VENDOR) , global("GlobalService", "Global") - , rpc("RPCServiceInterface", "rpc") , messagenetworkrpcevent(global) , messageserverrpcevent(global) { - if (!rpc) + if (!RPC::service) throw ModuleException("Unable to find RPC interface, is jsonrpc/xmlrpc loaded?"); - rpc->Register(&messagenetworkrpcevent); - rpc->Register(&messageserverrpcevent); - rpc->Register(&messageuserrpcevent); + RPC::service->Register(&messagenetworkrpcevent); + RPC::service->Register(&messageserverrpcevent); + RPC::service->Register(&messageuserrpcevent); } ~ModuleRPCSystem() override { - if (!rpc) + if (!RPC::service) return; - rpc->Unregister(&messagenetworkrpcevent); - rpc->Unregister(&messageserverrpcevent); - rpc->Unregister(&messageuserrpcevent); + RPC::service->Unregister(&messagenetworkrpcevent); + RPC::service->Unregister(&messageserverrpcevent); + RPC::service->Unregister(&messageuserrpcevent); } }; diff --git a/modules/rpc/rpc_system.cpp b/modules/rpc/rpc_system.cpp index ede4b770e..4982e0646 100644 --- a/modules/rpc/rpc_system.cpp +++ b/modules/rpc/rpc_system.cpp @@ -98,33 +98,31 @@ class ModuleRPCSystem final : public Module { private: - ServiceReference<RPC::ServiceInterface> rpc; AnopeDebugTypesRPCEvent anopedebugtypesrpcevent; SystemListMethodsRPCEvent systemlistmethodsrpcevent; public: ModuleRPCSystem(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, EXTRA | VENDOR) - , rpc("RPCServiceInterface", "rpc") { - if (!rpc) + if (!RPC::service) throw ModuleException("Unable to find RPC interface, is jsonrpc/xmlrpc loaded?"); #if DEBUG_BUILD - rpc->Register(&anopedebugtypesrpcevent); + RPC::service->Register(&anopedebugtypesrpcevent); #endif - rpc->Register(&systemlistmethodsrpcevent); + RPC::service->Register(&systemlistmethodsrpcevent); } ~ModuleRPCSystem() override { - if (!rpc) + if (!RPC::service) return; #if DEBUG_BUILD - rpc->Unregister(&anopedebugtypesrpcevent); + RPC::service->Unregister(&anopedebugtypesrpcevent); #endif - rpc->Unregister(&systemlistmethodsrpcevent); + RPC::service->Unregister(&systemlistmethodsrpcevent); } }; |