summaryrefslogtreecommitdiffstats
path: root/libmail/headers.H
diff options
context:
space:
mode:
Diffstat (limited to 'libmail/headers.H')
-rw-r--r--libmail/headers.H219
1 files changed, 0 insertions, 219 deletions
diff --git a/libmail/headers.H b/libmail/headers.H
deleted file mode 100644
index 7a0a9e1..0000000
--- a/libmail/headers.H
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
-** Copyright 2004, Double Precision Inc.
-**
-** See COPYING for distribution information.
-*/
-#ifndef libmail_header_H
-#define libmail_header_H
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Helper classes for parsing headers.
-
-#include <list>
-#include <string>
-#include <vector>
-#include "structure.H"
-#include "rfcaddr.H"
-#include "namespace.H"
-
-LIBMAIL_START
-
-class emailAddress;
-
-//
-// Superclass of all headers
-//
-
-class Header {
-
-protected:
- std::string wrap(std::string) const;
-
- class listitem;
-public:
- class plain;
- class encoded;
- class addresslist;
- class mime;
- class list;
-
- std::string name; // Header name, without the colon
-
- Header(std::string nameArg) : name(nameArg) {}
- virtual ~Header();
-
- Header(const Header &); // UNDEFINED
- Header &operator=(const Header &); // UNDEFINED
-
- virtual std::string toString() const=0; // Convert to string format.
- virtual Header *clone() const=0; // Clone myself
-};
-
-//
-// An unstructured header, 7-bit only.
-//
-
-class Header::plain : public Header {
-
- std::string text;
-public:
- plain(std::string name, std::string textArg)
- : Header(name), text(textArg) {}
- ~plain();
-
- std::string toString() const;
- mail::Header *clone() const;
-};
-
-//
-// An unstructured header, MIME-encoded.
-//
-
-class Header::encoded : public Header::plain {
-
- static std::string encode(std::string, std::string, std::string);
-public:
- encoded(std::string name,
- std::string text, std::string charset,
- std::string lang="");
- ~encoded();
-};
-
-//
-// A header containing a list of addresses.
-//
-
-class Header::addresslist : public Header {
-
-public:
- std::vector<mail::emailAddress> addresses;
-
- addresslist(std::string name);
- addresslist(std::string name,
- const std::vector<mail::emailAddress> &addressesArg);
- ~addresslist();
-
-#if 0
- addresslist &operator()(std::string name, std::string addr)
- {
- mail::emailAddress addr;
-
- addr.setDisplayName(name);
- addr.setDisplayAddr(addr);
-
- addresses.push_back(addr);
- return *this;
- }
-#endif
-
- addresslist &operator()(const mail::emailAddress &a)
- {
- addresses.push_back(a);
- return *this;
- }
-
- std::string toString() const;
- mail::Header *clone() const;
-};
-
-//
-// A MIME header, such as Content-Type: or Content-Description:
-//
-
-class Header::mime : public Header {
-
-public:
- std::string value;
- mimestruct::parameterList parameters;
-
- typedef mimestruct::parameterList::iterator parameter_iterator;
- typedef mimestruct::parameterList::const_iterator const_parameter_iterator;
-
- mime(std::string name);
- mime(std::string name, std::string value);
-
- static mime fromString(std::string);
-private:
- static void cb_type(const char *, void *);
- static void cb_param(const char *, const char *, void *);
-public:
-
- ~mime();
- std::string toString() const;
-
- mime &operator()(std::string name,
- std::string value)
- {
- parameters.set_simple(name, value);
- return *this;
- }
-
- mime &operator()(std::string name,
- std::string value,
- std::string charset,
- std::string language="")
- {
- parameters.set(name, value, charset, language);
- return *this;
- }
-
- parameter_iterator begin() { return parameters.begin(); }
- parameter_iterator end() { return parameters.end(); }
-
- const_parameter_iterator begin() const
- {
- return parameters.begin();
- }
-
- const_parameter_iterator end() const
- {
- return parameters.end();
- }
- mail::Header *clone() const;
-};
-
-//
-// Helper class for a list of headers. Header::listitem wraps around a
-// Header superclass, and pretends to be one.
-//
-
-class Header::listitem {
-
- Header *h;
-public:
- listitem(const listitem &);
- listitem(const Header &);
- ~listitem();
- listitem &operator=(const Header &);
-
- listitem &operator=(const listitem &);
- operator Header &() { return *h; }
- operator const Header &() const { return *h; }
-};
-
-//
-// A list of headers is just a subclass of a list<Header::listitem> which
-// defines a convenient string operator that returns the string representation
-// of this list of headers
-//
-
-class Header::list : public std::list<Header::listitem> {
-
-public:
- list();
- ~list();
-
- operator std::string() const;
-
- Header::list &operator<<(const Header &h)
- {
- push_back(h);
- return *this;
- }
-};
-
-
-LIBMAIL_END
-
-#endif