diff options
| author | Vincent Richard <[email protected]> | 2004-12-26 20:23:29 +0000 |
|---|---|---|
| committer | Vincent Richard <[email protected]> | 2004-12-26 20:23:29 +0000 |
| commit | 4ce991d3b1bd97fbb896d17fb8f36f6650429a22 (patch) | |
| tree | 2db6e072b862dd809d4acd8c571a1b859fdcb484 /src/typeAdapter.hpp | |
| parent | Allow creating a service from an URL. (diff) | |
| download | vmime-4ce991d3b1bd97fbb896d17fb8f36f6650429a22.tar.gz vmime-4ce991d3b1bd97fbb896d17fb8f36f6650429a22.zip | |
Moved all header files to 'vmime/' directory.
Diffstat (limited to 'src/typeAdapter.hpp')
| -rw-r--r-- | src/typeAdapter.hpp | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/src/typeAdapter.hpp b/src/typeAdapter.hpp deleted file mode 100644 index cd82816c..00000000 --- a/src/typeAdapter.hpp +++ /dev/null @@ -1,132 +0,0 @@ -// -// VMime library (http://vmime.sourceforge.net) -// Copyright (C) 2002-2004 Vincent Richard <[email protected]> -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License as -// published by the Free Software Foundation; either version 2 of -// the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -// - -#ifndef VMIME_TYPEADAPTER_HPP_INCLUDED -#define VMIME_TYPEADAPTER_HPP_INCLUDED - - -#include <sstream> - -#include "component.hpp" - - -namespace vmime -{ - - -/** An adapter to allow any type being treated as a 'component'. - */ - -template <class TYPE> -class typeAdapter : public component -{ -public: - - typeAdapter() - { - } - - typeAdapter(typeAdapter& a) - : m_value(a.m_value) - { - } - - typeAdapter(const TYPE& v) - : m_value(v) - { - } - - - typeAdapter* clone() const - { - return new typeAdapter(*this); - } - - - void copyFrom(const component& other) - { - m_value = dynamic_cast <const typeAdapter <TYPE>&>(other).m_value; - } - - - typeAdapter& operator=(const TYPE& v) - { - m_value = v; - return (*this); - } - - - typeAdapter& operator=(const component& other) - { - copyFrom(other); - return (*this); - } - - - operator TYPE() const - { - return (m_value); - } - - - void parse(const string& buffer, const string::size_type position, - const string::size_type end, string::size_type* newPosition = NULL) - { - std::istringstream iss(string(buffer.begin() + position, buffer.begin() + end)); - iss >> m_value; - - if (newPosition) - *newPosition = end; - } - - - void generate(utility::outputStream& os, - const string::size_type /* maxLineLength */ = lineLengthLimits::infinite, - const string::size_type curLinePos = 0, - string::size_type* newLinePos = NULL) const - { - std::ostringstream oss; - oss << m_value; - - os << oss.str(); - - if (newLinePos) - *newLinePos = curLinePos + oss.str().length(); - } - - const std::vector <const component*> getChildComponents() const - { - return std::vector <const component*>(); - } - -private: - - TYPE m_value; -}; - - -template <> -void typeAdapter <string>::parse(const string& buffer, const string::size_type position, - const string::size_type end, string::size_type* newPosition); - - -} // vmime - - -#endif // VMIME_TYPEADAPTE_HPP_INCLUDED |
