diff options
Diffstat (limited to 'examples/cxx/hybrid/custom/wildcard/body.hxx')
-rw-r--r-- | examples/cxx/hybrid/custom/wildcard/body.hxx | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/examples/cxx/hybrid/custom/wildcard/body.hxx b/examples/cxx/hybrid/custom/wildcard/body.hxx new file mode 100644 index 0000000..504e3ca --- /dev/null +++ b/examples/cxx/hybrid/custom/wildcard/body.hxx @@ -0,0 +1,76 @@ +// file : examples/cxx/hybrid/custom/wildcard/body.hxx +// author : Boris Kolpackov <boris@codesynthesis.com> +// copyright : not copyrighted - public domain + +#ifndef BODY_HXX +#define BODY_HXX + +#include "email.hxx" + +namespace email +{ + // Custom email body type which can hold text or binary. + // + class body + { + public: + enum type + { + type_none, + type_text, + type_binary + }; + + body () + : body_type_ (type_none), binary_ (0) + { + } + + ~body () + { + body_type (type_none); + } + + type + body_type () const + { + return body_type_; + } + + const std::string& + text () const + { + return text_; + } + + void + text (const std::string& t) + { + body_type (type_text); + text_ = t; + } + + const email::binary& + binary () const + { + return *binary_; + } + + void + binary (email::binary* b) + { + body_type (type_binary); + binary_ = b; + } + + private: + void + body_type (type t); + + type body_type_; + std::string text_; + email::binary* binary_; + }; +} + +#endif // BODY_HXX |