message.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef MESSAGE_H
  2. #define MESSAGE_H
  3. #include <string>
  4. #include <vector>
  5. #include "mimeImage.h"
  6. #include "inputImage.h"
  7. #include "util.h"
  8. class message
  9. {
  10. public:
  11. message(const std::string& address, const context& context, const std::string& message);
  12. private:
  13. class state
  14. {
  15. public:
  16. enum type
  17. {
  18. header,
  19. data,
  20. mimeBoundary,
  21. image
  22. };
  23. };
  24. private:
  25. void processMessage(const std::string& message);
  26. state::type processHeaderLine(const std::string& line);
  27. state::type processDataLine(const std::string& line);
  28. state::type processMimeBoundary(const std::string& line);
  29. state::type processImage(const std::string& line);
  30. private:
  31. std::string m_address;
  32. const context& m_context;
  33. std::string m_sender;
  34. std::string m_receiver;
  35. std::string m_subject;
  36. std::string m_date;
  37. std::string m_mimeBoundary;
  38. std::string m_contentType;
  39. std::string m_contentEncoding;
  40. size_t m_currentImage;
  41. std::string m_imageName;
  42. std::vector<mimeImage> m_mimeImages;
  43. std::vector<inputImage> m_images;
  44. };
  45. #endif // MESSAGE_H