// Note: Instrumentation statements are highlighted in green

#ifndef __EMAILADDRESSES_HPP
#define __EMAILADDRESSES_HPP

#include <iostream>
#include <vobject.hpp>
#include "emailaddressinfo.hpp"
#include "stl/vlist"

using namespace visibility;

typedef vlist<EmailAddressInfo> EmailAddressList; // Use vlist in place of stl::list


///////////////////////////////////////////////////////////////////////////////
// EmailAddresses class
///////////////////////////////////////////////////////////////////////////////


class EmailAddresses : public VObject   // Add VObject to the inheritance chain
{
  DECLARE_VISIBILITY(EmailAddresses)      // Instrumentation statement

public: // data
  EmailAddressInfo newAddress;
  EmailAddressList emailAddressList;
  EmailAddressList::iterator emailAddressIter;

public: // functions
  EmailAddresses(void);
  EmailAddresses(const EmailAddresses & that);
  virtual ~EmailAddresses(void);
  EmailAddresses & operator =(const EmailAddresses & that);
  void add(void);
  void remove(void);
  void clear(void);
  void setDefault(void);
  char * getDefaultEmailAddress(void);
  virtual void populateEditView(void);  
  friend std::ostream & operator<< (std::ostream & os, EmailAddresses & obj);
  friend std::istream & operator>> (std::istream & is, EmailAddresses & obj);
};
DECLARE_VISIBILITY_CREATOR(EmailAddresses)      // Instrumentation statement

#endif // __EMAILADDRESSES_HPP
Copyright 2002-2007 Outerface Technologies, Inc.