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

#ifndef __gen_nsIReplacedHttpResponse_h__
#define __gen_nsIReplacedHttpResponse_h__


#include "nsISupports.h"

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


/* starting interface:    nsIReplacedHttpResponse */
#define NS_IREPLACEDHTTPRESPONSE_IID_STR "067cb318-9b67-4442-9c1c-93e62dac8a7c"

#define NS_IREPLACEDHTTPRESPONSE_IID \
  {0x067cb318, 0x9b67, 0x4442, \
    { 0x9c, 0x1c, 0x93, 0xe6, 0x2d, 0xac, 0x8a, 0x7c }}

class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIReplacedHttpResponse) nsIReplacedHttpResponse : public nsISupports {
 public:

  NS_INLINE_DECL_STATIC_IID(NS_IREPLACEDHTTPRESPONSE_IID)

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

  /* [must_use] void init (); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIReplacedHttpResponse_init)
  [[nodiscard]] NS_IMETHOD Init(void) = 0;

  /* [must_use] attribute ACString responseBody; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIReplacedHttpResponse_responseBody)
  [[nodiscard]] NS_IMETHOD GetResponseBody(nsACString& aResponseBody) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsIReplacedHttpResponse_responseBody)
  [[nodiscard]] NS_IMETHOD SetResponseBody(const nsACString& aResponseBody) = 0;

  /* [must_use] attribute unsigned long responseStatus; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIReplacedHttpResponse_responseStatus)
  [[nodiscard]] NS_IMETHOD GetResponseStatus(uint32_t *aResponseStatus) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsIReplacedHttpResponse_responseStatus)
  [[nodiscard]] NS_IMETHOD SetResponseStatus(uint32_t aResponseStatus) = 0;

  /* [must_use] attribute ACString responseStatusText; */
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIReplacedHttpResponse_responseStatusText)
  [[nodiscard]] NS_IMETHOD GetResponseStatusText(nsACString& aResponseStatusText) = 0;
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsIReplacedHttpResponse_responseStatusText)
  [[nodiscard]] NS_IMETHOD SetResponseStatusText(const nsACString& aResponseStatusText) = 0;

  /* [must_use] void visitResponseHeaders (in nsIHttpHeaderVisitor visitor); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIReplacedHttpResponse_visitResponseHeaders)
  [[nodiscard]] NS_IMETHOD VisitResponseHeaders(nsIHttpHeaderVisitor *visitor) = 0;

  /* [must_use] void setResponseHeader (in ACString header, in ACString value, in boolean merge); */
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIReplacedHttpResponse_setResponseHeader)
  [[nodiscard]] NS_IMETHOD SetResponseHeader(const nsACString& header, const nsACString& value, bool merge) = 0;

};


/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIREPLACEDHTTPRESPONSE \
  [[nodiscard]] NS_IMETHOD Init(void) override; \
  [[nodiscard]] NS_IMETHOD GetResponseBody(nsACString& aResponseBody) override; \
  [[nodiscard]] NS_IMETHOD SetResponseBody(const nsACString& aResponseBody) override; \
  [[nodiscard]] NS_IMETHOD GetResponseStatus(uint32_t *aResponseStatus) override; \
  [[nodiscard]] NS_IMETHOD SetResponseStatus(uint32_t aResponseStatus) override; \
  [[nodiscard]] NS_IMETHOD GetResponseStatusText(nsACString& aResponseStatusText) override; \
  [[nodiscard]] NS_IMETHOD SetResponseStatusText(const nsACString& aResponseStatusText) override; \
  [[nodiscard]] NS_IMETHOD VisitResponseHeaders(nsIHttpHeaderVisitor *visitor) override; \
  [[nodiscard]] NS_IMETHOD SetResponseHeader(const nsACString& header, const nsACString& value, bool merge) 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_NSIREPLACEDHTTPRESPONSE \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIReplacedHttpResponse_init)\
  [[nodiscard]] nsresult Init(void); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIReplacedHttpResponse_responseBody)\
  [[nodiscard]] nsresult GetResponseBody(nsACString& aResponseBody); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsIReplacedHttpResponse_responseBody)\
  [[nodiscard]] nsresult SetResponseBody(const nsACString& aResponseBody); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIReplacedHttpResponse_responseStatus)\
  [[nodiscard]] nsresult GetResponseStatus(uint32_t *aResponseStatus); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsIReplacedHttpResponse_responseStatus)\
  [[nodiscard]] nsresult SetResponseStatus(uint32_t aResponseStatus); \
  MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIReplacedHttpResponse_responseStatusText)\
  [[nodiscard]] nsresult GetResponseStatusText(nsACString& aResponseStatusText); \
  MOZ_BINDING(binding_to, idl, setter, XPIDL_nsIReplacedHttpResponse_responseStatusText)\
  [[nodiscard]] nsresult SetResponseStatusText(const nsACString& aResponseStatusText); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIReplacedHttpResponse_visitResponseHeaders)\
  [[nodiscard]] nsresult VisitResponseHeaders(nsIHttpHeaderVisitor *visitor); \
  MOZ_BINDING(binding_to, idl, method, XPIDL_nsIReplacedHttpResponse_setResponseHeader)\
  [[nodiscard]] nsresult SetResponseHeader(const nsACString& header, const nsACString& value, bool merge); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIREPLACEDHTTPRESPONSE(_to) \
  [[nodiscard]] NS_IMETHOD Init(void) override { return _to Init(); } \
  [[nodiscard]] NS_IMETHOD GetResponseBody(nsACString& aResponseBody) override { return _to GetResponseBody(aResponseBody); } \
  [[nodiscard]] NS_IMETHOD SetResponseBody(const nsACString& aResponseBody) override { return _to SetResponseBody(aResponseBody); } \
  [[nodiscard]] NS_IMETHOD GetResponseStatus(uint32_t *aResponseStatus) override { return _to GetResponseStatus(aResponseStatus); } \
  [[nodiscard]] NS_IMETHOD SetResponseStatus(uint32_t aResponseStatus) override { return _to SetResponseStatus(aResponseStatus); } \
  [[nodiscard]] NS_IMETHOD GetResponseStatusText(nsACString& aResponseStatusText) override { return _to GetResponseStatusText(aResponseStatusText); } \
  [[nodiscard]] NS_IMETHOD SetResponseStatusText(const nsACString& aResponseStatusText) override { return _to SetResponseStatusText(aResponseStatusText); } \
  [[nodiscard]] NS_IMETHOD VisitResponseHeaders(nsIHttpHeaderVisitor *visitor) override { return _to VisitResponseHeaders(visitor); } \
  [[nodiscard]] NS_IMETHOD SetResponseHeader(const nsACString& header, const nsACString& value, bool merge) override { return _to SetResponseHeader(header, value, merge); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIREPLACEDHTTPRESPONSE(_to) \
  [[nodiscard]] NS_IMETHOD Init(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Init(); } \
  [[nodiscard]] NS_IMETHOD GetResponseBody(nsACString& aResponseBody) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetResponseBody(aResponseBody); } \
  [[nodiscard]] NS_IMETHOD SetResponseBody(const nsACString& aResponseBody) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetResponseBody(aResponseBody); } \
  [[nodiscard]] NS_IMETHOD GetResponseStatus(uint32_t *aResponseStatus) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetResponseStatus(aResponseStatus); } \
  [[nodiscard]] NS_IMETHOD SetResponseStatus(uint32_t aResponseStatus) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetResponseStatus(aResponseStatus); } \
  [[nodiscard]] NS_IMETHOD GetResponseStatusText(nsACString& aResponseStatusText) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetResponseStatusText(aResponseStatusText); } \
  [[nodiscard]] NS_IMETHOD SetResponseStatusText(const nsACString& aResponseStatusText) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetResponseStatusText(aResponseStatusText); } \
  [[nodiscard]] NS_IMETHOD VisitResponseHeaders(nsIHttpHeaderVisitor *visitor) override { return !_to ? NS_ERROR_NULL_POINTER : _to->VisitResponseHeaders(visitor); } \
  [[nodiscard]] NS_IMETHOD SetResponseHeader(const nsACString& header, const nsACString& value, bool merge) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetResponseHeader(header, value, merge); } 


#endif /* __gen_nsIReplacedHttpResponse_h__ */
