Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __BARRY_MIMEIO_H__
00024 #define __BARRY_MIMEIO_H__
00025
00026 #include "dll.h"
00027 #include "builder.h"
00028 #include <string>
00029 #include <vector>
00030 #include <memory>
00031 #include <iosfwd>
00032
00033 namespace Barry {
00034
00035 class BXEXPORT MimeBuilder : public Barry::Builder
00036 {
00037 std::auto_ptr<std::ifstream> m_ifs;
00038 std::istream &m_is;
00039
00040 public:
00041 explicit MimeBuilder(const std::string &filename);
00042 explicit MimeBuilder(std::istream &is);
00043
00044 bool BuildRecord(DBData &data, size_t &offset, const IConverter *ic);
00045 bool FetchRecord(DBData &data, const IConverter *ic);
00046 bool EndOfFile() const;
00047
00048
00049 static bool ReadMimeRecord(std::istream &is, std::string &vrec,
00050 std::vector<std::string> &types);
00051
00052
00053 static bool IsMember(const std::string &item,
00054 const std::vector<std::string> &types);
00055 };
00056
00057 }
00058
00059 #endif
00060