/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM calIAttendee.idl
 */

#ifndef __gen_calIAttendee_h__
#define __gen_calIAttendee_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class calIIcalProperty; /* forward declaration */

class nsISimpleEnumerator; /* forward declaration */


/* starting interface:    calIAttendee */
#define CALIATTENDEE_IID_STR "5d1f2c7c-29bb-4090-94c2-cabe278fe567"

#define CALIATTENDEE_IID \
  {0x5d1f2c7c, 0x29bb, 0x4090, \
    { 0x94, 0xc2, 0xca, 0xbe, 0x27, 0x8f, 0xe5, 0x67 }}

class NS_NO_VTABLE calIAttendee : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(CALIATTENDEE_IID)

  /* readonly attribute boolean isMutable; */
  NS_IMETHOD GetIsMutable(PRBool *aIsMutable) = 0;

  /* void makeImmutable (); */
  NS_IMETHOD MakeImmutable(void) = 0;

  /* calIAttendee clone (); */
  NS_IMETHOD Clone(calIAttendee **_retval) = 0;

  /* attribute AUTF8String id; */
  NS_IMETHOD GetId(nsACString & aId) = 0;
  NS_IMETHOD SetId(const nsACString & aId) = 0;

  /* attribute AUTF8String commonName; */
  NS_IMETHOD GetCommonName(nsACString & aCommonName) = 0;
  NS_IMETHOD SetCommonName(const nsACString & aCommonName) = 0;

  /* attribute boolean rsvp; */
  NS_IMETHOD GetRsvp(PRBool *aRsvp) = 0;
  NS_IMETHOD SetRsvp(PRBool aRsvp) = 0;

  /** 
   * If true, indicates that this is not a standard attendee, but rather this
   * icalProperty corresponds to the organizer of the event (rfc2445 Sec 4.8.4.3)
   */
  /* attribute boolean isOrganizer; */
  NS_IMETHOD GetIsOrganizer(PRBool *aIsOrganizer) = 0;
  NS_IMETHOD SetIsOrganizer(PRBool aIsOrganizer) = 0;

  /**
   * CHAIR
   * REQ-PARTICIPANT
   * OPT-PARTICIPANT
   * NON-PARTICIPANT
   */
  /* attribute AUTF8String role; */
  NS_IMETHOD GetRole(nsACString & aRole) = 0;
  NS_IMETHOD SetRole(const nsACString & aRole) = 0;

  /**
   * NEEDS-ACTION
   * ACCEPTED
   * DECLINED
   * TENTATIVE
   * DELEGATED
   * COMPLETED
   * IN-PROCESS
   */
  /* attribute AUTF8String participationStatus; */
  NS_IMETHOD GetParticipationStatus(nsACString & aParticipationStatus) = 0;
  NS_IMETHOD SetParticipationStatus(const nsACString & aParticipationStatus) = 0;

  /**
   * INDIVIDUAL
   * GROUP
   * RESOURCE
   * ROOM
   * UNKNOWN
   */
  /* attribute AUTF8String userType; */
  NS_IMETHOD GetUserType(nsACString & aUserType) = 0;
  NS_IMETHOD SetUserType(const nsACString & aUserType) = 0;

  /* readonly attribute nsISimpleEnumerator propertyEnumerator; */
  NS_IMETHOD GetPropertyEnumerator(nsISimpleEnumerator * *aPropertyEnumerator) = 0;

  /* AUTF8String getProperty (in AString name); */
  NS_IMETHOD GetProperty(const nsAString & name, nsACString & _retval) = 0;

  /* void setProperty (in AString name, in AUTF8String value); */
  NS_IMETHOD SetProperty(const nsAString & name, const nsACString & value) = 0;

  /* void deleteProperty (in AString name); */
  NS_IMETHOD DeleteProperty(const nsAString & name) = 0;

  /* attribute calIIcalProperty icalProperty; */
  NS_IMETHOD GetIcalProperty(calIIcalProperty * *aIcalProperty) = 0;
  NS_IMETHOD SetIcalProperty(calIIcalProperty * aIcalProperty) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_CALIATTENDEE \
  NS_IMETHOD GetIsMutable(PRBool *aIsMutable); \
  NS_IMETHOD MakeImmutable(void); \
  NS_IMETHOD Clone(calIAttendee **_retval); \
  NS_IMETHOD GetId(nsACString & aId); \
  NS_IMETHOD SetId(const nsACString & aId); \
  NS_IMETHOD GetCommonName(nsACString & aCommonName); \
  NS_IMETHOD SetCommonName(const nsACString & aCommonName); \
  NS_IMETHOD GetRsvp(PRBool *aRsvp); \
  NS_IMETHOD SetRsvp(PRBool aRsvp); \
  NS_IMETHOD GetIsOrganizer(PRBool *aIsOrganizer); \
  NS_IMETHOD SetIsOrganizer(PRBool aIsOrganizer); \
  NS_IMETHOD GetRole(nsACString & aRole); \
  NS_IMETHOD SetRole(const nsACString & aRole); \
  NS_IMETHOD GetParticipationStatus(nsACString & aParticipationStatus); \
  NS_IMETHOD SetParticipationStatus(const nsACString & aParticipationStatus); \
  NS_IMETHOD GetUserType(nsACString & aUserType); \
  NS_IMETHOD SetUserType(const nsACString & aUserType); \
  NS_IMETHOD GetPropertyEnumerator(nsISimpleEnumerator * *aPropertyEnumerator); \
  NS_IMETHOD GetProperty(const nsAString & name, nsACString & _retval); \
  NS_IMETHOD SetProperty(const nsAString & name, const nsACString & value); \
  NS_IMETHOD DeleteProperty(const nsAString & name); \
  NS_IMETHOD GetIcalProperty(calIIcalProperty * *aIcalProperty); \
  NS_IMETHOD SetIcalProperty(calIIcalProperty * aIcalProperty); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_CALIATTENDEE(_to) \
  NS_IMETHOD GetIsMutable(PRBool *aIsMutable) { return _to GetIsMutable(aIsMutable); } \
  NS_IMETHOD MakeImmutable(void) { return _to MakeImmutable(); } \
  NS_IMETHOD Clone(calIAttendee **_retval) { return _to Clone(_retval); } \
  NS_IMETHOD GetId(nsACString & aId) { return _to GetId(aId); } \
  NS_IMETHOD SetId(const nsACString & aId) { return _to SetId(aId); } \
  NS_IMETHOD GetCommonName(nsACString & aCommonName) { return _to GetCommonName(aCommonName); } \
  NS_IMETHOD SetCommonName(const nsACString & aCommonName) { return _to SetCommonName(aCommonName); } \
  NS_IMETHOD GetRsvp(PRBool *aRsvp) { return _to GetRsvp(aRsvp); } \
  NS_IMETHOD SetRsvp(PRBool aRsvp) { return _to SetRsvp(aRsvp); } \
  NS_IMETHOD GetIsOrganizer(PRBool *aIsOrganizer) { return _to GetIsOrganizer(aIsOrganizer); } \
  NS_IMETHOD SetIsOrganizer(PRBool aIsOrganizer) { return _to SetIsOrganizer(aIsOrganizer); } \
  NS_IMETHOD GetRole(nsACString & aRole) { return _to GetRole(aRole); } \
  NS_IMETHOD SetRole(const nsACString & aRole) { return _to SetRole(aRole); } \
  NS_IMETHOD GetParticipationStatus(nsACString & aParticipationStatus) { return _to GetParticipationStatus(aParticipationStatus); } \
  NS_IMETHOD SetParticipationStatus(const nsACString & aParticipationStatus) { return _to SetParticipationStatus(aParticipationStatus); } \
  NS_IMETHOD GetUserType(nsACString & aUserType) { return _to GetUserType(aUserType); } \
  NS_IMETHOD SetUserType(const nsACString & aUserType) { return _to SetUserType(aUserType); } \
  NS_IMETHOD GetPropertyEnumerator(nsISimpleEnumerator * *aPropertyEnumerator) { return _to GetPropertyEnumerator(aPropertyEnumerator); } \
  NS_IMETHOD GetProperty(const nsAString & name, nsACString & _retval) { return _to GetProperty(name, _retval); } \
  NS_IMETHOD SetProperty(const nsAString & name, const nsACString & value) { return _to SetProperty(name, value); } \
  NS_IMETHOD DeleteProperty(const nsAString & name) { return _to DeleteProperty(name); } \
  NS_IMETHOD GetIcalProperty(calIIcalProperty * *aIcalProperty) { return _to GetIcalProperty(aIcalProperty); } \
  NS_IMETHOD SetIcalProperty(calIIcalProperty * aIcalProperty) { return _to SetIcalProperty(aIcalProperty); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_CALIATTENDEE(_to) \
  NS_IMETHOD GetIsMutable(PRBool *aIsMutable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsMutable(aIsMutable); } \
  NS_IMETHOD MakeImmutable(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->MakeImmutable(); } \
  NS_IMETHOD Clone(calIAttendee **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->Clone(_retval); } \
  NS_IMETHOD GetId(nsACString & aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(aId); } \
  NS_IMETHOD SetId(const nsACString & aId) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetId(aId); } \
  NS_IMETHOD GetCommonName(nsACString & aCommonName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCommonName(aCommonName); } \
  NS_IMETHOD SetCommonName(const nsACString & aCommonName) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCommonName(aCommonName); } \
  NS_IMETHOD GetRsvp(PRBool *aRsvp) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRsvp(aRsvp); } \
  NS_IMETHOD SetRsvp(PRBool aRsvp) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRsvp(aRsvp); } \
  NS_IMETHOD GetIsOrganizer(PRBool *aIsOrganizer) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsOrganizer(aIsOrganizer); } \
  NS_IMETHOD SetIsOrganizer(PRBool aIsOrganizer) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsOrganizer(aIsOrganizer); } \
  NS_IMETHOD GetRole(nsACString & aRole) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRole(aRole); } \
  NS_IMETHOD SetRole(const nsACString & aRole) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetRole(aRole); } \
  NS_IMETHOD GetParticipationStatus(nsACString & aParticipationStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParticipationStatus(aParticipationStatus); } \
  NS_IMETHOD SetParticipationStatus(const nsACString & aParticipationStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetParticipationStatus(aParticipationStatus); } \
  NS_IMETHOD GetUserType(nsACString & aUserType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserType(aUserType); } \
  NS_IMETHOD SetUserType(const nsACString & aUserType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUserType(aUserType); } \
  NS_IMETHOD GetPropertyEnumerator(nsISimpleEnumerator * *aPropertyEnumerator) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPropertyEnumerator(aPropertyEnumerator); } \
  NS_IMETHOD GetProperty(const nsAString & name, nsACString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProperty(name, _retval); } \
  NS_IMETHOD SetProperty(const nsAString & name, const nsACString & value) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetProperty(name, value); } \
  NS_IMETHOD DeleteProperty(const nsAString & name) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteProperty(name); } \
  NS_IMETHOD GetIcalProperty(calIIcalProperty * *aIcalProperty) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIcalProperty(aIcalProperty); } \
  NS_IMETHOD SetIcalProperty(calIIcalProperty * aIcalProperty) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIcalProperty(aIcalProperty); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public calIAttendee
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_CALIATTENDEE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, calIAttendee)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* readonly attribute boolean isMutable; */
NS_IMETHODIMP _MYCLASS_::GetIsMutable(PRBool *aIsMutable)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void makeImmutable (); */
NS_IMETHODIMP _MYCLASS_::MakeImmutable()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* calIAttendee clone (); */
NS_IMETHODIMP _MYCLASS_::Clone(calIAttendee **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String id; */
NS_IMETHODIMP _MYCLASS_::GetId(nsACString & aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetId(const nsACString & aId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String commonName; */
NS_IMETHODIMP _MYCLASS_::GetCommonName(nsACString & aCommonName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetCommonName(const nsACString & aCommonName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean rsvp; */
NS_IMETHODIMP _MYCLASS_::GetRsvp(PRBool *aRsvp)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetRsvp(PRBool aRsvp)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean isOrganizer; */
NS_IMETHODIMP _MYCLASS_::GetIsOrganizer(PRBool *aIsOrganizer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIsOrganizer(PRBool aIsOrganizer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String role; */
NS_IMETHODIMP _MYCLASS_::GetRole(nsACString & aRole)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetRole(const nsACString & aRole)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String participationStatus; */
NS_IMETHODIMP _MYCLASS_::GetParticipationStatus(nsACString & aParticipationStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetParticipationStatus(const nsACString & aParticipationStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String userType; */
NS_IMETHODIMP _MYCLASS_::GetUserType(nsACString & aUserType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetUserType(const nsACString & aUserType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsISimpleEnumerator propertyEnumerator; */
NS_IMETHODIMP _MYCLASS_::GetPropertyEnumerator(nsISimpleEnumerator * *aPropertyEnumerator)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AUTF8String getProperty (in AString name); */
NS_IMETHODIMP _MYCLASS_::GetProperty(const nsAString & name, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setProperty (in AString name, in AUTF8String value); */
NS_IMETHODIMP _MYCLASS_::SetProperty(const nsAString & name, const nsACString & value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteProperty (in AString name); */
NS_IMETHODIMP _MYCLASS_::DeleteProperty(const nsAString & name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute calIIcalProperty icalProperty; */
NS_IMETHODIMP _MYCLASS_::GetIcalProperty(calIIcalProperty * *aIcalProperty)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP _MYCLASS_::SetIcalProperty(calIIcalProperty * aIcalProperty)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_calIAttendee_h__ */
