diff options
Diffstat (limited to 'lib/network/http_dyn.h')
| -rw-r--r-- | lib/network/http_dyn.h | 34 |
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 |
