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

#ifndef __gen_nsIImapServerSink_h__
#define __gen_nsIImapServerSink_h__


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

#ifndef __gen_MailNewsTypes2_h__
#include "MailNewsTypes2.h"
#endif

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

class nsIMsgMailNewsUrl; /* forward declaration */

class nsIImapProtocol; /* forward declaration */

class nsIImapUrl; /* forward declaration */

class nsIImapMockChannel; /* forward declaration */


/* starting interface:    nsIImapServerSink */
#define NS_IIMAPSERVERSINK_IID_STR "2160c641-e4fa-4bbc-ab8b-d9ba45069027"

#define NS_IIMAPSERVERSINK_IID \
  {0x2160c641, 0xe4fa, 0x4bbc, \
    { 0xab, 0x8b, 0xd9, 0xba, 0x45, 0x06, 0x90, 0x27 }}

class NS_NO_VTABLE nsIImapServerSink : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IIMAPSERVERSINK_IID)

  /* boolean possibleImapMailbox (in ACString folderPath, in char hierarchyDelimiter, in long boxFlags); */
  NS_IMETHOD PossibleImapMailbox(const nsACString & folderPath, char hierarchyDelimiter, int32_t boxFlags, bool *_retval) = 0;

  /* boolean folderNeedsACLInitialized (in ACString folderPath); */
  NS_IMETHOD FolderNeedsACLInitialized(const nsACString & folderPath, bool *_retval) = 0;

  /* void addFolderRights (in ACString folderPath, in ACString userName, in ACString rights); */
  NS_IMETHOD AddFolderRights(const nsACString & folderPath, const nsACString & userName, const nsACString & rights) = 0;

  /* void refreshFolderRights (in ACString folderPath); */
  NS_IMETHOD RefreshFolderRights(const nsACString & folderPath) = 0;

  /* void discoveryDone (); */
  NS_IMETHOD DiscoveryDone(void) = 0;

  /* void onlineFolderDelete (in ACString folderName); */
  NS_IMETHOD OnlineFolderDelete(const nsACString & folderName) = 0;

  /* void onlineFolderCreateFailed (in ACString aFolderName); */
  NS_IMETHOD OnlineFolderCreateFailed(const nsACString & aFolderName) = 0;

  /* void onlineFolderRename (in nsIMsgWindow msgWindow, in ACString oldName, in ACString newName); */
  NS_IMETHOD OnlineFolderRename(nsIMsgWindow *msgWindow, const nsACString & oldName, const nsACString & newName) = 0;

  /* boolean folderIsNoSelect (in ACString folderName); */
  NS_IMETHOD FolderIsNoSelect(const nsACString & folderName, bool *_retval) = 0;

  /* void setFolderAdminURL (in ACString folderName, in ACString adminUrl); */
  NS_IMETHOD SetFolderAdminURL(const nsACString & folderName, const nsACString & adminUrl) = 0;

  /* boolean folderVerifiedOnline (in ACString folderName); */
  NS_IMETHOD FolderVerifiedOnline(const nsACString & folderName, bool *_retval) = 0;

  /* void setCapability (in unsigned long long capability); */
  NS_IMETHOD SetCapability(uint64_t capability) = 0;

  /* void setServerID (in ACString aServerID); */
  NS_IMETHOD SetServerID(const nsACString & aServerID) = 0;

  /* boolean loadNextQueuedUrl (in nsIImapProtocol protocol); */
  NS_IMETHOD LoadNextQueuedUrl(nsIImapProtocol *protocol, bool *_retval) = 0;

  /* nsIImapMockChannel prepareToRetryUrl (in nsIImapUrl imapUrl); */
  NS_IMETHOD PrepareToRetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel * *_retval) = 0;

  /* void suspendUrl (in nsIImapUrl aImapUrl); */
  NS_IMETHOD SuspendUrl(nsIImapUrl *aImapUrl) = 0;

  /* void retryUrl (in nsIImapUrl imapUrl, in nsIImapMockChannel channel); */
  NS_IMETHOD RetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel *channel) = 0;

  /* void abortQueuedUrls (); */
  NS_IMETHOD AbortQueuedUrls(void) = 0;

  /* AString getImapStringByName (in string msgName); */
  NS_IMETHOD GetImapStringByName(const char * msgName, nsAString & _retval) = 0;

  /* int32_t promptLoginFailed (in nsIMsgWindow aMsgWindow); */
  NS_IMETHOD PromptLoginFailed(nsIMsgWindow *aMsgWindow, int32_t *_retval) = 0;

  /* void fEAlert (in AString aAlertString, in nsIMsgMailNewsUrl aUrl); */
  NS_IMETHOD FEAlert(const nsAString & aAlertString, nsIMsgMailNewsUrl *aUrl) = 0;

  /* void fEAlertWithName (in string aMsgName, in nsIMsgMailNewsUrl aUrl); */
  NS_IMETHOD FEAlertWithName(const char * aMsgName, nsIMsgMailNewsUrl *aUrl) = 0;

  /* void fEAlertFromServer (in ACString aServerString, in nsIMsgMailNewsUrl aUrl); */
  NS_IMETHOD FEAlertFromServer(const nsACString & aServerString, nsIMsgMailNewsUrl *aUrl) = 0;

  /* void commitNamespaces (); */
  NS_IMETHOD CommitNamespaces(void) = 0;

  /* void asyncGetPassword (in nsIImapProtocol aProtocol, in boolean aNewPasswordRequested, out ACString aPassword); */
  NS_IMETHOD AsyncGetPassword(nsIImapProtocol *aProtocol, bool aNewPasswordRequested, nsACString & aPassword) = 0;

  /* attribute boolean userAuthenticated; */
  NS_IMETHOD GetUserAuthenticated(bool *aUserAuthenticated) = 0;
  NS_IMETHOD SetUserAuthenticated(bool aUserAuthenticated) = 0;

  /* void setMailServerUrls (in ACString manageMailAccount, in ACString manageLists, in ACString manageFilters); */
  NS_IMETHOD SetMailServerUrls(const nsACString & manageMailAccount, const nsACString & manageLists, const nsACString & manageFilters) = 0;

  /* void UpdateTrySTARTTLSPref (in boolean aSucceeded); */
  NS_IMETHOD UpdateTrySTARTTLSPref(bool aSucceeded) = 0;

  /* readonly attribute ACString arbitraryHeaders; */
  NS_IMETHOD GetArbitraryHeaders(nsACString & aArbitraryHeaders) = 0;

  /* void forgetPassword (); */
  NS_IMETHOD ForgetPassword(void) = 0;

  /* readonly attribute boolean showAttachmentsInline; */
  NS_IMETHOD GetShowAttachmentsInline(bool *aShowAttachmentsInline) = 0;

  /* string cramMD5Hash (in string decodedChallenge, in string key); */
  NS_IMETHOD CramMD5Hash(const char * decodedChallenge, const char * key, char * *_retval) = 0;

  /* readonly attribute ACString loginUsername; */
  NS_IMETHOD GetLoginUsername(nsACString & aLoginUsername) = 0;

  /* readonly attribute ACString originalUsername; */
  NS_IMETHOD GetOriginalUsername(nsACString & aOriginalUsername) = 0;

  /* readonly attribute ACString serverKey; */
  NS_IMETHOD GetServerKey(nsACString & aServerKey) = 0;

  /* readonly attribute ACString serverPassword; */
  NS_IMETHOD GetServerPassword(nsACString & aServerPassword) = 0;

  /* void removeServerConnection (in nsIImapProtocol aProtocol); */
  NS_IMETHOD RemoveServerConnection(nsIImapProtocol *aProtocol) = 0;

  /* readonly attribute boolean serverShuttingDown; */
  NS_IMETHOD GetServerShuttingDown(bool *aServerShuttingDown) = 0;

  /* void resetServerConnection (in ACString aFolderName); */
  NS_IMETHOD ResetServerConnection(const nsACString & aFolderName) = 0;

  /* void setServerDoingLsub (in boolean aDoingLsub); */
  NS_IMETHOD SetServerDoingLsub(bool aDoingLsub) = 0;

  /* void SetServerForceSelect (in ACString forceSelect); */
  NS_IMETHOD SetServerForceSelect(const nsACString & forceSelect) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIImapServerSink, NS_IIMAPSERVERSINK_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIIMAPSERVERSINK \
  NS_IMETHOD PossibleImapMailbox(const nsACString & folderPath, char hierarchyDelimiter, int32_t boxFlags, bool *_retval) override; \
  NS_IMETHOD FolderNeedsACLInitialized(const nsACString & folderPath, bool *_retval) override; \
  NS_IMETHOD AddFolderRights(const nsACString & folderPath, const nsACString & userName, const nsACString & rights) override; \
  NS_IMETHOD RefreshFolderRights(const nsACString & folderPath) override; \
  NS_IMETHOD DiscoveryDone(void) override; \
  NS_IMETHOD OnlineFolderDelete(const nsACString & folderName) override; \
  NS_IMETHOD OnlineFolderCreateFailed(const nsACString & aFolderName) override; \
  NS_IMETHOD OnlineFolderRename(nsIMsgWindow *msgWindow, const nsACString & oldName, const nsACString & newName) override; \
  NS_IMETHOD FolderIsNoSelect(const nsACString & folderName, bool *_retval) override; \
  NS_IMETHOD SetFolderAdminURL(const nsACString & folderName, const nsACString & adminUrl) override; \
  NS_IMETHOD FolderVerifiedOnline(const nsACString & folderName, bool *_retval) override; \
  NS_IMETHOD SetCapability(uint64_t capability) override; \
  NS_IMETHOD SetServerID(const nsACString & aServerID) override; \
  NS_IMETHOD LoadNextQueuedUrl(nsIImapProtocol *protocol, bool *_retval) override; \
  NS_IMETHOD PrepareToRetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel * *_retval) override; \
  NS_IMETHOD SuspendUrl(nsIImapUrl *aImapUrl) override; \
  NS_IMETHOD RetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel *channel) override; \
  NS_IMETHOD AbortQueuedUrls(void) override; \
  NS_IMETHOD GetImapStringByName(const char * msgName, nsAString & _retval) override; \
  NS_IMETHOD PromptLoginFailed(nsIMsgWindow *aMsgWindow, int32_t *_retval) override; \
  NS_IMETHOD FEAlert(const nsAString & aAlertString, nsIMsgMailNewsUrl *aUrl) override; \
  NS_IMETHOD FEAlertWithName(const char * aMsgName, nsIMsgMailNewsUrl *aUrl) override; \
  NS_IMETHOD FEAlertFromServer(const nsACString & aServerString, nsIMsgMailNewsUrl *aUrl) override; \
  NS_IMETHOD CommitNamespaces(void) override; \
  NS_IMETHOD AsyncGetPassword(nsIImapProtocol *aProtocol, bool aNewPasswordRequested, nsACString & aPassword) override; \
  NS_IMETHOD GetUserAuthenticated(bool *aUserAuthenticated) override; \
  NS_IMETHOD SetUserAuthenticated(bool aUserAuthenticated) override; \
  NS_IMETHOD SetMailServerUrls(const nsACString & manageMailAccount, const nsACString & manageLists, const nsACString & manageFilters) override; \
  NS_IMETHOD UpdateTrySTARTTLSPref(bool aSucceeded) override; \
  NS_IMETHOD GetArbitraryHeaders(nsACString & aArbitraryHeaders) override; \
  NS_IMETHOD ForgetPassword(void) override; \
  NS_IMETHOD GetShowAttachmentsInline(bool *aShowAttachmentsInline) override; \
  NS_IMETHOD CramMD5Hash(const char * decodedChallenge, const char * key, char * *_retval) override; \
  NS_IMETHOD GetLoginUsername(nsACString & aLoginUsername) override; \
  NS_IMETHOD GetOriginalUsername(nsACString & aOriginalUsername) override; \
  NS_IMETHOD GetServerKey(nsACString & aServerKey) override; \
  NS_IMETHOD GetServerPassword(nsACString & aServerPassword) override; \
  NS_IMETHOD RemoveServerConnection(nsIImapProtocol *aProtocol) override; \
  NS_IMETHOD GetServerShuttingDown(bool *aServerShuttingDown) override; \
  NS_IMETHOD ResetServerConnection(const nsACString & aFolderName) override; \
  NS_IMETHOD SetServerDoingLsub(bool aDoingLsub) override; \
  NS_IMETHOD SetServerForceSelect(const nsACString & forceSelect) 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_NSIIMAPSERVERSINK \
  NS_METHOD PossibleImapMailbox(const nsACString & folderPath, char hierarchyDelimiter, int32_t boxFlags, bool *_retval); \
  NS_METHOD FolderNeedsACLInitialized(const nsACString & folderPath, bool *_retval); \
  NS_METHOD AddFolderRights(const nsACString & folderPath, const nsACString & userName, const nsACString & rights); \
  NS_METHOD RefreshFolderRights(const nsACString & folderPath); \
  NS_METHOD DiscoveryDone(void); \
  NS_METHOD OnlineFolderDelete(const nsACString & folderName); \
  NS_METHOD OnlineFolderCreateFailed(const nsACString & aFolderName); \
  NS_METHOD OnlineFolderRename(nsIMsgWindow *msgWindow, const nsACString & oldName, const nsACString & newName); \
  NS_METHOD FolderIsNoSelect(const nsACString & folderName, bool *_retval); \
  NS_METHOD SetFolderAdminURL(const nsACString & folderName, const nsACString & adminUrl); \
  NS_METHOD FolderVerifiedOnline(const nsACString & folderName, bool *_retval); \
  NS_METHOD SetCapability(uint64_t capability); \
  NS_METHOD SetServerID(const nsACString & aServerID); \
  NS_METHOD LoadNextQueuedUrl(nsIImapProtocol *protocol, bool *_retval); \
  NS_METHOD PrepareToRetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel * *_retval); \
  NS_METHOD SuspendUrl(nsIImapUrl *aImapUrl); \
  NS_METHOD RetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel *channel); \
  NS_METHOD AbortQueuedUrls(void); \
  NS_METHOD GetImapStringByName(const char * msgName, nsAString & _retval); \
  NS_METHOD PromptLoginFailed(nsIMsgWindow *aMsgWindow, int32_t *_retval); \
  NS_METHOD FEAlert(const nsAString & aAlertString, nsIMsgMailNewsUrl *aUrl); \
  NS_METHOD FEAlertWithName(const char * aMsgName, nsIMsgMailNewsUrl *aUrl); \
  NS_METHOD FEAlertFromServer(const nsACString & aServerString, nsIMsgMailNewsUrl *aUrl); \
  NS_METHOD CommitNamespaces(void); \
  NS_METHOD AsyncGetPassword(nsIImapProtocol *aProtocol, bool aNewPasswordRequested, nsACString & aPassword); \
  NS_METHOD GetUserAuthenticated(bool *aUserAuthenticated); \
  NS_METHOD SetUserAuthenticated(bool aUserAuthenticated); \
  NS_METHOD SetMailServerUrls(const nsACString & manageMailAccount, const nsACString & manageLists, const nsACString & manageFilters); \
  NS_METHOD UpdateTrySTARTTLSPref(bool aSucceeded); \
  NS_METHOD GetArbitraryHeaders(nsACString & aArbitraryHeaders); \
  NS_METHOD ForgetPassword(void); \
  NS_METHOD GetShowAttachmentsInline(bool *aShowAttachmentsInline); \
  NS_METHOD CramMD5Hash(const char * decodedChallenge, const char * key, char * *_retval); \
  NS_METHOD GetLoginUsername(nsACString & aLoginUsername); \
  NS_METHOD GetOriginalUsername(nsACString & aOriginalUsername); \
  NS_METHOD GetServerKey(nsACString & aServerKey); \
  NS_METHOD GetServerPassword(nsACString & aServerPassword); \
  NS_METHOD RemoveServerConnection(nsIImapProtocol *aProtocol); \
  NS_METHOD GetServerShuttingDown(bool *aServerShuttingDown); \
  NS_METHOD ResetServerConnection(const nsACString & aFolderName); \
  NS_METHOD SetServerDoingLsub(bool aDoingLsub); \
  NS_METHOD SetServerForceSelect(const nsACString & forceSelect); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIIMAPSERVERSINK(_to) \
  NS_IMETHOD PossibleImapMailbox(const nsACString & folderPath, char hierarchyDelimiter, int32_t boxFlags, bool *_retval) override { return _to PossibleImapMailbox(folderPath, hierarchyDelimiter, boxFlags, _retval); } \
  NS_IMETHOD FolderNeedsACLInitialized(const nsACString & folderPath, bool *_retval) override { return _to FolderNeedsACLInitialized(folderPath, _retval); } \
  NS_IMETHOD AddFolderRights(const nsACString & folderPath, const nsACString & userName, const nsACString & rights) override { return _to AddFolderRights(folderPath, userName, rights); } \
  NS_IMETHOD RefreshFolderRights(const nsACString & folderPath) override { return _to RefreshFolderRights(folderPath); } \
  NS_IMETHOD DiscoveryDone(void) override { return _to DiscoveryDone(); } \
  NS_IMETHOD OnlineFolderDelete(const nsACString & folderName) override { return _to OnlineFolderDelete(folderName); } \
  NS_IMETHOD OnlineFolderCreateFailed(const nsACString & aFolderName) override { return _to OnlineFolderCreateFailed(aFolderName); } \
  NS_IMETHOD OnlineFolderRename(nsIMsgWindow *msgWindow, const nsACString & oldName, const nsACString & newName) override { return _to OnlineFolderRename(msgWindow, oldName, newName); } \
  NS_IMETHOD FolderIsNoSelect(const nsACString & folderName, bool *_retval) override { return _to FolderIsNoSelect(folderName, _retval); } \
  NS_IMETHOD SetFolderAdminURL(const nsACString & folderName, const nsACString & adminUrl) override { return _to SetFolderAdminURL(folderName, adminUrl); } \
  NS_IMETHOD FolderVerifiedOnline(const nsACString & folderName, bool *_retval) override { return _to FolderVerifiedOnline(folderName, _retval); } \
  NS_IMETHOD SetCapability(uint64_t capability) override { return _to SetCapability(capability); } \
  NS_IMETHOD SetServerID(const nsACString & aServerID) override { return _to SetServerID(aServerID); } \
  NS_IMETHOD LoadNextQueuedUrl(nsIImapProtocol *protocol, bool *_retval) override { return _to LoadNextQueuedUrl(protocol, _retval); } \
  NS_IMETHOD PrepareToRetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel * *_retval) override { return _to PrepareToRetryUrl(imapUrl, _retval); } \
  NS_IMETHOD SuspendUrl(nsIImapUrl *aImapUrl) override { return _to SuspendUrl(aImapUrl); } \
  NS_IMETHOD RetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel *channel) override { return _to RetryUrl(imapUrl, channel); } \
  NS_IMETHOD AbortQueuedUrls(void) override { return _to AbortQueuedUrls(); } \
  NS_IMETHOD GetImapStringByName(const char * msgName, nsAString & _retval) override { return _to GetImapStringByName(msgName, _retval); } \
  NS_IMETHOD PromptLoginFailed(nsIMsgWindow *aMsgWindow, int32_t *_retval) override { return _to PromptLoginFailed(aMsgWindow, _retval); } \
  NS_IMETHOD FEAlert(const nsAString & aAlertString, nsIMsgMailNewsUrl *aUrl) override { return _to FEAlert(aAlertString, aUrl); } \
  NS_IMETHOD FEAlertWithName(const char * aMsgName, nsIMsgMailNewsUrl *aUrl) override { return _to FEAlertWithName(aMsgName, aUrl); } \
  NS_IMETHOD FEAlertFromServer(const nsACString & aServerString, nsIMsgMailNewsUrl *aUrl) override { return _to FEAlertFromServer(aServerString, aUrl); } \
  NS_IMETHOD CommitNamespaces(void) override { return _to CommitNamespaces(); } \
  NS_IMETHOD AsyncGetPassword(nsIImapProtocol *aProtocol, bool aNewPasswordRequested, nsACString & aPassword) override { return _to AsyncGetPassword(aProtocol, aNewPasswordRequested, aPassword); } \
  NS_IMETHOD GetUserAuthenticated(bool *aUserAuthenticated) override { return _to GetUserAuthenticated(aUserAuthenticated); } \
  NS_IMETHOD SetUserAuthenticated(bool aUserAuthenticated) override { return _to SetUserAuthenticated(aUserAuthenticated); } \
  NS_IMETHOD SetMailServerUrls(const nsACString & manageMailAccount, const nsACString & manageLists, const nsACString & manageFilters) override { return _to SetMailServerUrls(manageMailAccount, manageLists, manageFilters); } \
  NS_IMETHOD UpdateTrySTARTTLSPref(bool aSucceeded) override { return _to UpdateTrySTARTTLSPref(aSucceeded); } \
  NS_IMETHOD GetArbitraryHeaders(nsACString & aArbitraryHeaders) override { return _to GetArbitraryHeaders(aArbitraryHeaders); } \
  NS_IMETHOD ForgetPassword(void) override { return _to ForgetPassword(); } \
  NS_IMETHOD GetShowAttachmentsInline(bool *aShowAttachmentsInline) override { return _to GetShowAttachmentsInline(aShowAttachmentsInline); } \
  NS_IMETHOD CramMD5Hash(const char * decodedChallenge, const char * key, char * *_retval) override { return _to CramMD5Hash(decodedChallenge, key, _retval); } \
  NS_IMETHOD GetLoginUsername(nsACString & aLoginUsername) override { return _to GetLoginUsername(aLoginUsername); } \
  NS_IMETHOD GetOriginalUsername(nsACString & aOriginalUsername) override { return _to GetOriginalUsername(aOriginalUsername); } \
  NS_IMETHOD GetServerKey(nsACString & aServerKey) override { return _to GetServerKey(aServerKey); } \
  NS_IMETHOD GetServerPassword(nsACString & aServerPassword) override { return _to GetServerPassword(aServerPassword); } \
  NS_IMETHOD RemoveServerConnection(nsIImapProtocol *aProtocol) override { return _to RemoveServerConnection(aProtocol); } \
  NS_IMETHOD GetServerShuttingDown(bool *aServerShuttingDown) override { return _to GetServerShuttingDown(aServerShuttingDown); } \
  NS_IMETHOD ResetServerConnection(const nsACString & aFolderName) override { return _to ResetServerConnection(aFolderName); } \
  NS_IMETHOD SetServerDoingLsub(bool aDoingLsub) override { return _to SetServerDoingLsub(aDoingLsub); } \
  NS_IMETHOD SetServerForceSelect(const nsACString & forceSelect) override { return _to SetServerForceSelect(forceSelect); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIIMAPSERVERSINK(_to) \
  NS_IMETHOD PossibleImapMailbox(const nsACString & folderPath, char hierarchyDelimiter, int32_t boxFlags, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->PossibleImapMailbox(folderPath, hierarchyDelimiter, boxFlags, _retval); } \
  NS_IMETHOD FolderNeedsACLInitialized(const nsACString & folderPath, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FolderNeedsACLInitialized(folderPath, _retval); } \
  NS_IMETHOD AddFolderRights(const nsACString & folderPath, const nsACString & userName, const nsACString & rights) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddFolderRights(folderPath, userName, rights); } \
  NS_IMETHOD RefreshFolderRights(const nsACString & folderPath) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RefreshFolderRights(folderPath); } \
  NS_IMETHOD DiscoveryDone(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DiscoveryDone(); } \
  NS_IMETHOD OnlineFolderDelete(const nsACString & folderName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OnlineFolderDelete(folderName); } \
  NS_IMETHOD OnlineFolderCreateFailed(const nsACString & aFolderName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OnlineFolderCreateFailed(aFolderName); } \
  NS_IMETHOD OnlineFolderRename(nsIMsgWindow *msgWindow, const nsACString & oldName, const nsACString & newName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->OnlineFolderRename(msgWindow, oldName, newName); } \
  NS_IMETHOD FolderIsNoSelect(const nsACString & folderName, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FolderIsNoSelect(folderName, _retval); } \
  NS_IMETHOD SetFolderAdminURL(const nsACString & folderName, const nsACString & adminUrl) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFolderAdminURL(folderName, adminUrl); } \
  NS_IMETHOD FolderVerifiedOnline(const nsACString & folderName, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FolderVerifiedOnline(folderName, _retval); } \
  NS_IMETHOD SetCapability(uint64_t capability) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCapability(capability); } \
  NS_IMETHOD SetServerID(const nsACString & aServerID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServerID(aServerID); } \
  NS_IMETHOD LoadNextQueuedUrl(nsIImapProtocol *protocol, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->LoadNextQueuedUrl(protocol, _retval); } \
  NS_IMETHOD PrepareToRetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->PrepareToRetryUrl(imapUrl, _retval); } \
  NS_IMETHOD SuspendUrl(nsIImapUrl *aImapUrl) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SuspendUrl(aImapUrl); } \
  NS_IMETHOD RetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel *channel) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RetryUrl(imapUrl, channel); } \
  NS_IMETHOD AbortQueuedUrls(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AbortQueuedUrls(); } \
  NS_IMETHOD GetImapStringByName(const char * msgName, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetImapStringByName(msgName, _retval); } \
  NS_IMETHOD PromptLoginFailed(nsIMsgWindow *aMsgWindow, int32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->PromptLoginFailed(aMsgWindow, _retval); } \
  NS_IMETHOD FEAlert(const nsAString & aAlertString, nsIMsgMailNewsUrl *aUrl) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FEAlert(aAlertString, aUrl); } \
  NS_IMETHOD FEAlertWithName(const char * aMsgName, nsIMsgMailNewsUrl *aUrl) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FEAlertWithName(aMsgName, aUrl); } \
  NS_IMETHOD FEAlertFromServer(const nsACString & aServerString, nsIMsgMailNewsUrl *aUrl) override { return !_to ? NS_ERROR_NULL_POINTER : _to->FEAlertFromServer(aServerString, aUrl); } \
  NS_IMETHOD CommitNamespaces(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CommitNamespaces(); } \
  NS_IMETHOD AsyncGetPassword(nsIImapProtocol *aProtocol, bool aNewPasswordRequested, nsACString & aPassword) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AsyncGetPassword(aProtocol, aNewPasswordRequested, aPassword); } \
  NS_IMETHOD GetUserAuthenticated(bool *aUserAuthenticated) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserAuthenticated(aUserAuthenticated); } \
  NS_IMETHOD SetUserAuthenticated(bool aUserAuthenticated) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetUserAuthenticated(aUserAuthenticated); } \
  NS_IMETHOD SetMailServerUrls(const nsACString & manageMailAccount, const nsACString & manageLists, const nsACString & manageFilters) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMailServerUrls(manageMailAccount, manageLists, manageFilters); } \
  NS_IMETHOD UpdateTrySTARTTLSPref(bool aSucceeded) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UpdateTrySTARTTLSPref(aSucceeded); } \
  NS_IMETHOD GetArbitraryHeaders(nsACString & aArbitraryHeaders) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetArbitraryHeaders(aArbitraryHeaders); } \
  NS_IMETHOD ForgetPassword(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ForgetPassword(); } \
  NS_IMETHOD GetShowAttachmentsInline(bool *aShowAttachmentsInline) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetShowAttachmentsInline(aShowAttachmentsInline); } \
  NS_IMETHOD CramMD5Hash(const char * decodedChallenge, const char * key, char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CramMD5Hash(decodedChallenge, key, _retval); } \
  NS_IMETHOD GetLoginUsername(nsACString & aLoginUsername) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoginUsername(aLoginUsername); } \
  NS_IMETHOD GetOriginalUsername(nsACString & aOriginalUsername) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginalUsername(aOriginalUsername); } \
  NS_IMETHOD GetServerKey(nsACString & aServerKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerKey(aServerKey); } \
  NS_IMETHOD GetServerPassword(nsACString & aServerPassword) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerPassword(aServerPassword); } \
  NS_IMETHOD RemoveServerConnection(nsIImapProtocol *aProtocol) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveServerConnection(aProtocol); } \
  NS_IMETHOD GetServerShuttingDown(bool *aServerShuttingDown) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetServerShuttingDown(aServerShuttingDown); } \
  NS_IMETHOD ResetServerConnection(const nsACString & aFolderName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ResetServerConnection(aFolderName); } \
  NS_IMETHOD SetServerDoingLsub(bool aDoingLsub) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServerDoingLsub(aDoingLsub); } \
  NS_IMETHOD SetServerForceSelect(const nsACString & forceSelect) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetServerForceSelect(forceSelect); } 

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

/* Header file */
class nsImapServerSink : public nsIImapServerSink
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIIMAPSERVERSINK

  nsImapServerSink();

private:
  ~nsImapServerSink();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsImapServerSink, nsIImapServerSink)

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

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

/* boolean possibleImapMailbox (in ACString folderPath, in char hierarchyDelimiter, in long boxFlags); */
NS_IMETHODIMP nsImapServerSink::PossibleImapMailbox(const nsACString & folderPath, char hierarchyDelimiter, int32_t boxFlags, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean folderNeedsACLInitialized (in ACString folderPath); */
NS_IMETHODIMP nsImapServerSink::FolderNeedsACLInitialized(const nsACString & folderPath, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addFolderRights (in ACString folderPath, in ACString userName, in ACString rights); */
NS_IMETHODIMP nsImapServerSink::AddFolderRights(const nsACString & folderPath, const nsACString & userName, const nsACString & rights)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void refreshFolderRights (in ACString folderPath); */
NS_IMETHODIMP nsImapServerSink::RefreshFolderRights(const nsACString & folderPath)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void discoveryDone (); */
NS_IMETHODIMP nsImapServerSink::DiscoveryDone()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onlineFolderDelete (in ACString folderName); */
NS_IMETHODIMP nsImapServerSink::OnlineFolderDelete(const nsACString & folderName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onlineFolderCreateFailed (in ACString aFolderName); */
NS_IMETHODIMP nsImapServerSink::OnlineFolderCreateFailed(const nsACString & aFolderName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void onlineFolderRename (in nsIMsgWindow msgWindow, in ACString oldName, in ACString newName); */
NS_IMETHODIMP nsImapServerSink::OnlineFolderRename(nsIMsgWindow *msgWindow, const nsACString & oldName, const nsACString & newName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean folderIsNoSelect (in ACString folderName); */
NS_IMETHODIMP nsImapServerSink::FolderIsNoSelect(const nsACString & folderName, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setFolderAdminURL (in ACString folderName, in ACString adminUrl); */
NS_IMETHODIMP nsImapServerSink::SetFolderAdminURL(const nsACString & folderName, const nsACString & adminUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean folderVerifiedOnline (in ACString folderName); */
NS_IMETHODIMP nsImapServerSink::FolderVerifiedOnline(const nsACString & folderName, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setCapability (in unsigned long long capability); */
NS_IMETHODIMP nsImapServerSink::SetCapability(uint64_t capability)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setServerID (in ACString aServerID); */
NS_IMETHODIMP nsImapServerSink::SetServerID(const nsACString & aServerID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean loadNextQueuedUrl (in nsIImapProtocol protocol); */
NS_IMETHODIMP nsImapServerSink::LoadNextQueuedUrl(nsIImapProtocol *protocol, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIImapMockChannel prepareToRetryUrl (in nsIImapUrl imapUrl); */
NS_IMETHODIMP nsImapServerSink::PrepareToRetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void suspendUrl (in nsIImapUrl aImapUrl); */
NS_IMETHODIMP nsImapServerSink::SuspendUrl(nsIImapUrl *aImapUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void retryUrl (in nsIImapUrl imapUrl, in nsIImapMockChannel channel); */
NS_IMETHODIMP nsImapServerSink::RetryUrl(nsIImapUrl *imapUrl, nsIImapMockChannel *channel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void abortQueuedUrls (); */
NS_IMETHODIMP nsImapServerSink::AbortQueuedUrls()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getImapStringByName (in string msgName); */
NS_IMETHODIMP nsImapServerSink::GetImapStringByName(const char * msgName, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* int32_t promptLoginFailed (in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsImapServerSink::PromptLoginFailed(nsIMsgWindow *aMsgWindow, int32_t *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fEAlert (in AString aAlertString, in nsIMsgMailNewsUrl aUrl); */
NS_IMETHODIMP nsImapServerSink::FEAlert(const nsAString & aAlertString, nsIMsgMailNewsUrl *aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fEAlertWithName (in string aMsgName, in nsIMsgMailNewsUrl aUrl); */
NS_IMETHODIMP nsImapServerSink::FEAlertWithName(const char * aMsgName, nsIMsgMailNewsUrl *aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void fEAlertFromServer (in ACString aServerString, in nsIMsgMailNewsUrl aUrl); */
NS_IMETHODIMP nsImapServerSink::FEAlertFromServer(const nsACString & aServerString, nsIMsgMailNewsUrl *aUrl)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void commitNamespaces (); */
NS_IMETHODIMP nsImapServerSink::CommitNamespaces()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void asyncGetPassword (in nsIImapProtocol aProtocol, in boolean aNewPasswordRequested, out ACString aPassword); */
NS_IMETHODIMP nsImapServerSink::AsyncGetPassword(nsIImapProtocol *aProtocol, bool aNewPasswordRequested, nsACString & aPassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean userAuthenticated; */
NS_IMETHODIMP nsImapServerSink::GetUserAuthenticated(bool *aUserAuthenticated)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsImapServerSink::SetUserAuthenticated(bool aUserAuthenticated)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setMailServerUrls (in ACString manageMailAccount, in ACString manageLists, in ACString manageFilters); */
NS_IMETHODIMP nsImapServerSink::SetMailServerUrls(const nsACString & manageMailAccount, const nsACString & manageLists, const nsACString & manageFilters)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void UpdateTrySTARTTLSPref (in boolean aSucceeded); */
NS_IMETHODIMP nsImapServerSink::UpdateTrySTARTTLSPref(bool aSucceeded)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString arbitraryHeaders; */
NS_IMETHODIMP nsImapServerSink::GetArbitraryHeaders(nsACString & aArbitraryHeaders)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void forgetPassword (); */
NS_IMETHODIMP nsImapServerSink::ForgetPassword()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean showAttachmentsInline; */
NS_IMETHODIMP nsImapServerSink::GetShowAttachmentsInline(bool *aShowAttachmentsInline)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string cramMD5Hash (in string decodedChallenge, in string key); */
NS_IMETHODIMP nsImapServerSink::CramMD5Hash(const char * decodedChallenge, const char * key, char * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString loginUsername; */
NS_IMETHODIMP nsImapServerSink::GetLoginUsername(nsACString & aLoginUsername)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString originalUsername; */
NS_IMETHODIMP nsImapServerSink::GetOriginalUsername(nsACString & aOriginalUsername)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString serverKey; */
NS_IMETHODIMP nsImapServerSink::GetServerKey(nsACString & aServerKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString serverPassword; */
NS_IMETHODIMP nsImapServerSink::GetServerPassword(nsACString & aServerPassword)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeServerConnection (in nsIImapProtocol aProtocol); */
NS_IMETHODIMP nsImapServerSink::RemoveServerConnection(nsIImapProtocol *aProtocol)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute boolean serverShuttingDown; */
NS_IMETHODIMP nsImapServerSink::GetServerShuttingDown(bool *aServerShuttingDown)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void resetServerConnection (in ACString aFolderName); */
NS_IMETHODIMP nsImapServerSink::ResetServerConnection(const nsACString & aFolderName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setServerDoingLsub (in boolean aDoingLsub); */
NS_IMETHODIMP nsImapServerSink::SetServerDoingLsub(bool aDoingLsub)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetServerForceSelect (in ACString forceSelect); */
NS_IMETHODIMP nsImapServerSink::SetServerForceSelect(const nsACString & forceSelect)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIImapServerSink_h__ */
