class DW_CORE_EXPORT DwAddressList : public DwFieldBody { public: DwAddressList(); DwAddressList(const DwAddressList& aList); DwAddressList(const DwString& aStr, DwMessageComponent* aParent=0); virtual ~DwAddressList(); const DwAddressList& operator = (const DwAddressList& aList); virtual void Parse(); virtual void Assemble(); virtual DwMessageComponent* Clone() const; int NumAddresses() const; void AddAddress(DwAddress* aAddress); void DeleteAllAddresses(); DwAddress& AddressAt(int aIndex) const; void InsertAddressAt(int aIndex, DwAddress* aAddress); DwAddress* RemoveAddressAt(int aIndex); static DwAddressList* NewAddressList(const DwString& aStr, DwMessageComponent* aParent); static DwAddressList* (*sNewAddressList)(const DwString&, DwMessageComponent*); protected: void _CopyAddresses(const DwAddressList& aList); void _AddAddress(DwAddress* aAddress); void _InsertAddressAt(int aIndex, DwAddress* aAddress); void _DeleteAllAddresses(); public: virtual void PrintDebugInfo(DW_STD ostream& aStrm, int aDepth=0) const; virtual void CheckInvariants() const; protected: void _PrintDebugInfo(DW_STD ostream& aStrm) const; };
The first constructor is the default constructor, which sets the DwAddressList 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 DwAddress objects from aList. The parent of the new DwAddressList object is set to NULL.
The third constructor copies aStr to the DwAddressList 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 DwAddressList& operator = (const DwAddressList& aList)
This is the assignment operator, which performs a deep copy of aList. The parent node of the DwAddressList object is not changed.
virtual void Parse()
This virtual function, inherited from DwMessageComponent, executes the parse method for DwAddressList objects. The parse method creates or updates the broken-down representation from the string representation. For DwAddressList objects, the parse method parses the string representation to create a list of DwAddress objects. This member function also calls the Parse() member function of each DwAddress object in its list.
You should call this member function after you set or modify the string representation, and before you access any of the contained DwAddress objects.
This function clears the is-modified flag.
virtual void Assemble()
This virtual function, inherited from DwMessageComponent, executes the assemble method for DwAddressList objects. The assemble method creates or updates the string representation from the broken-down representation. That is, the assemble method builds the string representation from its list of DwAddress objects. Before it builds the string representation for the DwAddressList object, this function first calls the Assemble() member function of each DwAddress object in its list.
You should call this member function after you set or modify any of the contained DwAddress objects, and before you retrieve the string representation.
This function clears the is-modified flag.
virtual DwMessageComponent* Clone() const
This virtual function, inherited from DwMessageComponent, creates a new DwAddressList on the free store that has the same value as this DwAddressList object. The basic idea is that of a virtual copy constructor.
int NumAddresses() const
Returns the number of DwAddress objects contained in this DwAddressList object.
void AddAddress(DwAddress* aAddress)
Appends a DwAddress object to the list managed by this DwAddressList object.
Any DwAddress objects contained in a DwAddressList object's list will be deleted by the DwAddressList object's destructor.
void DeleteAllAddresses()
Removes and deletes all DwAddress objects contained in this DwAddressList object.
DwAddress& AddressAt(int aIndex) const
Returns the DwAddress object at position aIndex in this DwAddressList object's list.
If the library is compiled to throw exceptions, the function will throw a DwBoundsException if aIndex is out of range. Otherwise, (if the library is compiled not to throw exceptions) the behavior is undefined if aIndex is out of range. Valid values for aIndex are 0 <= aIndex < NumAddresses().
void InsertAddressAt(int aIndex, DwAddress* aAddress)
Inserts aAddress into the list of DwAddress objects at the position given by aIndex. A value of zero for aIndex will insert aAddress as the first one in the list; a value of NumAddresses() will insert it as the last one in the list. If aIndex is less than NumAddresses(), the DwAddress objects at position aIndex or greater will be shifted down the list to make room to insert aAddress.
Any DwAddress objects contained in a DwAddressList object's list will be deleted by the DwAddressList object's destructor.
If the library is compiled to throw exceptions, the function will throw a DwBoundsException if aIndex is out of range. Otherwise, (if the library is compiled not to throw exceptions) the behavior is undefined if aIndex is out of range. Valid values for aIndex are 0 <= aIndex <= NumAddresses().
DwAddress* RemoveAddressAt(int aIndex)
Removes the DwAddress object at position aIndex from the list and returns it. If aIndex is less than NumAddresses()-1, then any DwAddress objects at a position greater than aIndex will be shifted up in the list after the requested DwAddress is removed.
If the library is compiled to throw exceptions, the function will throw a DwBoundsException if aIndex is out of range. Otherwise, (if the library is compiled not to throw exceptions) the behavior is undefined if aIndex is out of range. Valid values for aIndex are 0 <= aIndex < NumAddresses().
static DwAddressList* NewAddressList(const DwString& aStr, DwMessageComponent* aParent)
Creates a new DwAddressList object on the free store. If the static data member sNewAddressList is NULL, this member function will create a new DwAddressList and return it. Otherwise, NewAddressList() will call the user-supplied function pointed to by sNewAddressList, which is assumed to return an object from a class derived from DwAddressList, and return that object.
virtual void PrintDebugInfo(DW_STD 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.
If sNewAddressList is not NULL, it is assumed to point to a user-supplied function that returns a pointer to an object from a class derived from DwAddressList.
Copies the list of DwAddress objects from aList.
void _AddAddress(DwAddress* aAddress)
Same as AddAddress(), but does not set is-modified flag.
void _InsertAddressAt(int aIndex, DwAddress* aAddress)
Performs all the work of adding DwAddress objects to the list. This function does not set the is-modified flag.
void _DeleteAllAddresses()
Deletes all addresses. Differs from DeleteAllAddresses() in that it does not set the is-modified flag.