summaryrefslogtreecommitdiff
path: root/src/modules/extra/m_sql.h
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2005-04-21 12:01:35 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2005-04-21 12:01:35 +0000
commitf7a0c180d8d6dc4618b53892c04ca7af64e0841e (patch)
tree706f0e0078aebc949b8c04a7f60895a307d50578 /src/modules/extra/m_sql.h
parentb973cb4a05ae940d3ae098eb01f54f89acf1e631 (diff)
Added header for m_sql with inherited Request class
Added simple API for m_sql git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1149 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/extra/m_sql.h')
-rw-r--r--src/modules/extra/m_sql.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/src/modules/extra/m_sql.h b/src/modules/extra/m_sql.h
new file mode 100644
index 000000000..768551bf3
--- /dev/null
+++ b/src/modules/extra/m_sql.h
@@ -0,0 +1,108 @@
+#ifndef __M_SQL_H__
+#define __M_SQL_H__
+
+#include <string>
+#include <vector>
+
+#define SQL_RESULT 1
+#define SQL_COUNT 2
+#define SQL_ROW 3
+#define SQL_ERROR 4
+#define SQL_END 5
+
+// SQLRequest is inherited from a basic Request object
+// so that we can neatly pass information around the
+// system.
+
+class SQLRequest : public Request
+{
+ protected:
+ long conn_id;
+ int request_type;
+ std::string thisquery;
+ public:
+ void SetConnID(long id)
+ {
+ conn_id = id;
+ }
+
+ long GetConnID(long id)
+ {
+ return conn_id;
+ }
+
+ void SetQueryType(int t)
+ {
+ request_type = t;
+ }
+
+ int GetQueryType(int t)
+ {
+ return request_type;
+ }
+
+ void SetQuery(std::string query)
+ {
+ thisquery = query;
+ }
+
+ std::string GetQuery()
+ {
+ return thisquery;
+ }
+};
+
+// Upon completion, an SQLRequest returns an SQLResponse.
+
+class SQLResponse
+{
+ protected:
+ int resptype;
+ unsigned long count;
+ std::string error;
+ std::map<std::string,std::string> row;
+ public:
+ void SetRow(std::map<std::string,std::string> r)
+ {
+ row = r;
+ }
+
+ std::string GetField(std::string field)
+ {
+ std::map<std::string,std::string>::iterator iter = row.find(field);
+ if (iter == row.end()) return "";
+ return iter->second;
+ }
+
+ void SetType(int rt)
+ {
+ resptype = rt;
+ }
+
+ void SetError(std::string err)
+ {
+ error = err;
+ }
+
+ int GetType()
+ {
+ return restype;
+ }
+
+ std::string GetError()
+ {
+ return error;
+ }
+
+ void SetCount(unsigned long c)
+ {
+ count = c;
+ }
+
+ unsigned long GetCount()
+ {
+ return count;
+ }
+};
+
+#endif