/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM $SRCDIR/netwerk/protocol/http/nsIHttpAuthCache.idl
 */

#ifndef __gen_nsIHttpAuthCache_h__
#define __gen_nsIHttpAuthCache_h__


#include "nsISupports.h"

#include "nsIHttpAuthEntry.h"

#include "nsTArray.h"

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

/* starting interface:    nsIHttpAuthCache */
#define NS_IHTTPAUTHCACHE_IID_STR "6ef2115c-7c67-41de-8de3-f7d412660a03"

#define NS_IHTTPAUTHCACHE_IID \
  {0x6ef2115c, 0x7c67, 0x41de, \
    { 0x8d, 0xe3, 0xf7, 0xd4, 0x12, 0x66, 0x0a, 0x03 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIHttpAuthCache) nsIHttpAuthCache : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IHTTPAUTHCACHE_IID)

  /* Used by ToJSValue to check which scriptable interface is implemented. */
  using ScriptableInterfaceType = nsIHttpAuthCache;

  /* Array<nsIHttpAuthEntry> getEntries (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIHttpAuthCache_getEntries)
  NS_IMETHOD GetEntries(nsTArray<RefPtr<nsIHttpAuthEntry>>& _retval) = 0;

  /* void clearEntry (in nsIHttpAuthEntry entry); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIHttpAuthCache_clearEntry)
  NS_IMETHOD ClearEntry(nsIHttpAuthEntry *entry) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIHTTPAUTHCACHE \
  NS_IMETHOD GetEntries(nsTArray<RefPtr<nsIHttpAuthEntry>>& _retval) override; \
  NS_IMETHOD ClearEntry(nsIHttpAuthEntry *entry) 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_NSIHTTPAUTHCACHE \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIHttpAuthCache_getEntries)\
  nsresult GetEntries(nsTArray<RefPtr<nsIHttpAuthEntry>>& _retval); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIHttpAuthCache_clearEntry)\
  nsresult ClearEntry(nsIHttpAuthEntry *entry); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIHTTPAUTHCACHE(_to) \
  NS_IMETHOD GetEntries(nsTArray<RefPtr<nsIHttpAuthEntry>>& _retval) override { return _to GetEntries(_retval); } \
  NS_IMETHOD ClearEntry(nsIHttpAuthEntry *entry) override { return _to ClearEntry(entry); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIHTTPAUTHCACHE(_to) \
  NS_IMETHOD GetEntries(nsTArray<RefPtr<nsIHttpAuthEntry>>& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEntries(_retval); } \
  NS_IMETHOD ClearEntry(nsIHttpAuthEntry *entry) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearEntry(entry); } 


#endif /* __gen_nsIHttpAuthCache_h__ */
