1#ifndef __DCL_HTTP_COLLECTION_H__
2#define __DCL_HTTP_COLLECTION_H__ 20050526
4#ifndef __DCL_OBJECT_H__
7#ifndef __DCL_EXCEPTION_H__
10#ifndef __DCL_INPUT_STREAM_H__
13#ifndef __DCL_LISTED_HASH_MAP_H__
38 const ByteString& _contents,
39 ListedStringToStringMap& _results
47 const ByteString& _queryString,
48 ListedStringToStringArrayMap& _results
54 ListedStringToStringArrayMap& _results
58 const char* _contentType
66 const ListedStringToStringArrayMap& _map
92 virtual bool onFileStart(
93 const PartHeader& header,
94 void** ppCallbackData,
95 String& strCallbackError
102 virtual bool onFileData(
106 String& strCallbackError
111 virtual bool onFileEnd(
112 const PartHeader& header,
115 String& strCallbackError
128 eFormDataCallbackError
131 ErrorCode __errorCode;
134 HttpFormDataDecoderException(
135 ErrorCode _errorCode,
139 HttpFormDataDecoderException(
140 ErrorCode _errorCode,
141 const String& _message
144 virtual String toString()
const;
151 static bool isValidType(
const char* _contentType);
152 static ByteString getBoundary(
const char* _contentType);
164 const char* _contentType,
165 size_t _contentLength,
166 ListedStringToStringArrayMap& _mapForm,
170 const String
warnings()
const {
return __warnings; }
174 bool getLine(
char*& _begin,
char*& _end);
178 bool getFirstBoundary(
const ByteString& _boundary);
181 bool getPartHeader(HttpFormData::PartHeader& header)
188 dsBeforeNextBoundary,
189 dsBeforeCloseBoundary
192 DataState getDataBlock(
193 const ByteString& _boundary,
199 bool readInput()
__DCL_THROWS1(HttpFormDataDecoderException*);
200 void appendWarning(const String& _warning);
202 InputStream* __input;
203 size_t __contentLength;
211 StringBuilder __warnings;
214 _CONST ByteString __contentDisposition;
215 _CONST ByteString __contentType;
217 _CONST ByteString __filename;
232 String transferEncoding;
242 friend class FileInfoArray;
249 FileInfo& operator[] (
size_t _index);
252 const String& name()
const {
return __name; }
265 FileInfoArray(
const String& _name);
266 FileInfoArray(
const FileInfo& src);
268 void add(FileInfo* pNewItem);
282 FileInfoArray& operator[] (
size_t _index);
283 FileInfoArray&
byName(
const wchar_t* _name);
288 void insert(
const String& _name, FileInfo* pNewItem);
292 const PartHeader& header,
293 void** ppCallbackData,
294 String& strCallbackError
301 String& strCallbackError
305 const PartHeader& header,
308 String& strCallbackError
324 String transferEncoding;
334 FileInfo(
const FileInfo& str);
337 friend class FileInfoArray;
344 FileInfo& operator[] (
size_t _index);
347 const String& name()
const {
return __name; }
360 FileInfoArray(
const String& _name);
361 FileInfoArray(
const FileInfo& src);
363 void add(FileInfo* pNewItem);
377 FileInfoArray& operator[] (
size_t _index);
378 FileInfoArray&
byName(
const wchar_t* _name);
384 void insert(
const String& _name, FileInfo* pNewItem);
388 const PartHeader& header,
389 void** ppCallbackData,
390 String& strCallbackError
397 String& strCallbackError
401 const PartHeader& header,
404 String& strCallbackError
#define DECLARE_CLASSINFO(class_name)
Exception(Exception *_cause=NULL)
static void decode(const ByteString &_contents, ListedStringToStringMap &_results)
static void decode(const ByteString &_queryString, ListedStringToStringArrayMap &_results)
static bool isValidType(const char *_contentType)
static String encode(const ListedStringToStringArrayMap &_map)
virtual String toString() const