aboutsummaryrefslogtreecommitdiff
path: root/lib/network/http_dyn.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/network/http_dyn.h')
-rw-r--r--lib/network/http_dyn.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/network/http_dyn.h b/lib/network/http_dyn.h
new file mode 100644
index 00000000..6fb8b9b1
--- /dev/null
+++ b/lib/network/http_dyn.h
@@ -0,0 +1,34 @@
+#ifndef __http_dyn_h_
+#define __http_dyn_h_
+#include <string>
+#include <lib/network/httpd.h>
+
+class eHTTPDyn: public eHTTPDataSource
+{
+ eString result;
+ int wptr, size;
+public:
+ eHTTPDyn(eHTTPConnection *c, eString result);
+ ~eHTTPDyn();
+ int doWrite(int);
+};
+
+class eHTTPDynPathResolver: public eHTTPPathResolver
+{
+ struct eHTTPDynEntry
+ {
+ eString request, path;
+ eString (*function)(eString request, eString path, eString opt, eHTTPConnection *content);
+
+ eHTTPDynEntry(eString request, eString path, eString (*function)(eString, eString, eString, eHTTPConnection *)): request(request), path(path), function(function)
+ {
+ }
+ };
+ ePtrList<eHTTPDynEntry> dyn;
+public:
+ void addDyn(eString request, eString path, eString (*function)(eString, eString, eString, eHTTPConnection *conn));
+ eHTTPDynPathResolver();
+ eHTTPDataSource *getDataSource(eString request, eString path, eHTTPConnection *conn);
+};
+
+#endif