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

#ifndef __gen_flockIAOLMailAPI_h__
#define __gen_flockIAOLMailAPI_h__


#ifndef __gen_flockIListener_h__
#include "flockIListener.h"
#endif

#ifndef __gen_flockIWebServiceAPI_h__
#include "flockIWebServiceAPI.h"
#endif

#ifndef __gen_flockIMailWebService_h__
#include "flockIMailWebService.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif

/* starting interface:    flockIAOLMailAPI */
#define FLOCKIAOLMAILAPI_IID_STR "19c925d6-51d7-4422-9498-012650e86c19"

#define FLOCKIAOLMAILAPI_IID \
  {0x19c925d6, 0x51d7, 0x4422, \
    { 0x94, 0x98, 0x01, 0x26, 0x50, 0xe8, 0x6c, 0x19 }}

class NS_NO_VTABLE NS_SCRIPTABLE flockIAOLMailAPI : public flockITokenAPI {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(FLOCKIAOLMAILAPI_IID)

  /**
   * Request the number of new mail messages.
   * @param aUid (in) UserID of the user.
   * @param aAccount (in) An associated AOLMailAccount (may be null).
   * @param aFlockListener (in) a flockIListener to use to return the
   *        mailFolderCount element via #onSuccess, or any errors via #onError.
   */
  /* void getNewMailCount (in AString aUid, in flockIWebmailAccount aAccount, in flockIListener aFlockListener); */
  NS_SCRIPTABLE NS_IMETHOD GetNewMailCount(const nsAString & aUid, flockIWebmailAccount *aAccount, flockIListener *aFlockListener) = 0;

  /**
   * Request a list of new mail.
   * @param aUid (in) UserID of the user.
   * @param aFolder (in) Folder name, either Inbox or Voicemail. If null, then
   *        defaults to Inbox and Voicemail.
   * @param aNumItems (in) The number of items to retrieve. If null, 10 items
   *        will be retrieved. This value cannot be greater than 75.
   * @param aGetNewMailCount (in) If true, then the number of new mail messages
   *        will be included in the "totalCount" element of the response.
   * @param aLang (in) Language value. Default is "en".
   * @param aLocale (in) Locale value. Default is "us".
   * @param aAccount (in) An associated AOLMailAccount (may be null).
   * @param aFlockListener (in) a flockIListener to use to return the mailList
   *        element via #onSuccess, or any errors via #onError.
   */
  /* void getNewMailList (in AString aUid, in AString aFolder, in AString aNumItems, in boolean aGetNewMailCount, in AString aLang, in AString aLocale, in flockIWebmailAccount aAccount, in flockIListener aFlockListener); */
  NS_SCRIPTABLE NS_IMETHOD GetNewMailList(const nsAString & aUid, const nsAString & aFolder, const nsAString & aNumItems, PRBool aGetNewMailCount, const nsAString & aLang, const nsAString & aLocale, flockIWebmailAccount *aAccount, flockIListener *aFlockListener) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(flockIAOLMailAPI, FLOCKIAOLMAILAPI_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIAOLMAILAPI \
  NS_SCRIPTABLE NS_IMETHOD GetNewMailCount(const nsAString & aUid, flockIWebmailAccount *aAccount, flockIListener *aFlockListener); \
  NS_SCRIPTABLE NS_IMETHOD GetNewMailList(const nsAString & aUid, const nsAString & aFolder, const nsAString & aNumItems, PRBool aGetNewMailCount, const nsAString & aLang, const nsAString & aLocale, flockIWebmailAccount *aAccount, flockIListener *aFlockListener); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIAOLMAILAPI(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetNewMailCount(const nsAString & aUid, flockIWebmailAccount *aAccount, flockIListener *aFlockListener) { return _to GetNewMailCount(aUid, aAccount, aFlockListener); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewMailList(const nsAString & aUid, const nsAString & aFolder, const nsAString & aNumItems, PRBool aGetNewMailCount, const nsAString & aLang, const nsAString & aLocale, flockIWebmailAccount *aAccount, flockIListener *aFlockListener) { return _to GetNewMailList(aUid, aFolder, aNumItems, aGetNewMailCount, aLang, aLocale, aAccount, aFlockListener); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIAOLMAILAPI(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetNewMailCount(const nsAString & aUid, flockIWebmailAccount *aAccount, flockIListener *aFlockListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewMailCount(aUid, aAccount, aFlockListener); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewMailList(const nsAString & aUid, const nsAString & aFolder, const nsAString & aNumItems, PRBool aGetNewMailCount, const nsAString & aLang, const nsAString & aLocale, flockIWebmailAccount *aAccount, flockIListener *aFlockListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewMailList(aUid, aFolder, aNumItems, aGetNewMailCount, aLang, aLocale, aAccount, aFlockListener); } 

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

/* Header file */
class _MYCLASS_ : public flockIAOLMailAPI
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIAOLMAILAPI

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

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

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

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

/* void getNewMailCount (in AString aUid, in flockIWebmailAccount aAccount, in flockIListener aFlockListener); */
NS_IMETHODIMP _MYCLASS_::GetNewMailCount(const nsAString & aUid, flockIWebmailAccount *aAccount, flockIListener *aFlockListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getNewMailList (in AString aUid, in AString aFolder, in AString aNumItems, in boolean aGetNewMailCount, in AString aLang, in AString aLocale, in flockIWebmailAccount aAccount, in flockIListener aFlockListener); */
NS_IMETHODIMP _MYCLASS_::GetNewMailList(const nsAString & aUid, const nsAString & aFolder, const nsAString & aNumItems, PRBool aGetNewMailCount, const nsAString & aLang, const nsAString & aLocale, flockIWebmailAccount *aAccount, flockIListener *aFlockListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_flockIAOLMailAPI_h__ */
