/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/mailnews/addrbook/public/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 nsIDOMWindow; /* 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 "c3b33078-0b9c-4b56-83ed-3c5e84de82c8"

#define NS_IABMANAGER_IID \
  {0xc3b33078, 0x0b9c, 0x4b56, \
    { 0x83, 0xed, 0x3c, 0x5e, 0x84, 0xde, 0x82, 0xc8 }}

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;

  /* 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 nsIDOMWindow aParentWin, in nsIAbDirectory aDirectory); */
  NS_IMETHOD ExportAddressBook(nsIDOMWindow *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 PRUnichar * aOldValue, const PRUnichar * 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 PRUnichar * 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); \
  NS_IMETHOD GetDirectory(const nsACString & aURI, nsIAbDirectory * *_retval); \
  NS_IMETHOD NewAddressBook(const nsAString & aDirName, const nsACString & aURI, uint32_t aType, const nsACString & aPrefName, nsACString & _retval); \
  NS_IMETHOD DeleteAddressBook(const nsACString & aURI); \
  NS_IMETHOD ExportAddressBook(nsIDOMWindow *aParentWin, nsIAbDirectory *aDirectory); \
  NS_IMETHOD AddAddressBookListener(nsIAbListener *aListener, abListenerNotifyFlagValue aNotifyFlags); \
  NS_IMETHOD RemoveAddressBookListener(nsIAbListener *aListener); \
  NS_IMETHOD NotifyItemPropertyChanged(nsISupports *aItem, const char * aProperty, const PRUnichar * aOldValue, const PRUnichar * aNewValue); \
  NS_IMETHOD NotifyDirectoryItemAdded(nsIAbDirectory *aParentDirectory, nsISupports *aItem); \
  NS_IMETHOD NotifyDirectoryItemDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aItem); \
  NS_IMETHOD NotifyDirectoryDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aDirectory); \
  NS_IMETHOD GetUserProfileDirectory(nsIFile * *aUserProfileDirectory); \
  NS_IMETHOD MailListNameExists(const PRUnichar * name, bool *_retval); \
  NS_IMETHOD EscapedVCardToAbCard(const char * escapedVCardStr, nsIAbCard * *_retval); \
  NS_IMETHOD GenerateUUID(const nsACString & directoryId, const nsACString & localId, nsACString & _retval); \
  NS_IMETHOD 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) { return _to GetDirectories(aDirectories); } \
  NS_IMETHOD GetDirectory(const nsACString & aURI, nsIAbDirectory * *_retval) { return _to GetDirectory(aURI, _retval); } \
  NS_IMETHOD NewAddressBook(const nsAString & aDirName, const nsACString & aURI, uint32_t aType, const nsACString & aPrefName, nsACString & _retval) { return _to NewAddressBook(aDirName, aURI, aType, aPrefName, _retval); } \
  NS_IMETHOD DeleteAddressBook(const nsACString & aURI) { return _to DeleteAddressBook(aURI); } \
  NS_IMETHOD ExportAddressBook(nsIDOMWindow *aParentWin, nsIAbDirectory *aDirectory) { return _to ExportAddressBook(aParentWin, aDirectory); } \
  NS_IMETHOD AddAddressBookListener(nsIAbListener *aListener, abListenerNotifyFlagValue aNotifyFlags) { return _to AddAddressBookListener(aListener, aNotifyFlags); } \
  NS_IMETHOD RemoveAddressBookListener(nsIAbListener *aListener) { return _to RemoveAddressBookListener(aListener); } \
  NS_IMETHOD NotifyItemPropertyChanged(nsISupports *aItem, const char * aProperty, const PRUnichar * aOldValue, const PRUnichar * aNewValue) { return _to NotifyItemPropertyChanged(aItem, aProperty, aOldValue, aNewValue); } \
  NS_IMETHOD NotifyDirectoryItemAdded(nsIAbDirectory *aParentDirectory, nsISupports *aItem) { return _to NotifyDirectoryItemAdded(aParentDirectory, aItem); } \
  NS_IMETHOD NotifyDirectoryItemDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aItem) { return _to NotifyDirectoryItemDeleted(aParentDirectory, aItem); } \
  NS_IMETHOD NotifyDirectoryDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aDirectory) { return _to NotifyDirectoryDeleted(aParentDirectory, aDirectory); } \
  NS_IMETHOD GetUserProfileDirectory(nsIFile * *aUserProfileDirectory) { return _to GetUserProfileDirectory(aUserProfileDirectory); } \
  NS_IMETHOD MailListNameExists(const PRUnichar * name, bool *_retval) { return _to MailListNameExists(name, _retval); } \
  NS_IMETHOD EscapedVCardToAbCard(const char * escapedVCardStr, nsIAbCard * *_retval) { return _to EscapedVCardToAbCard(escapedVCardStr, _retval); } \
  NS_IMETHOD GenerateUUID(const nsACString & directoryId, const nsACString & localId, nsACString & _retval) { return _to GenerateUUID(directoryId, localId, _retval); } \
  NS_IMETHOD ConvertQueryStringToExpression(const nsACString & aQueryString, nsIAbBooleanExpression * *_retval) { 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) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirectories(aDirectories); } \
  NS_IMETHOD GetDirectory(const nsACString & aURI, nsIAbDirectory * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDirectory(aURI, _retval); } \
  NS_IMETHOD NewAddressBook(const nsAString & aDirName, const nsACString & aURI, uint32_t aType, const nsACString & aPrefName, nsACString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->NewAddressBook(aDirName, aURI, aType, aPrefName, _retval); } \
  NS_IMETHOD DeleteAddressBook(const nsACString & aURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteAddressBook(aURI); } \
  NS_IMETHOD ExportAddressBook(nsIDOMWindow *aParentWin, nsIAbDirectory *aDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->ExportAddressBook(aParentWin, aDirectory); } \
  NS_IMETHOD AddAddressBookListener(nsIAbListener *aListener, abListenerNotifyFlagValue aNotifyFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddAddressBookListener(aListener, aNotifyFlags); } \
  NS_IMETHOD RemoveAddressBookListener(nsIAbListener *aListener) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAddressBookListener(aListener); } \
  NS_IMETHOD NotifyItemPropertyChanged(nsISupports *aItem, const char * aProperty, const PRUnichar * aOldValue, const PRUnichar * aNewValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyItemPropertyChanged(aItem, aProperty, aOldValue, aNewValue); } \
  NS_IMETHOD NotifyDirectoryItemAdded(nsIAbDirectory *aParentDirectory, nsISupports *aItem) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyDirectoryItemAdded(aParentDirectory, aItem); } \
  NS_IMETHOD NotifyDirectoryItemDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aItem) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyDirectoryItemDeleted(aParentDirectory, aItem); } \
  NS_IMETHOD NotifyDirectoryDeleted(nsIAbDirectory *aParentDirectory, nsISupports *aDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->NotifyDirectoryDeleted(aParentDirectory, aDirectory); } \
  NS_IMETHOD GetUserProfileDirectory(nsIFile * *aUserProfileDirectory) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserProfileDirectory(aUserProfileDirectory); } \
  NS_IMETHOD MailListNameExists(const PRUnichar * name, bool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->MailListNameExists(name, _retval); } \
  NS_IMETHOD EscapedVCardToAbCard(const char * escapedVCardStr, nsIAbCard * *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->EscapedVCardToAbCard(escapedVCardStr, _retval); } \
  NS_IMETHOD GenerateUUID(const nsACString & directoryId, const nsACString & localId, nsACString & _retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GenerateUUID(directoryId, localId, _retval); } \
  NS_IMETHOD ConvertQueryStringToExpression(const nsACString & aQueryString, nsIAbBooleanExpression * *_retval) { 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_ISUPPORTS1(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;
}

/* 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 nsIDOMWindow aParentWin, in nsIAbDirectory aDirectory); */
NS_IMETHODIMP nsAbManager::ExportAddressBook(nsIDOMWindow *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 PRUnichar * aOldValue, const PRUnichar * 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 PRUnichar * 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__ */
