void HTMLForm::load(const HTTPRequest& request, std::istream& requestBody, PartHandler& handler) { if (request.getMethod() == HTTPRequest::HTTP_POST) { std::string mediaType; NameValueCollection params; MessageHeader::splitParameters(request.getContentType(), mediaType, params); _encoding = mediaType; if (_encoding == ENCODING_MULTIPART) { _boundary = params["boundary"]; readMultipart(requestBody, handler); } else { readUrl(requestBody); } } else { URI uri(request.getURI()); std::istringstream istr(uri.getRawQuery()); readUrl(istr); } }
void HTMLForm::read(std::istream& istr, PartHandler& handler) { if (_encoding == ENCODING_URL) readUrl(istr); else readMultipart(istr, handler); }
void MailMessage::read(std::istream& istr, PartHandler& handler) { readHeader(istr); if (isMultipart()) { readMultipart(istr, handler); } else { StringPartHandler handler(_content); readPart(istr, *this, handler); } }