#ifndef MESSAGE_H #define MESSAGE_H #include #include #include "mimeImage.h" #include "inputImage.h" #include "util.h" class message { public: message(const std::string& address, const context& context, const std::string& message); private: class state { public: enum type { header, data, mimeBoundary, image }; }; private: void processMessage(const std::string& message); state::type processHeaderLine(const std::string& line); state::type processDataLine(const std::string& line); state::type processMimeBoundary(const std::string& line); state::type processImage(const std::string& line); private: std::string m_address; const context& m_context; std::string m_sender; std::string m_receiver; std::string m_subject; std::string m_date; std::string m_mimeBoundary; std::string m_contentType; std::string m_contentEncoding; size_t m_currentImage; std::string m_imageName; std::vector m_mimeImages; std::vector m_images; }; #endif // MESSAGE_H