summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/modules/rpc.h6
-rw-r--r--modules/extra/xmlrpc.cpp20
-rw-r--r--modules/rpc/jsonrpc.cpp12
-rw-r--r--modules/rpc/rpc_data.cpp39
-rw-r--r--modules/rpc/rpc_main.cpp18
-rw-r--r--modules/rpc/rpc_message.cpp17
-rw-r--r--modules/rpc/rpc_system.cpp14
7 files changed, 60 insertions, 66 deletions
diff --git a/include/modules/rpc.h b/include/modules/rpc.h
index cd0578729..52d1d6492 100644
--- a/include/modules/rpc.h
+++ b/include/modules/rpc.h
@@ -38,6 +38,8 @@ namespace RPC
ERR_METHOD_NOT_FOUND = -32601,
ERR_INVALID_PARAMS = -32602,
};
+
+ static ServiceReference<RPC::ServiceInterface> service("RPC::ServiceInterface", "rpc");
}
class RPC::Array final
@@ -196,8 +198,8 @@ class RPC::ServiceInterface
: public Service
{
public:
- ServiceInterface(Module *creator, const Anope::string &sname)
- : Service(creator, "RPCServiceInterface", sname)
+ ServiceInterface(Module *creator)
+ : Service(creator, "RPC::ServiceInterface", "rpc")
{
}
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);
}
};