/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM $SRCDIR/docshell/base/nsIRefreshURI.idl
 */

#ifndef __gen_nsIRefreshURI_h__
#define __gen_nsIRefreshURI_h__


#include "nsISupports.h"

#include "js/GCAnnotations.h"

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

class nsIPrincipal; /* forward declaration */

class nsIURI; /* forward declaration */


/* starting interface:    nsIRefreshURI */
#define NS_IREFRESHURI_IID_STR "a5e61a3c-51bd-45be-ac0c-e87b71860656"

#define NS_IREFRESHURI_IID \
  {0xa5e61a3c, 0x51bd, 0x45be, \
    { 0xac, 0x0c, 0xe8, 0x7b, 0x71, 0x86, 0x06, 0x56 }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIRefreshURI) nsIRefreshURI : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IREFRESHURI_IID)

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

  /* void refreshURI (in nsIURI aURI, in nsIPrincipal aPrincipal, in unsigned long aMillis); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIRefreshURI_refreshURI)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD RefreshURI(nsIURI *aURI, nsIPrincipal *aPrincipal, uint32_t aMillis) = 0;

  /* [can_run_script] void forceRefreshURI (in nsIURI aURI, in nsIPrincipal aPrincipal, in unsigned long aMillis); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIRefreshURI_forceRefreshURI)
  JS_HAZ_CAN_RUN_SCRIPT MOZ_CAN_RUN_SCRIPT NS_IMETHOD ForceRefreshURI(nsIURI *aURI, nsIPrincipal *aPrincipal, uint32_t aMillis) = 0;

  /* void cancelRefreshURITimers (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIRefreshURI_cancelRefreshURITimers)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD CancelRefreshURITimers(void) = 0;

  /* readonly attribute boolean refreshPending; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIRefreshURI_refreshPending)
  JS_HAZ_CAN_RUN_SCRIPT NS_IMETHOD GetRefreshPending(bool *aRefreshPending) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIREFRESHURI \
  NS_IMETHOD RefreshURI(nsIURI *aURI, nsIPrincipal *aPrincipal, uint32_t aMillis) override; \
  MOZ_CAN_RUN_SCRIPT NS_IMETHOD ForceRefreshURI(nsIURI *aURI, nsIPrincipal *aPrincipal, uint32_t aMillis) override; \
  NS_IMETHOD CancelRefreshURITimers(void) override; \
  NS_IMETHOD GetRefreshPending(bool *aRefreshPending) 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_NSIREFRESHURI \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIRefreshURI_refreshURI)\
  nsresult RefreshURI(nsIURI *aURI, nsIPrincipal *aPrincipal, uint32_t aMillis); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIRefreshURI_forceRefreshURI)\
  MOZ_CAN_RUN_SCRIPT nsresult ForceRefreshURI(nsIURI *aURI, nsIPrincipal *aPrincipal, uint32_t aMillis); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIRefreshURI_cancelRefreshURITimers)\
  nsresult CancelRefreshURITimers(void); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIRefreshURI_refreshPending)\
  nsresult GetRefreshPending(bool *aRefreshPending); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIREFRESHURI(_to) \
  NS_IMETHOD RefreshURI(nsIURI *aURI, nsIPrincipal *aPrincipal, uint32_t aMillis) override { return _to RefreshURI(aURI, aPrincipal, aMillis); } \
  MOZ_CAN_RUN_SCRIPT NS_IMETHOD ForceRefreshURI(nsIURI *aURI, nsIPrincipal *aPrincipal, uint32_t aMillis) override { return _to ForceRefreshURI(aURI, aPrincipal, aMillis); } \
  NS_IMETHOD CancelRefreshURITimers(void) override { return _to CancelRefreshURITimers(); } \
  NS_IMETHOD GetRefreshPending(bool *aRefreshPending) override { return _to GetRefreshPending(aRefreshPending); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIREFRESHURI(_to) \
  NS_IMETHOD RefreshURI(nsIURI *aURI, nsIPrincipal *aPrincipal, uint32_t aMillis) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RefreshURI(aURI, aPrincipal, aMillis); } \
  MOZ_CAN_RUN_SCRIPT NS_IMETHOD ForceRefreshURI(nsIURI *aURI, nsIPrincipal *aPrincipal, uint32_t aMillis) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ForceRefreshURI(aURI, aPrincipal, aMillis); } \
  NS_IMETHOD CancelRefreshURITimers(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CancelRefreshURITimers(); } \
  NS_IMETHOD GetRefreshPending(bool *aRefreshPending) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRefreshPending(aRefreshPending); } 


#endif /* __gen_nsIRefreshURI_h__ */
