summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/inspircd.h5
-rw-r--r--include/protocol.h40
2 files changed, 45 insertions, 0 deletions
diff --git a/include/inspircd.h b/include/inspircd.h
index 05e33cf0c..c1c6379a4 100644
--- a/include/inspircd.h
+++ b/include/inspircd.h
@@ -56,6 +56,7 @@
#include "modules.h"
#include "configreader.h"
#include "inspstring.h"
+#include "protocol.h"
/**
* Used to define the maximum number of parameters a command may have.
@@ -463,6 +464,10 @@ class CoreExport InspIRCd : public classbase
*/
int s_signal;
+ /** Protocol interface, overridden by server protocol modules
+ */
+ ProtocolInterface* PI;
+
/** Get the current time
* Because this only calls time() once every time around the mainloop,
* it is much faster than calling time() directly.
diff --git a/include/protocol.h b/include/protocol.h
new file mode 100644
index 000000000..65369e781
--- /dev/null
+++ b/include/protocol.h
@@ -0,0 +1,40 @@
+/* +------------------------------------+
+ * | Inspire Internet Relay Chat Daemon |
+ * +------------------------------------+
+ *
+ * InspIRCd: (C) 2002-2008 InspIRCd Development Team
+ * See: http://www.inspircd.org/wiki/index.php/Credits
+ *
+ * This program is free but copyrighted software; see
+ * the file COPYING for details.
+ *
+ * ---------------------------------------------------
+ */
+
+#ifndef __PROTOCOL_H__
+#define __PROTOCOL_H__
+
+class InspIRCd;
+
+typedef std::deque<std::string> parameterlist;
+
+class ProtocolInterface : public Extensible
+{
+ protected:
+ InspIRCd* ServerInstance;
+ public:
+ ProtocolInterface(InspIRCd* Instance) : ServerInstance(Instance) { }
+ virtual ~ProtocolInterface() { }
+
+ virtual void SendEncapsulatedData(parameterlist &encap) { }
+ virtual void SendMetaData(void* target, int type, const std::string &key, const std::string &data) { }
+ virtual void SendTopic(Channel* channel, std::string &topic) { }
+ virtual void SendMode(const std::string &origin, const std::string &target, parameterlist &modedata) { }
+ virtual void SendOperNotice(const std::string &text) { }
+ virtual void SendModeNotice(const std::string &modes, const std::string &text) { }
+ virtual void SendSNONotice(const std::string &snomask, const std::string &text) { }
+ virtual void PushToClient(User* target, const std::string &rawline) { }
+};
+
+#endif
+