diff options
author | Chris Wilson <chris+github@qwirx.com> | 2009-01-03 04:00:17 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2009-01-03 04:00:17 +0000 |
commit | b7c52100d6ca16f75d5cfbad30f5d19cea380c6d (patch) | |
tree | 9ea2d71c77c18f07146f2138c49d41e1281bd16d /lib/httpserver/HTTPQueryDecoder.h | |
parent | 18e050f41b86a25af014661939a495397e53b6a5 (diff) |
Copy HTTP server into Box, for use with S3 testing.
Diffstat (limited to 'lib/httpserver/HTTPQueryDecoder.h')
-rw-r--r-- | lib/httpserver/HTTPQueryDecoder.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/httpserver/HTTPQueryDecoder.h b/lib/httpserver/HTTPQueryDecoder.h new file mode 100644 index 00000000..ca5afe7e --- /dev/null +++ b/lib/httpserver/HTTPQueryDecoder.h @@ -0,0 +1,47 @@ +// -------------------------------------------------------------------------- +// +// File +// Name: HTTPQueryDecoder.h +// Purpose: Utility class to decode HTTP query strings +// Created: 26/3/04 +// +// -------------------------------------------------------------------------- + +#ifndef HTTPQUERYDECODER__H +#define HTTPQUERYDECODER__H + +#include "HTTPRequest.h" + +// -------------------------------------------------------------------------- +// +// Class +// Name: HTTPQueryDecoder +// Purpose: Utility class to decode HTTP query strings +// Created: 26/3/04 +// +// -------------------------------------------------------------------------- +class HTTPQueryDecoder +{ +public: + HTTPQueryDecoder(HTTPRequest::Query_t &rDecodeInto); + ~HTTPQueryDecoder(); +private: + // no copying + HTTPQueryDecoder(const HTTPQueryDecoder &); + HTTPQueryDecoder &operator=(const HTTPQueryDecoder &); +public: + + void DecodeChunk(const char *pQueryString, int QueryStringSize); + void Finish(); + +private: + HTTPRequest::Query_t &mrDecodeInto; + std::string mCurrentKey; + std::string mCurrentValue; + bool mInKey; + char mEscaped[4]; + int mEscapedState; +}; + +#endif // HTTPQUERYDECODER__H + |