Go to the documentation of this file.00001 #ifndef WIBBLE_NET_MIME_H
00002 #define WIBBLE_NET_MIME_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <string>
00025 #include <map>
00026 #include <wibble/regexp.h>
00027 #include <iosfwd>
00028
00029 namespace wibble {
00030 namespace net {
00031 namespace mime {
00032
00033 struct Reader
00034 {
00035 wibble::ERegexp header_splitter;
00036
00037 Reader();
00038
00051 bool read_line(int sock, std::string& res);
00052
00059 bool read_headers(int sock, std::map<std::string, std::string>& headers);
00060
00069 bool read_until_boundary(int sock, const std::string& boundary, std::ostream& out, size_t max=0);
00070
00077 bool discard_until_boundary(int sock, const std::string& boundary);
00078
00084 bool readboundarytail(int sock);
00085 };
00086
00087 }
00088 }
00089 }
00090
00091
00092 #endif