NAME

DwAddress -- Abstract class representing an RFC-822 address

SYNOPSIS

class DW_EXPORT DwAddress : public DwFieldBody {

    friend class DwAddressList;

public:

    virtual ~DwAddress();
    DwBool IsMailbox() const;
    DwBool IsGroup() const;
    inline DwBool IsValid() const;
    DwAddress* Next() const;
    void SetNext(DwAddress* aAddress);

protected:

    DwAddress();
    DwAddress(const DwAddress& aAddr);
    DwAddress(const DwString& aStr, DwMessageComponent* aParent=0);
    const DwAddress& operator = (const DwAddress& aAddr);
    int mIsValid;

public:

    virtual void PrintDebugInfo(ostream& aStrm, int aDepth=0) const;
    virtual void CheckInvariants() const;

protected:

    void _PrintDebugInfo(ostream& aStrm) const;
};

DESCRIPTION

DwAddress represents an address as described in RFC-822. You may not instantiate objects of type DwAddress, since DwAddress is an abstract base class. Instead, you must instantiate objects of type DwMailbox or DwGroup, which are subclasses of DwAddress.

To determine the actual type of a DwAddress object, you can use the member functions IsMailbox() and IsGroup().

If the string representation assigned to a DwAddress is improperly formed, the parse method will fail. To determine if the parse method failed, call the member function IsValid().

A DwAddress object can be contained in list. To get the next DwAddress object in the list, call the member function Next()

Public Member Functions

DwBool IsMailbox() const

Returns true value if this object is a DwMailbox.

DwBool IsGroup() const

Returns true value if this object is a DwGroup.

inline DwBool IsValid() const

Returns true value if the last parse was successful. Returns false if the last parse failed (bad address) or the Parse() member function was never called.

DwAddress* Next() const

Returns the next DwAddress object in the list when the object is included in a list of addresses. The function is used when iterating a list.

void SetNext(DwAddress* aAddress)

Sets the next DwAddress object in the list. This member function generally should not be used, since DwAddressList has member functions to manage its list of DwAddress objects.

virtual void PrintDebugInfo(ostream& aStrm, int aDepth=0) const

This virtual function, inherited from DwMessageComponent, prints debugging information about this object to aStrm. It will also call PrintDebugInfo() for any of its child components down to a level of aDepth.

This member function is available only in the debug version of the library.

virtual void CheckInvariants() const

Aborts if one of the invariants of the object fails. Use this member function to track down bugs.

This member function is available only in the debug version of the library.

Protected Member Functions

DwAddress()
DwAddress(const DwAddress& aAddr)
DwAddress(const DwString& aStr, DwMessageComponent* aParent=0)

The first constructor is the default constructor, which sets the DwAddress object's string representation to the empty string and sets its parent to NULL.

The second constructor is the copy constructor, which copies the string representation and all attributes from aAddress. The parent of the new DwAddress object is set to NULL.

The third constructor copies aStr to the DwAddress object's string representation and sets aParent as its parent. The virtual member function Parse() should be called immediately after this constructor in order to parse the string representation. Unless it is NULL, aParent should point to an object of a class derived from DwField.

const DwAddress& operator = (const DwAddress& aAddr)

This is the assignment operator, which performs a deep copy of aAddr. The parent node of the DwAddress object is not changed.