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

#ifndef __gen_nsIAbManager_h__
#define __gen_nsIAbManager_h__


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

#ifndef __gen_nsIAbListener_h__
#include "nsIAbListener.h"
#endif

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

class nsIAbDirectory; /* forward declaration */

class nsIAbCard; /* forward declaration */

class nsIAbDirectoryProperties; /* forward declaration */

class nsIFile; /* forward declaration */

class nsISimpleEnumerator; /* forward declaration */

class nsIAbBooleanExpression; /* forward declaration */


/* starting interface:    nsIAbManager */
#define NS_IABMANAGER_IID_STR "ea0d8b3d-a549-4874-82d8-3a82cee2a3f1"

#define NS_IABMANAGER_IID \
  {0xea0d8b3d, 0xa549, 0x4874, \
    { 0x82, 0xd8, 0x3a, 0x82, 0xce, 0xe2, 0xa3, 0xf1 }}

class NS_NO_VTABLE nsIAbManager : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IABMANAGER_IID)

  /* readonly attribute nsISimpleEnumerator directories; */
  NS_IMETHOD GetDirectories(nsISimpleEnumerator * *aDirectories) = 0;

  /* nsIAbDirectory getDirectory (in ACString aURI); */
  NS_IMETHOD GetDirectory(const nsACString & aURI, nsIAbDirectory * *_retval) = 0;

  /* nsIAbDirectory getDirectoryFromId (in ACString aDirPrefId); */
  NS_IMETHOD GetDirectoryFromId(const nsACString & aDirPrefId, nsIAbDirectory * *_retval) = 0;

  /* ACString newAddressBook (in AString aDirName, in ACString aURI, in unsigned long aType, [optional] in ACString aPrefName); */
  NS_IMETHOD NewAddressBook(const nsAString & aDirName, const nsACString & aURI, uint32_t aType, const nsACString & aPrefName, nsACString & _retval) = 0;

  /* void deleteAddressBook (in ACString aURI); */
  NS_IMETHOD DeleteAddressBook(const nsACString & aURI) = 0;

  /* void exportAddressBook (in mozIDOMWindowProxy aParentWin, in nsIAbDirectory aDirectory); */
  NS_IMETHOD ExportAddressBook(mozIDOMWindowProxy *aParentWin, nsIAbDirectory *aDirectory) = 0;

  /* void addAddressBookListener (in nsIAbListener aListener, in abListenerNotifyFlagValue aNotifyFlags); */
  NS_IMETHOD AddAddressBookListener(nsIAbListener *aListener, abListenerNotifyFlagValue aNotifyFlags) = 0;

  /* void removeAddressBookListener (in nsIAbListener aListener); */
  NS_IMETHOD RemoveAddressBookListener(nsIAbListener *aListener) = 0;

  /* void notifyItemPropertyChanged (in nsISupports aItem, in string aProperty, in wstring aOldValue, in wstring aNewValue); */
  NS_IMETHOD NotifyItemPropertyChanged(nsISupports *aItem, const char * aProperty, const char16_t * aOldValue, const char16_t * aNewValue) = 0;

  /* void notifyDirectoryItemAdded (in nsIAbDirectory aParentDirectory, in nsISupports aItem); */
  NS_IMETHOD NotifyDirectoryItemAdded(nsIAbDirectory *aParentDirectory, nsISupports *aItem) = 0;

  /* void notifyDirectoryItemDeleted (in nsIAbDirectory aParentDirectory, in nsISupports aItem); */
  NS_IMETHOD NotifyDirectoryItemDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aItem) = 0;

  /* void notifyDirectoryDeleted (in nsIAbDirectory aParentDirectory, in nsISupports aDirectory); */
  NS_IMETHOD NotifyDirectoryDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aDirectory) = 0;

  /* readonly attribute nsIFile userProfileDirectory; */
  NS_IMETHOD GetUserProfileDirectory(nsIFile * *aUserProfileDirectory) = 0;

  /* boolean mailListNameExists (in wstring name); */
  NS_IMETHOD MailListNameExists(const char16_t * name, bool *_retval) = 0;

  /* nsIAbCard escapedVCardToAbCard (in string escapedVCardStr); */
  NS_IMETHOD EscapedVCardToAbCard(const char * escapedVCardStr, nsIAbCard * *_retval) = 0;

  /* AUTF8String generateUUID (in AUTF8String directoryId, in AUTF8String localId); */
  NS_IMETHOD GenerateUUID(const nsACString & directoryId, const nsACString & localId, nsACString & _retval) = 0;

  /* nsIAbBooleanExpression convertQueryStringToExpression (in AUTF8String aQueryString); */
  NS_IMETHOD ConvertQueryStringToExpression(const nsACString & aQueryString, nsIAbBooleanExpression * *_retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIAbManager, NS_IABMANAGER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIABMANAGER \
  NS_IMETHOD GetDirectories(nsISimpleEnumerator * *aDirectories) override; \
  NS_IMETHOD GetDirectory(const nsACString & aURI, nsIAbDirectory * *_retval) override; \
  NS_IMETHOD GetDirectoryFromId(const nsACString & aDirPrefId, nsIAbDirectory * *_retval) override; \
  NS_IMETHOD NewAddressBook(const nsAString & aDirName, const nsACString & aURI, uint32_t aType, const nsACString & aPrefName, nsACString & _retval) override; \
  NS_IMETHOD DeleteAddressBook(const nsACString & aURI) override; \
  NS_IMETHOD ExportAddressBook(mozIDOMWindowProxy *aParentWin, nsIAbDirectory *aDirectory) override; \
  NS_IMETHOD AddAddressBookListener(nsIAbListener *aListener, abListenerNotifyFlagValue aNotifyFlags) override; \
  NS_IMETHOD RemoveAddressBookListener(nsIAbListener *aListener) override; \
  NS_IMETHOD NotifyItemPropertyChanged(nsISupports *aItem, const char * aProperty, const char16_t * aOldValue, const char16_t * aNewValue) override; \
  NS_IMETHOD NotifyDirectoryItemAdded(nsIAbDirectory *aParentDirectory, nsISupports *aItem) override; \
  NS_IMETHOD NotifyDirectoryItemDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aItem) override; \
  NS_IMETHOD NotifyDirectoryDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aDirectory) override; \
  NS_IMETHOD GetUserProfileDirectory(nsIFile * *aUserProfileDirectory) override; \
  NS_IMETHOD MailListNameExists(const char16_t * name, bool *_retval) override; \
  NS_IMETHOD EscapedVCardToAbCard(const char * escapedVCardStr, nsIAbCard * *_retval) override; \
  NS_IMETHOD GenerateUUID(const nsACString & directoryId, const nsACString & localId, nsACString & _retval) override; \
  NS_IMETHOD ConvertQueryStringToExpression(const nsACString & aQueryString, nsIAbBooleanExpression * *_retval) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIABMANAGER \
  NS_METHOD GetDirectories(nsISimpleEnumerator * *aDirectories); \
  NS_METHOD GetDirectory(const nsACString & aURI, nsIAbDirectory * *_retval); \
  NS_METHOD GetDirectoryFromId(const nsACString & aDirPrefId, nsIAbDirectory * *_retval); \
  NS_METHOD NewAddressBook(const nsAString & aDirName, const nsACString & aURI, uint32_t aType, const nsACString & aPrefName, nsACString & _retval); \
  NS_METHOD DeleteAddressBook(const nsACString & aURI); \
  NS_METHOD ExportAddressBook(mozIDOMWindowProxy *aParentWin, nsIAbDirectory *aDirectory); \
  NS_METHOD AddAddressBookListener(nsIAbListener *aListener, abListenerNotifyFlagValue aNotifyFlags); \
  NS_METHOD RemoveAddressBookListener(nsIAbListener *aListener); \
  NS_METHOD NotifyItemPropertyChanged(nsISupports *aItem, const char * aProperty, const char16_t * aOldValue, const char16_t * aNewValue); \
  NS_METHOD NotifyDirectoryItemAdded(nsIAbDirectory *aParentDirectory, nsISupports *aItem); \
  NS_METHOD NotifyDirectoryItemDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aItem); \
  NS_METHOD NotifyDirectoryDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aDirectory); \
  NS_METHOD GetUserProfileDirectory(nsIFile * *aUserProfileDirectory); \
  NS_METHOD MailListNameExists(const char16_t * name, bool *_retval); \
  NS_METHOD EscapedVCardToAbCard(const char * escapedVCardStr, nsIAbCard * *_retval); \
  NS_METHOD GenerateUUID(const nsACString & directoryId, const nsACString & localId, nsACString & _retval); \
  NS_METHOD ConvertQueryStringToExpression(const nsACString & aQueryString, nsIAbBooleanExpression * *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIABMANAGER(_to) \
  NS_IMETHOD GetDirectories(nsISimpleEnumerator * *aDirectories) override { return _to GetDirectories(aDirectories); } \
  NS_IMETHOD GetDirectory(const nsACString & aURI, nsIAbDirectory * *_retval) override { return _to GetDirectory(aURI, _retval); } \
  NS_IMETHOD GetDirectoryFromId(const nsACString & aDirPrefId, nsIAbDirectory * *_retval) override { return _to GetDirectoryFromId(aDirPrefId, _retval); } \
  NS_IMETHOD NewAddressBook(const nsAString & aDirName, const nsACString & aURI, uint32_t aType, const nsACString & aPrefName, nsACString & _retval) override { return _to NewAddressBook(aDirName, aURI, aType, aPrefName, _retval); } \
  NS_IMETHOD DeleteAddressBook(const nsACString & aURI) override { return _to DeleteAddressBook(aURI); } \
  NS_IMETHOD ExportAddressBook(mozIDOMWindowProxy *aParentWin, nsIAbDirectory *aDirectory) override { return _to ExportAddressBook(aParentWin, aDirectory); } \
  NS_IMETHOD AddAddressBookListener(nsIAbListener *aListener, abListenerNotifyFlagValue aNotifyFlags) override { return _to AddAddressBookListener(aListener, aNotifyFlags); } \
  NS_IMETHOD RemoveAddressBookListener(nsIAbListener *aListener) override { return _to RemoveAddressBookListener(aListener); } \
  NS_IMETHOD NotifyItemPropertyChanged(nsISupports *aItem, const char * aProperty, const char16_t * aOldValue, const char16_t * aNewValue) override { return _to NotifyItemPropertyChanged(aItem, aProperty, aOldValue, aNewValue); } \
  NS_IMETHOD NotifyDirectoryItemAdded(nsIAbDirectory *aParentDirectory, nsISupports *aItem) override { return _to NotifyDirectoryItemAdded(aParentDirectory, aItem); } \
  NS_IMETHOD NotifyDirectoryItemDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aItem) override { return _to NotifyDirectoryItemDeleted(aParentDirectory, aItem); } \
  NS_IMETHOD NotifyDirectoryDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aDirectory) override { return _to NotifyDirectoryDeleted(aParentDirectory, aDirectory); } \
  NS_IMETHOD GetUserProfileDirectory(nsIFile * *aUserProfileDirectory) override { return _to GetUserProfileDirectory(aUserProfileDirectory); } \
  NS_IMETHOD MailListNameExists(const char16_t * name, bool *_retval) override { return _to MailListNameExists(name, _retval); } \
  NS_IMETHOD EscapedVCardToAbCard(const char * escapedVCardStr, nsIAbCard * *_retval) override { return _to EscapedVCardToAbCard(escapedVCardStr, _retval); } \
  NS_IMETHOD GenerateUUID(const nsACString & directoryId, const nsACString & localId, nsACString & _retval) override { return _to GenerateUUID(directoryId, localId, _retval); } \
  NS_IMETHOD ConvertQueryStringToExpression(const nsACString & aQueryString, nsIAbBooleanExpression * *_retval) override { return _to ConvertQueryStringToExpression(aQueryString, _retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIABMANAGER(_to) \
  NS_IMETHOD GetDirectories(nsISimpleEnumerator * *aDirectories) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirectories(aDirectories); } \
  NS_IMETHOD GetDirectory(const nsACString & aURI, nsIAbDirectory * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirectory(aURI, _retval); } \
  NS_IMETHOD GetDirectoryFromId(const nsACString & aDirPrefId, nsIAbDirectory * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirectoryFromId(aDirPrefId, _retval); } \
  NS_IMETHOD NewAddressBook(const nsAString & aDirName, const nsACString & aURI, uint32_t aType, const nsACString & aPrefName, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NewAddressBook(aDirName, aURI, aType, aPrefName, _retval); } \
  NS_IMETHOD DeleteAddressBook(const nsACString & aURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteAddressBook(aURI); } \
  NS_IMETHOD ExportAddressBook(mozIDOMWindowProxy *aParentWin, nsIAbDirectory *aDirectory) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ExportAddressBook(aParentWin, aDirectory); } \
  NS_IMETHOD AddAddressBookListener(nsIAbListener *aListener, abListenerNotifyFlagValue aNotifyFlags) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddAddressBookListener(aListener, aNotifyFlags); } \
  NS_IMETHOD RemoveAddressBookListener(nsIAbListener *aListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAddressBookListener(aListener); } \
  NS_IMETHOD NotifyItemPropertyChanged(nsISupports *aItem, const char * aProperty, const char16_t * aOldValue, const char16_t * aNewValue) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyItemPropertyChanged(aItem, aProperty, aOldValue, aNewValue); } \
  NS_IMETHOD NotifyDirectoryItemAdded(nsIAbDirectory *aParentDirectory, nsISupports *aItem) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyDirectoryItemAdded(aParentDirectory, aItem); } \
  NS_IMETHOD NotifyDirectoryItemDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aItem) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyDirectoryItemDeleted(aParentDirectory, aItem); } \
  NS_IMETHOD NotifyDirectoryDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aDirectory) override { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyDirectoryDeleted(aParentDirectory, aDirectory); } \
  NS_IMETHOD GetUserProfileDirectory(nsIFile * *aUserProfileDirectory) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserProfileDirectory(aUserProfileDirectory); } \
  NS_IMETHOD MailListNameExists(const char16_t * name, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->MailListNameExists(name, _retval); } \
  NS_IMETHOD EscapedVCardToAbCard(const char * escapedVCardStr, nsIAbCard * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->EscapedVCardToAbCard(escapedVCardStr, _retval); } \
  NS_IMETHOD GenerateUUID(const nsACString & directoryId, const nsACString & localId, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GenerateUUID(directoryId, localId, _retval); } \
  NS_IMETHOD ConvertQueryStringToExpression(const nsACString & aQueryString, nsIAbBooleanExpression * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ConvertQueryStringToExpression(aQueryString, _retval); } 

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

/* Header file */
class nsAbManager : public nsIAbManager
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIABMANAGER

  nsAbManager();

private:
  ~nsAbManager();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsAbManager, nsIAbManager)

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

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

/* readonly attribute nsISimpleEnumerator directories; */
NS_IMETHODIMP nsAbManager::GetDirectories(nsISimpleEnumerator * *aDirectories)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAbDirectory getDirectory (in ACString aURI); */
NS_IMETHODIMP nsAbManager::GetDirectory(const nsACString & aURI, nsIAbDirectory * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAbDirectory getDirectoryFromId (in ACString aDirPrefId); */
NS_IMETHODIMP nsAbManager::GetDirectoryFromId(const nsACString & aDirPrefId, nsIAbDirectory * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString newAddressBook (in AString aDirName, in ACString aURI, in unsigned long aType, [optional] in ACString aPrefName); */
NS_IMETHODIMP nsAbManager::NewAddressBook(const nsAString & aDirName, const nsACString & aURI, uint32_t aType, const nsACString & aPrefName, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteAddressBook (in ACString aURI); */
NS_IMETHODIMP nsAbManager::DeleteAddressBook(const nsACString & aURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void exportAddressBook (in mozIDOMWindowProxy aParentWin, in nsIAbDirectory aDirectory); */
NS_IMETHODIMP nsAbManager::ExportAddressBook(mozIDOMWindowProxy *aParentWin, nsIAbDirectory *aDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addAddressBookListener (in nsIAbListener aListener, in abListenerNotifyFlagValue aNotifyFlags); */
NS_IMETHODIMP nsAbManager::AddAddressBookListener(nsIAbListener *aListener, abListenerNotifyFlagValue aNotifyFlags)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAddressBookListener (in nsIAbListener aListener); */
NS_IMETHODIMP nsAbManager::RemoveAddressBookListener(nsIAbListener *aListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyItemPropertyChanged (in nsISupports aItem, in string aProperty, in wstring aOldValue, in wstring aNewValue); */
NS_IMETHODIMP nsAbManager::NotifyItemPropertyChanged(nsISupports *aItem, const char * aProperty, const char16_t * aOldValue, const char16_t * aNewValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyDirectoryItemAdded (in nsIAbDirectory aParentDirectory, in nsISupports aItem); */
NS_IMETHODIMP nsAbManager::NotifyDirectoryItemAdded(nsIAbDirectory *aParentDirectory, nsISupports *aItem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyDirectoryItemDeleted (in nsIAbDirectory aParentDirectory, in nsISupports aItem); */
NS_IMETHODIMP nsAbManager::NotifyDirectoryItemDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aItem)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void notifyDirectoryDeleted (in nsIAbDirectory aParentDirectory, in nsISupports aDirectory); */
NS_IMETHODIMP nsAbManager::NotifyDirectoryDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIFile userProfileDirectory; */
NS_IMETHODIMP nsAbManager::GetUserProfileDirectory(nsIFile * *aUserProfileDirectory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean mailListNameExists (in wstring name); */
NS_IMETHODIMP nsAbManager::MailListNameExists(const char16_t * name, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAbCard escapedVCardToAbCard (in string escapedVCardStr); */
NS_IMETHODIMP nsAbManager::EscapedVCardToAbCard(const char * escapedVCardStr, nsIAbCard * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AUTF8String generateUUID (in AUTF8String directoryId, in AUTF8String localId); */
NS_IMETHODIMP nsAbManager::GenerateUUID(const nsACString & directoryId, const nsACString & localId, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIAbBooleanExpression convertQueryStringToExpression (in AUTF8String aQueryString); */
NS_IMETHODIMP nsAbManager::ConvertQueryStringToExpression(const nsACString & aQueryString, nsIAbBooleanExpression * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIAbManager_h__ */
