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 m_errorCode;
134 HttpFormDataDecoderException(
139 HttpFormDataDecoderException(
141 const String& _message
144 virtual String toString()
const;
152 static bool isValidType(
const char* _contentType);
153 static ByteString getBoundary(
const char* _contentType);
165 const char* _contentType,
166 size_t _contentLength,
167 ListedStringToStringArrayMap& _mapForm,
171 const String
warnings()
const {
return __warnings; }
175 bool getLine(
char*& _begin,
char*& _end);
179 bool getFirstBoundary(
const ByteString& _boundary);
182 bool getPartHeader(HttpFormData::PartHeader& header)
189 dsBeforeNextBoundary,
190 dsBeforeCloseBoundary
193 DataState getDataBlock(
194 const ByteString& _boundary,
200 bool readInput()
__DCL_THROWS1(HttpFormDataDecoderException*);
201 void appendWarning(const String& _warning);
204 InputStream* __input;
205 size_t __contentLength;
213 StringBuilder __warnings;
216 _CONST ByteString __contentDisposition;
217 _CONST ByteString __contentType;
219 _CONST ByteString __filename;
234 String transferEncoding;
244 friend class FileInfoArray;
251 FileInfo& operator[] (
size_t _index);
254 const String& name()
const {
return __name; }
267 FileInfoArray(
const String& _name);
268 FileInfoArray(
const FileInfo& src);
270 void add(FileInfo* pNewItem);
284 FileInfoArray& operator[] (
size_t _index);
285 FileInfoArray&
byName(
const wchar_t* _name);
290 void insert(
const String& _name, FileInfo* pNewItem);
294 const PartHeader& header,
295 void** ppCallbackData,
296 String& strCallbackError
303 String& strCallbackError
307 const PartHeader& header,
310 String& strCallbackError
326 String transferEncoding;
336 FileInfo(
const FileInfo& str);
339 friend class FileInfoArray;
346 FileInfo& operator[] (
size_t _index);
349 const String& name()
const {
return __name; }
362 FileInfoArray(
const String& _name);
363 FileInfoArray(
const FileInfo& src);
365 void add(FileInfo* pNewItem);
379 FileInfoArray& operator[] (
size_t _index);
380 FileInfoArray&
byName(
const wchar_t* _name);
386 void insert(
const String& _name, FileInfo* pNewItem);
390 const PartHeader& header,
391 void** ppCallbackData,
392 String& strCallbackError
399 String& strCallbackError
403 const PartHeader& header,
406 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