summaryrefslogtreecommitdiffabout
path: root/include/sitecing/sitecing_interface_cgi.h
Side-by-side diff
Diffstat (limited to 'include/sitecing/sitecing_interface_cgi.h') (more/less context) (ignore whitespace changes)
-rw-r--r--include/sitecing/sitecing_interface_cgi.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/include/sitecing/sitecing_interface_cgi.h b/include/sitecing/sitecing_interface_cgi.h
new file mode 100644
index 0000000..cab947c
--- a/dev/null
+++ b/include/sitecing/sitecing_interface_cgi.h
@@ -0,0 +1,62 @@
+#ifndef __SITECING_SITECING_INTERFACE_CGI_H
+#define __SITECING_SITECING_INTERFACE_CGI_H
+
+#include <sstream>
+#include <string>
+#include <map>
+#include "kingate/cgi_gateway.h"
+#include "sitecing/sitecing_interface.h"
+#include "sitecing/sitespace.h"
+
+/**
+ * @file
+ * @brief The sitecing_interface_cgi class declaration.
+ */
+
+namespace sitecing {
+ using namespace std;
+
+ /**
+ * The interface to site-C-ing core for the CGI component.
+ */
+ class sitecing_interface_cgi : public sitecing_interface {
+ public:
+ /**
+ * Pointer to the CGI gateway interface.
+ */
+ kingate::cgi_gateway* cgigw;
+ /**
+ * Type for the map of headers to spit out.
+ */
+ typedef map<string,string> headers_t;
+ /**
+ * The list of headers to spit out.
+ */
+ headers_t headers;
+ /**
+ * Here is where we prebuffer output.
+ */
+ ostringstream prebuffer;
+ /**
+ * Pointer to the sitespace object.
+ */
+ sitespace *ss; // XXX: or does it belong to the generic interface? or should this 'generic' interface exist at all?
+
+ /**
+ * @param s Pointer to the sitespace object.
+ */
+ sitecing_interface_cgi(sitespace *s);
+
+ /**
+ * @todo TODO: wish I could remember -- document me.
+ */
+ void prepare(kingate::cgi_gateway *cg);
+ /**
+ * @todo TODO: wish I could remember -- document me.
+ */
+ void flush();
+
+ };
+}
+
+#endif /* __SITECING_SITECING_INTERFACE_CGI_H */