diff options
Diffstat (limited to 'mimelib/message.cpp')
-rw-r--r-- | mimelib/message.cpp | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/mimelib/message.cpp b/mimelib/message.cpp new file mode 100644 index 000000000..608e4fa5a --- /dev/null +++ b/mimelib/message.cpp @@ -0,0 +1,119 @@ +//============================================================================= +// File: message.cpp +// Contents: Definitions for DwMessage +// Maintainer: Doug Sauder <dwsauder@fwb.gulf.net> +// WWW: http://www.fwb.gulf.net/~dwsauder/mimepp.html +// +// Copyright (c) 1996, 1997 Douglas W. Sauder +// All rights reserved. +// +// IN NO EVENT SHALL DOUGLAS W. SAUDER BE LIABLE TO ANY PARTY FOR DIRECT, +// INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF +// THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF DOUGLAS W. SAUDER +// HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// DOUGLAS W. SAUDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT +// NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +// PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" +// BASIS, AND DOUGLAS W. SAUDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, +// SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +// +//============================================================================= + +#define DW_IMPLEMENTATION + +#include <mimelib/config.h> +#include <mimelib/debug.h> +#include <mimelib/string.h> +#include <mimelib/message.h> +#include <mimelib/headers.h> +#include <mimelib/body.h> + + +const char* const DwMessage::sClassName = "DwMessage"; + + +DwMessage* (*DwMessage::sNewMessage)(const DwString&, + DwMessageComponent*) = 0; + + +DwMessage* DwMessage::NewMessage(const DwString& aStr, + DwMessageComponent* aParent) +{ + if (sNewMessage) { + return sNewMessage(aStr, aParent); + } + else { + return new DwMessage(aStr, aParent); + } +} + + +DwMessage::DwMessage() +{ + mClassId = kCidMessage; + mClassName = sClassName; +} + + +DwMessage::DwMessage(const DwMessage& aMessage) + : DwEntity(aMessage) +{ + mClassId = kCidMessage; + mClassName = sClassName; +} + + +DwMessage::DwMessage(const DwString& aStr, DwMessageComponent* aParent) + : DwEntity(aStr, aParent) +{ + mClassId = kCidMessage; + mClassName = sClassName; +} + + +DwMessage::~DwMessage() +{ +} + + +DwMessageComponent* DwMessage::Clone() const +{ + return new DwMessage(*this); +} + + +const DwMessage& DwMessage::operator = (const DwMessage& aMessage) +{ + if (this == &aMessage) return *this; + DwEntity::operator = (aMessage); + return *this; +} + + +#if defined(DW_DEBUG_VERSION) +void DwMessage::PrintDebugInfo(std::ostream& aStrm, int aDepth) const +{ + aStrm << "------------ Debug info for DwMessage class ------------\n"; + _PrintDebugInfo(aStrm); + int depth = aDepth - 1; + depth = (depth >= 0) ? depth : 0; + if (aDepth == 0 || depth > 0) { + mHeaders->PrintDebugInfo(aStrm, depth); + mBody->PrintDebugInfo(aStrm, depth); + } +} +#else +void DwMessage::PrintDebugInfo(std::ostream& , int ) const {} +#endif // defined(DW_DEBUG_VERSION) + + +#if defined(DW_DEBUG_VERSION) +void DwMessage::_PrintDebugInfo(std::ostream& aStrm) const +{ + DwEntity::_PrintDebugInfo(aStrm); +} +#else +void DwMessage::_PrintDebugInfo(std::ostream& ) const {} +#endif // defined(DW_DEBUG_VERSION) + |