You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
3.3 KiB
149 lines
3.3 KiB
15 years ago
|
//=============================================================================
|
||
|
// File: address.cpp
|
||
|
// Contents: Definitions for DwAddress
|
||
|
// 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 <ctype.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <string.h>
|
||
|
#include <mimelib/address.h>
|
||
|
#include <mimelib/token.h>
|
||
|
#include <mimelib/group.h>
|
||
|
#include <mimelib/mailbox.h>
|
||
|
|
||
|
const char* const DwAddress::sClassName = "DwAddress";
|
||
|
|
||
|
|
||
|
DwAddress::DwAddress()
|
||
|
{
|
||
|
mIsValid = 0;
|
||
|
mNext = 0;
|
||
|
mClassId = kCidAddress;
|
||
|
mClassName = sClassName;
|
||
|
}
|
||
|
|
||
|
|
||
|
DwAddress::DwAddress(const DwAddress& aAddr)
|
||
|
: DwFieldBody(aAddr)
|
||
|
{
|
||
|
mIsValid = aAddr.mIsValid;
|
||
|
mNext = 0;
|
||
|
mClassId = kCidAddress;
|
||
|
mClassName = sClassName;
|
||
|
}
|
||
|
|
||
|
|
||
|
DwAddress::DwAddress(const DwString& aStr, DwMessageComponent* aParent)
|
||
|
: DwFieldBody(aStr, aParent)
|
||
|
{
|
||
|
mIsValid = 0;
|
||
|
mNext = 0;
|
||
|
mClassId = kCidAddress;
|
||
|
mClassName = sClassName;
|
||
|
}
|
||
|
|
||
|
|
||
|
DwAddress::~DwAddress()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
|
||
|
const DwAddress& DwAddress::operator = (const DwAddress& aAddr)
|
||
|
{
|
||
|
if (this == &aAddr) return *this;
|
||
|
DwFieldBody::operator = (aAddr);
|
||
|
mIsValid = aAddr.mIsValid;
|
||
|
return *this;
|
||
|
}
|
||
|
|
||
|
|
||
|
DwBool DwAddress::IsMailbox() const
|
||
|
{
|
||
|
DwBool r = (mClassId == kCidMailbox) ? 1 : 0;
|
||
|
return r;
|
||
|
}
|
||
|
|
||
|
|
||
|
DwBool DwAddress::IsGroup() const
|
||
|
{
|
||
|
DwBool r = (mClassId == kCidGroup) ? 1 : 0;
|
||
|
return r;
|
||
|
}
|
||
|
|
||
|
|
||
|
DwAddress* DwAddress::Next() const
|
||
|
{
|
||
|
return mNext;
|
||
|
}
|
||
|
|
||
|
|
||
|
void DwAddress::SetNext(DwAddress* aAddress)
|
||
|
{
|
||
|
mNext = aAddress;
|
||
|
}
|
||
|
|
||
|
|
||
|
#if defined (DW_DEBUG_VERSION)
|
||
|
void DwAddress::PrintDebugInfo(std::ostream& aStrm, int /*aDepth*/) const
|
||
|
{
|
||
|
aStrm <<
|
||
|
"---------------- Debug info for DwAddress class ----------------\n";
|
||
|
_PrintDebugInfo(aStrm);
|
||
|
}
|
||
|
#else
|
||
|
void DwAddress::PrintDebugInfo(std::ostream&, int ) const {}
|
||
|
#endif // defined (DW_DEBUG_VERSION)
|
||
|
|
||
|
|
||
|
#if defined (DW_DEBUG_VERSION)
|
||
|
void DwAddress::_PrintDebugInfo(std::ostream& aStrm) const
|
||
|
{
|
||
|
DwFieldBody::_PrintDebugInfo(aStrm);
|
||
|
aStrm << "IsValid: ";
|
||
|
if (mIsValid) {
|
||
|
aStrm << "True\n";
|
||
|
}
|
||
|
else {
|
||
|
aStrm << "False\n";
|
||
|
}
|
||
|
aStrm << "Next address: ";
|
||
|
if (mNext) {
|
||
|
aStrm << mNext->ObjectId() << '\n';
|
||
|
}
|
||
|
else {
|
||
|
aStrm << "(none)\n";
|
||
|
}
|
||
|
}
|
||
|
#else
|
||
|
void DwAddress::_PrintDebugInfo(std::ostream& ) const {}
|
||
|
#endif // defined (DW_DEBUG_VERSION)
|
||
|
|
||
|
|
||
|
void DwAddress::CheckInvariants() const
|
||
|
{
|
||
|
#if defined (DW_DEBUG_VERSION)
|
||
|
DwFieldBody::CheckInvariants();
|
||
|
#endif // defined (DW_DEBUG_VERSION)
|
||
|
}
|