summaryrefslogtreecommitdiff
path: root/modules/xmlrpc.h
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-04-16 01:58:29 -0500
committerAdam <Adam@anope.org>2013-04-16 01:58:29 -0500
commit781defb7076ddfddf723ca08cd0a518b6657b64f (patch)
tree911049f9e1bcf6a32e76c9b8800bf99f56edce02 /modules/xmlrpc.h
parent16c124d34e43282da6c552739211f8d8aca04791 (diff)
Move extras header files out of extras so when users copy modules out they dont need the headers too
Diffstat (limited to 'modules/xmlrpc.h')
-rw-r--r--modules/xmlrpc.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/modules/xmlrpc.h b/modules/xmlrpc.h
new file mode 100644
index 000000000..d5a5ea4a7
--- /dev/null
+++ b/modules/xmlrpc.h
@@ -0,0 +1,40 @@
+#include "httpd.h"
+
+class XMLRPCRequest
+{
+ std::map<Anope::string, Anope::string> replies;
+
+ public:
+ Anope::string name;
+ Anope::string id;
+ std::deque<Anope::string> data;
+ HTTPReply& r;
+
+ XMLRPCRequest(HTTPReply &_r) : r(_r) { }
+ inline void reply(const Anope::string &dname, const Anope::string &ddata) { this->replies.insert(std::make_pair(dname, ddata)); }
+ inline const std::map<Anope::string, Anope::string> &get_replies() { return this->replies; }
+};
+
+class XMLRPCServiceInterface;
+
+class XMLRPCEvent
+{
+ public:
+ virtual ~XMLRPCEvent() { }
+ virtual bool Run(XMLRPCServiceInterface *iface, HTTPClient *client, XMLRPCRequest &request) = 0;
+};
+
+class XMLRPCServiceInterface : public Service
+{
+ public:
+ XMLRPCServiceInterface(Module *creator, const Anope::string &sname) : Service(creator, "XMLRPCServiceInterface", sname) { }
+
+ virtual void Register(XMLRPCEvent *event) = 0;
+
+ virtual void Unregister(XMLRPCEvent *event) = 0;
+
+ virtual Anope::string Sanitize(const Anope::string &string) = 0;
+
+ virtual void Reply(XMLRPCRequest &request) = 0;
+};
+