#ifndef DBOX_MIMEPARSE_H

#define DBOX_MIMEPARSE_H

#include <string>
#include <vector>

#include <mtoolrfc.h>

struct mimeattributet
 {
  std::string name, value;
 };

struct mimeheadert
 {
 public:
  std::string value, subvalue;
  std::vector<mimeattributet> attributes;
  bool findattribute(std::string &dest, const std::string &name) const;
 };
 
std::string mimeheader2str(const struct mimeheadert &mimeheader);
void parse_mime_header(const std::string &text, mimeheadert &mimeheader);

struct mimestructt
 {
 public:
  dword headerlen, len, offset;

  mimeheadert content_type,
              content_transfer_encoding,
              content_disposition;
              
  std::vector<mimestructt> sub;
  
  mimestructt();

  void mimeparse(rfcmessaget &rfcm);
 };
 
#endif


syntax highlighted by Code2HTML, v. 0.9.1