/** * @file mime.cc * @brief Implementation of main mime parser components * @author Andreas Aardal Hanssen * @date 2002-2005 */ #include "mime.h" #include "convert.h" #include #include #include #include #include #include #include #include #include using std::string; Binc::MimeDocument::MimeDocument() : MimePart() { allIsParsed = false; headerIsParsed = false; } Binc::MimeDocument::~MimeDocument() {} void Binc::MimeDocument::clear() const { members.clear(); h.clear(); headerIsParsed = false; allIsParsed = false; } void Binc::MimePart::clear() const { members.clear(); h.clear(); } Binc::MimePart::MimePart() { size = 0; messagerfc822 = false; multipart = false; nlines = 0; nbodylines = 0; } Binc::MimePart::~MimePart() {} Binc::HeaderItem::HeaderItem() {} Binc::HeaderItem::HeaderItem(const string &key, const string &value) { this->key = key; this->value = value; } Binc::Header::Header() {} Binc::Header::~Header() {} bool Binc::Header::getFirstHeader(const string &key, HeaderItem &dest) const { string k = key; lowercase(k); for (const auto &i : content) { string tmp = i.getKey(); lowercase(tmp); if (tmp == k) { dest = i; return true; } } return false; } bool Binc::Header::getAllHeaders(const string &key, std::vector &dest) const { string k = key; lowercase(k); for (std::vector::const_iterator i = content.begin(); i != content.end(); ++i) { string tmp = (*i).getKey(); lowercase(tmp); if (tmp == k) dest.push_back(*i); } return (dest.size() != 0); } void Binc::Header::clear() const { content.clear(); } void Binc::Header::add(const string &key, const string &value) { content.push_back(HeaderItem(key, value)); }