summaryrefslogtreecommitdiff
path: root/include/modules/xmlrpc.h
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-05-05 03:30:08 -0400
committerAdam <Adam@anope.org>2013-05-05 03:30:08 -0400
commit57c2b65f08c9c0658003a74a32c6506829e12b0b (patch)
tree49883b790ed9f7cd395e0c6f2f62cc946d743635 /include/modules/xmlrpc.h
parenta118946e657b8a137502ff60c1f21c608cb44495 (diff)
Move module header files to include/modules to fix naming conflicts with system headers
Diffstat (limited to 'include/modules/xmlrpc.h')
-rw-r--r--include/modules/xmlrpc.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/include/modules/xmlrpc.h b/include/modules/xmlrpc.h
new file mode 100644
index 000000000..d5a5ea4a7
--- /dev/null
+++ b/include/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;
+};
+