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

#ifndef __gen_nsIHTTPChannel_h__
#define __gen_nsIHTTPChannel_h__

#include "nsIChannel.h"

class nsIHTTPEventSink; /* forward declaration */

class nsIStreamListener; /* forward declaration */

class nsISimpleEnumerator; /* forward declaration */

class nsIAtom; /* forward declaration */

class nsIInputStream; /* forward declaration */

class nsIURI; /* forward declaration */

class nsIPrompt; /* forward declaration */


/* starting interface:    nsIHTTPChannel */
#define NS_IHTTPCHANNEL_IID_STR "35c00430-1938-11d3-933a-000064657374"

#define NS_IHTTPCHANNEL_IID \
  {0x35c00430, 0x1938, 0x11d3, \
    { 0x93, 0x3a, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}

class NS_NO_VTABLE nsIHTTPChannel : public nsIChannel {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IHTTPCHANNEL_IID)

  /**
     * More load attributes for http.
     */
  enum { BYPASS_CACHE = 2U };

  enum { BYPASS_PROXY = 4U };

  /**
      * Referrer sending policy.
      */
  enum { REFERRER_NONE = 0U };

  enum { REFERRER_LINK_CLICK = 1U };

  enum { REFERRER_INLINES = 2U };

  enum { REFERRER_NON_HTTP = 3U };

  /* string GetRequestHeader (in nsIAtom headerAtom); */
  NS_IMETHOD GetRequestHeader(nsIAtom *headerAtom, char **_retval) = 0;

  /* void SetRequestHeader (in nsIAtom headerAtom, in string value); */
  NS_IMETHOD SetRequestHeader(nsIAtom *headerAtom, const char *value) = 0;

  /* nsISimpleEnumerator GetRequestHeaderEnumerator (); */
  NS_IMETHOD GetRequestHeaderEnumerator(nsISimpleEnumerator **_retval) = 0;

  /* void SetRequestMethod (in nsIAtom methodAtom); */
  NS_IMETHOD SetRequestMethod(nsIAtom *methodAtom) = 0;

  /* void GetRequestMethod (out nsIAtom methodAtom); */
  NS_IMETHOD GetRequestMethod(nsIAtom **methodAtom) = 0;

  /* string GetResponseHeader (in nsIAtom headerAtom); */
  NS_IMETHOD GetResponseHeader(nsIAtom *headerAtom, char **_retval) = 0;

  /* void SetResponseHeader (in nsIAtom headerAtom, in string headerValue); */
  NS_IMETHOD SetResponseHeader(nsIAtom *headerAtom, const char *headerValue) = 0;

  /* nsISimpleEnumerator GetResponseHeaderEnumerator (); */
  NS_IMETHOD GetResponseHeaderEnumerator(nsISimpleEnumerator **_retval) = 0;

  /* attribute nsIInputStream UploadStream; */
  NS_IMETHOD GetUploadStream(nsIInputStream * *aUploadStream) = 0;
  NS_IMETHOD SetUploadStream(nsIInputStream * aUploadStream) = 0;

  /* void SetReferrer (in nsIURI referrer, in unsigned long referrerLevel); */
  NS_IMETHOD SetReferrer(nsIURI *referrer, PRUint32 referrerLevel) = 0;

  /* readonly attribute nsIURI referrer; */
  NS_IMETHOD GetReferrer(nsIURI * *aReferrer) = 0;

  /* readonly attribute unsigned long responseStatus; */
  NS_IMETHOD GetResponseStatus(PRUint32 *aResponseStatus) = 0;

  /* readonly attribute string responseString; */
  NS_IMETHOD GetResponseString(char * *aResponseString) = 0;

  /* readonly attribute nsIHTTPEventSink eventSink; */
  NS_IMETHOD GetEventSink(nsIHTTPEventSink * *aEventSink) = 0;

  /* readonly attribute nsIStreamListener responseDataListener; */
  NS_IMETHOD GetResponseDataListener(nsIStreamListener * *aResponseDataListener) = 0;

  /* readonly attribute string charset; */
  NS_IMETHOD GetCharset(char * *aCharset) = 0;

  /* attribute PRBool authTriedWithPrehost; */
  NS_IMETHOD GetAuthTriedWithPrehost(PRBool *aAuthTriedWithPrehost) = 0;
  NS_IMETHOD SetAuthTriedWithPrehost(PRBool aAuthTriedWithPrehost) = 0;

  /* attribute PRBool applyConversion; */
  NS_IMETHOD GetApplyConversion(PRBool *aApplyConversion) = 0;
  NS_IMETHOD SetApplyConversion(PRBool aApplyConversion) = 0;

  /* readonly attribute PRBool usingProxy; */
  NS_IMETHOD GetUsingProxy(PRBool *aUsingProxy) = 0;

  /* readonly attribute PRBool usingTransparentProxy; */
  NS_IMETHOD GetUsingTransparentProxy(PRBool *aUsingTransparentProxy) = 0;

  /* readonly attribute nsIPrompt prompter; */
  NS_IMETHOD GetPrompter(nsIPrompt * *aPrompter) = 0;

  /* attribute string proxyRequestURI; */
  NS_IMETHOD GetProxyRequestURI(char * *aProxyRequestURI) = 0;
  NS_IMETHOD SetProxyRequestURI(const char * aProxyRequestURI) = 0;

  /**
	 * This is a kludge which tells the channel to create a separate thread with the
	 * even queue for OpenInputStream or not
	 */
  /* attribute boolean openInputStreamHasEventQueue; */
  NS_IMETHOD GetOpenInputStreamHasEventQueue(PRBool *aOpenInputStreamHasEventQueue) = 0;
  NS_IMETHOD SetOpenInputStreamHasEventQueue(PRBool aOpenInputStreamHasEventQueue) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIHTTPCHANNEL \
  NS_IMETHOD GetRequestHeader(nsIAtom *headerAtom, char **_retval); \
  NS_IMETHOD SetRequestHeader(nsIAtom *headerAtom, const char *value); \
  NS_IMETHOD GetRequestHeaderEnumerator(nsISimpleEnumerator **_retval); \
  NS_IMETHOD SetRequestMethod(nsIAtom *methodAtom); \
  NS_IMETHOD GetRequestMethod(nsIAtom **methodAtom); \
  NS_IMETHOD GetResponseHeader(nsIAtom *headerAtom, char **_retval); \
  NS_IMETHOD SetResponseHeader(nsIAtom *headerAtom, const char *headerValue); \
  NS_IMETHOD GetResponseHeaderEnumerator(nsISimpleEnumerator **_retval); \
  NS_IMETHOD GetUploadStream(nsIInputStream * *aUploadStream); \
  NS_IMETHOD SetUploadStream(nsIInputStream * aUploadStream); \
  NS_IMETHOD SetReferrer(nsIURI *referrer, PRUint32 referrerLevel); \
  NS_IMETHOD GetReferrer(nsIURI * *aReferrer); \
  NS_IMETHOD GetResponseStatus(PRUint32 *aResponseStatus); \
  NS_IMETHOD GetResponseString(char * *aResponseString); \
  NS_IMETHOD GetEventSink(nsIHTTPEventSink * *aEventSink); \
  NS_IMETHOD GetResponseDataListener(nsIStreamListener * *aResponseDataListener); \
  NS_IMETHOD GetCharset(char * *aCharset); \
  NS_IMETHOD GetAuthTriedWithPrehost(PRBool *aAuthTriedWithPrehost); \
  NS_IMETHOD SetAuthTriedWithPrehost(PRBool aAuthTriedWithPrehost); \
  NS_IMETHOD GetApplyConversion(PRBool *aApplyConversion); \
  NS_IMETHOD SetApplyConversion(PRBool aApplyConversion); \
  NS_IMETHOD GetUsingProxy(PRBool *aUsingProxy); \
  NS_IMETHOD GetUsingTransparentProxy(PRBool *aUsingTransparentProxy); \
  NS_IMETHOD GetPrompter(nsIPrompt * *aPrompter); \
  NS_IMETHOD GetProxyRequestURI(char * *aProxyRequestURI); \
  NS_IMETHOD SetProxyRequestURI(const char * aProxyRequestURI); \
  NS_IMETHOD GetOpenInputStreamHasEventQueue(PRBool *aOpenInputStreamHasEventQueue); \
  NS_IMETHOD SetOpenInputStreamHasEventQueue(PRBool aOpenInputStreamHasEventQueue); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIHTTPCHANNEL(_to) \
  NS_IMETHOD GetRequestHeader(nsIAtom *headerAtom, char **_retval) { return _to ## GetRequestHeader(headerAtom, _retval); } \
  NS_IMETHOD SetRequestHeader(nsIAtom *headerAtom, const char *value) { return _to ## SetRequestHeader(headerAtom, value); } \
  NS_IMETHOD GetRequestHeaderEnumerator(nsISimpleEnumerator **_retval) { return _to ## GetRequestHeaderEnumerator(_retval); } \
  NS_IMETHOD SetRequestMethod(nsIAtom *methodAtom) { return _to ## SetRequestMethod(methodAtom); } \
  NS_IMETHOD GetRequestMethod(nsIAtom **methodAtom) { return _to ## GetRequestMethod(methodAtom); } \
  NS_IMETHOD GetResponseHeader(nsIAtom *headerAtom, char **_retval) { return _to ## GetResponseHeader(headerAtom, _retval); } \
  NS_IMETHOD SetResponseHeader(nsIAtom *headerAtom, const char *headerValue) { return _to ## SetResponseHeader(headerAtom, headerValue); } \
  NS_IMETHOD GetResponseHeaderEnumerator(nsISimpleEnumerator **_retval) { return _to ## GetResponseHeaderEnumerator(_retval); } \
  NS_IMETHOD GetUploadStream(nsIInputStream * *aUploadStream) { return _to ## GetUploadStream(aUploadStream); } \
  NS_IMETHOD SetUploadStream(nsIInputStream * aUploadStream) { return _to ## SetUploadStream(aUploadStream); } \
  NS_IMETHOD SetReferrer(nsIURI *referrer, PRUint32 referrerLevel) { return _to ## SetReferrer(referrer, referrerLevel); } \
  NS_IMETHOD GetReferrer(nsIURI * *aReferrer) { return _to ## GetReferrer(aReferrer); } \
  NS_IMETHOD GetResponseStatus(PRUint32 *aResponseStatus) { return _to ## GetResponseStatus(aResponseStatus); } \
  NS_IMETHOD GetResponseString(char * *aResponseString) { return _to ## GetResponseString(aResponseString); } \
  NS_IMETHOD GetEventSink(nsIHTTPEventSink * *aEventSink) { return _to ## GetEventSink(aEventSink); } \
  NS_IMETHOD GetResponseDataListener(nsIStreamListener * *aResponseDataListener) { return _to ## GetResponseDataListener(aResponseDataListener); } \
  NS_IMETHOD GetCharset(char * *aCharset) { return _to ## GetCharset(aCharset); } \
  NS_IMETHOD GetAuthTriedWithPrehost(PRBool *aAuthTriedWithPrehost) { return _to ## GetAuthTriedWithPrehost(aAuthTriedWithPrehost); } \
  NS_IMETHOD SetAuthTriedWithPrehost(PRBool aAuthTriedWithPrehost) { return _to ## SetAuthTriedWithPrehost(aAuthTriedWithPrehost); } \
  NS_IMETHOD GetApplyConversion(PRBool *aApplyConversion) { return _to ## GetApplyConversion(aApplyConversion); } \
  NS_IMETHOD SetApplyConversion(PRBool aApplyConversion) { return _to ## SetApplyConversion(aApplyConversion); } \
  NS_IMETHOD GetUsingProxy(PRBool *aUsingProxy) { return _to ## GetUsingProxy(aUsingProxy); } \
  NS_IMETHOD GetUsingTransparentProxy(PRBool *aUsingTransparentProxy) { return _to ## GetUsingTransparentProxy(aUsingTransparentProxy); } \
  NS_IMETHOD GetPrompter(nsIPrompt * *aPrompter) { return _to ## GetPrompter(aPrompter); } \
  NS_IMETHOD GetProxyRequestURI(char * *aProxyRequestURI) { return _to ## GetProxyRequestURI(aProxyRequestURI); } \
  NS_IMETHOD SetProxyRequestURI(const char * aProxyRequestURI) { return _to ## SetProxyRequestURI(aProxyRequestURI); } \
  NS_IMETHOD GetOpenInputStreamHasEventQueue(PRBool *aOpenInputStreamHasEventQueue) { return _to ## GetOpenInputStreamHasEventQueue(aOpenInputStreamHasEventQueue); } \
  NS_IMETHOD SetOpenInputStreamHasEventQueue(PRBool aOpenInputStreamHasEventQueue) { return _to ## SetOpenInputStreamHasEventQueue(aOpenInputStreamHasEventQueue); } 

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

/* Header file */
class nsHTTPChannel : public nsIHTTPChannel
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIHTTPCHANNEL

  nsHTTPChannel();
  virtual ~nsHTTPChannel();
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsHTTPChannel, nsIHTTPChannel)

nsHTTPChannel::nsHTTPChannel()
{
  NS_INIT_ISUPPORTS();
  /* member initializers and constructor code */
}

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

/* string GetRequestHeader (in nsIAtom headerAtom); */
NS_IMETHODIMP nsHTTPChannel::GetRequestHeader(nsIAtom *headerAtom, char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetRequestHeader (in nsIAtom headerAtom, in string value); */
NS_IMETHODIMP nsHTTPChannel::SetRequestHeader(nsIAtom *headerAtom, const char *value)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsISimpleEnumerator GetRequestHeaderEnumerator (); */
NS_IMETHODIMP nsHTTPChannel::GetRequestHeaderEnumerator(nsISimpleEnumerator **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetRequestMethod (in nsIAtom methodAtom); */
NS_IMETHODIMP nsHTTPChannel::SetRequestMethod(nsIAtom *methodAtom)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetRequestMethod (out nsIAtom methodAtom); */
NS_IMETHODIMP nsHTTPChannel::GetRequestMethod(nsIAtom **methodAtom)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* string GetResponseHeader (in nsIAtom headerAtom); */
NS_IMETHODIMP nsHTTPChannel::GetResponseHeader(nsIAtom *headerAtom, char **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetResponseHeader (in nsIAtom headerAtom, in string headerValue); */
NS_IMETHODIMP nsHTTPChannel::SetResponseHeader(nsIAtom *headerAtom, const char *headerValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsISimpleEnumerator GetResponseHeaderEnumerator (); */
NS_IMETHODIMP nsHTTPChannel::GetResponseHeaderEnumerator(nsISimpleEnumerator **_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIInputStream UploadStream; */
NS_IMETHODIMP nsHTTPChannel::GetUploadStream(nsIInputStream * *aUploadStream)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsHTTPChannel::SetUploadStream(nsIInputStream * aUploadStream)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetReferrer (in nsIURI referrer, in unsigned long referrerLevel); */
NS_IMETHODIMP nsHTTPChannel::SetReferrer(nsIURI *referrer, PRUint32 referrerLevel)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIURI referrer; */
NS_IMETHODIMP nsHTTPChannel::GetReferrer(nsIURI * *aReferrer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long responseStatus; */
NS_IMETHODIMP nsHTTPChannel::GetResponseStatus(PRUint32 *aResponseStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string responseString; */
NS_IMETHODIMP nsHTTPChannel::GetResponseString(char * *aResponseString)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIHTTPEventSink eventSink; */
NS_IMETHODIMP nsHTTPChannel::GetEventSink(nsIHTTPEventSink * *aEventSink)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIStreamListener responseDataListener; */
NS_IMETHODIMP nsHTTPChannel::GetResponseDataListener(nsIStreamListener * *aResponseDataListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute string charset; */
NS_IMETHODIMP nsHTTPChannel::GetCharset(char * *aCharset)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRBool authTriedWithPrehost; */
NS_IMETHODIMP nsHTTPChannel::GetAuthTriedWithPrehost(PRBool *aAuthTriedWithPrehost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsHTTPChannel::SetAuthTriedWithPrehost(PRBool aAuthTriedWithPrehost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute PRBool applyConversion; */
NS_IMETHODIMP nsHTTPChannel::GetApplyConversion(PRBool *aApplyConversion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsHTTPChannel::SetApplyConversion(PRBool aApplyConversion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRBool usingProxy; */
NS_IMETHODIMP nsHTTPChannel::GetUsingProxy(PRBool *aUsingProxy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute PRBool usingTransparentProxy; */
NS_IMETHODIMP nsHTTPChannel::GetUsingTransparentProxy(PRBool *aUsingTransparentProxy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIPrompt prompter; */
NS_IMETHODIMP nsHTTPChannel::GetPrompter(nsIPrompt * *aPrompter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string proxyRequestURI; */
NS_IMETHODIMP nsHTTPChannel::GetProxyRequestURI(char * *aProxyRequestURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsHTTPChannel::SetProxyRequestURI(const char * aProxyRequestURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean openInputStreamHasEventQueue; */
NS_IMETHODIMP nsHTTPChannel::GetOpenInputStreamHasEventQueue(PRBool *aOpenInputStreamHasEventQueue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsHTTPChannel::SetOpenInputStreamHasEventQueue(PRBool aOpenInputStreamHasEventQueue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIHTTPChannel_h__ */
