text: /*
   * DO NOT EDIT.  THIS FILE IS GENERATED FROM c:/builds/tinderbox/XR-Mozilla1.8.0-Release/WINNT_5.2_Depend/mozilla/netwerk/base/public/nsIRequest.idl
   */
  
  #ifndef __gen_nsIRequest_h__
  #define __gen_nsIRequest_h__
  
  
  #ifndef __gen_nsISupports_h__
  #include "nsISupports.h"
  #endif
  
  /* For IDL files that don't want to include root IDL files. */
  #ifndef NS_NO_VTABLE
  #define NS_NO_VTABLE
  #endif
  class nsILoadGroup; /* forward declaration */
  
  typedef PRUint32 nsLoadFlags;
  
  
  /* starting interface:    nsIRequest */
  #define NS_IREQUEST_IID_STR "ef6bfbd2-fd46-48d8-96b7-9f8f0fd387fe"
  
  #define NS_IREQUEST_IID \
    {0xef6bfbd2, 0xfd46, 0x48d8, \
      { 0x96, 0xb7, 0x9f, 0x8f, 0x0f, 0xd3, 0x87, 0xfe }}
  
  /**
   * nsIRequest
   *
   * @status FROZEN
   */
  class NS_NO_VTABLE nsIRequest : public nsISupports {
   public: 
  
    NS_DEFINE_STATIC_IID_ACCESSOR(NS_IREQUEST_IID)
  
    /**
       * The name of the request.  Often this is the URI of the request.
       */
    /* readonly attribute AUTF8String name; */
    NS_IMETHOD GetName(nsACString & aName) = 0;
  
    /**
       * @return TRUE if the request has yet to reach completion.
       * @return FALSE if the request has reached completion (e.g., after
       *   OnStopRequest has fired).
       * Suspended requests are still considered pending.
       */
    /* boolean isPending (); */
    NS_IMETHOD IsPending(PRBool *_retval) = 0;
  
    /**
       * The error status associated with the request.
       */
    /* readonly attribute nsresult status; */
    NS_IMETHOD GetStatus(nsresult *aStatus) = 0;
  
    /**
       * Cancels the current request.  This will close any open input or
       * output streams and terminate any async requests.  Users should 
       * normally pass NS_BINDING_ABORTED, although other errors may also
       * be passed.  The error passed in will become the value of the 
       * status attribute.
       *
       * @param aStatus the reason for canceling this request.
       *
       * NOTE: most nsIRequest implementations expect aStatus to be a
       * failure code; however, some implementations may allow aStatus to
       * be a success code such as NS_OK.  In general, aStatus should be
       * a failure code.
       */
    /* void cancel (in nsresult aStatus); */
    NS_IMETHOD Cancel(nsresult aStatus) = 0;
  
    /**
       * Suspends the current request.  This may have the effect of closing
       * any underlying transport (in order to free up resources), although
       * any open streams remain logically opened and will continue delivering
       * data when the transport is resumed. 
       *
       * NOTE: some implementations are unable to immediately suspend, and
       * may continue to deliver events already posted to an event queue. In
       * general, callers should be capable of handling events even after 
       * suspending a request.
       */
    /* void suspend (); */
    NS_IMETHOD Suspend(void) = 0;
  
    /**
       * Resumes the current request.  This may have the effect of re-opening
       * any underlying transport and will resume the delivery of data to 
       * any open streams.
       */
    /* void resume (); */
    NS_IMETHOD Resume(void) = 0;
  
    /**
       * The load group of this request.  While pending, the request is a 
       * member of the load group.  It is the responsibility of the request
       * to implement this policy.
       */
    /* attribute nsILoadGroup loadGroup; */
    NS_IMETHOD GetLoadGroup(nsILoadGroup * *aLoadGroup) = 0;
    NS_IMETHOD SetLoadGroup(nsILoadGroup * aLoadGroup) = 0;
  
    /**
       * The load flags of this request.  Bits 0-15 are reserved.
       *
       * When added to a load group, this request's load flags are merged with
       * the load flags of the load group.
       */
    /* attribute nsLoadFlags loadFlags; */
    NS_IMETHOD GetLoadFlags(nsLoadFlags *aLoadFlags) = 0;
    NS_IMETHOD SetLoadFlags(nsLoadFlags aLoadFlags) = 0;
  
    /**************************************************************************
       * Listed below are the various load flags which may be or'd together.
       */
  /**
       * No special load flags:
       */
    enum { LOAD_NORMAL = 0U };
  
    /** 
       * Don't deliver status notifications to the nsIProgressEventSink, or keep 
       * this load from completing the nsILoadGroup it may belong to.
       */
    enum { LOAD_BACKGROUND = 1U };
  
    /**************************************************************************
       * The following flags control the flow of data into the cache.
       */
  /**
       * This flag prevents caching of any kind.  It does not, however, prevent
       * cached content from being used to satisfy this request.
       */
    enum { INHIBIT_CACHING = 128U };
  
    /**
       * This flag prevents caching on disk (or other persistent media), which
       * may be needed to preserve privacy.  For HTTPS, this flag is set auto-
       * matically.
       */
    enum { INHIBIT_PERSISTENT_CACHING = 256U };
  
    /**************************************************************************
       * The following flags control what happens when the cache contains data
       * that could perhaps satisfy this request.  They are listed in descending
       * order of precidence.
       */
  /**
       * Force an end-to-end download of content data from the origin server.
       * This flag is used for a shift-reload.
       */
    enum { LOAD_BYPASS_CACHE = 512U };
  
    /**
       * Load from the cache, bypassing protocol specific validation logic.  This
       * flag is used when browsing via history.  It is not recommended for normal
       * browsing as it may likely violate reasonable assumptions made by the 
       * server and confuse users.
       */
    enum { LOAD_FROM_CACHE = 1024U };
  
    /**
       * The following flags control the frequency of cached content validation
       * when neither LOAD_BYPASS_CACHE or LOAD_FROM_CACHE are set.  By default,
       * cached content is automatically validated if necessary before reuse.
       * 
       * VALIDATE_ALWAYS forces validation of any cached content independent of
       * its expiration time.
       * 
       * VALIDATE_NEVER disables validation of expired content.
       *
       * VALIDATE_ONCE_PER_SESSION disables validation of expired content, 
       * provided it has already been validated (at least once) since the start 
       * of this session.
       *
       * NOTE TO IMPLEMENTORS:
       *   These flags are intended for normal browsing, and they should therefore
       *   not apply to content that must be validated before each use.  Consider,
       *   for example, a HTTP response with a "Cache-control: no-cache" header.
       *   According to RFC2616, this response must be validated before it can
       *   be taken from a cache.  Breaking this requirement could result in 
       *   incorrect and potentially undesirable side-effects.
       */
    enum { VALIDATE_ALWAYS = 2048U };
  
    enum { VALIDATE_NEVER = 4096U };
  
    enum { VALIDATE_ONCE_PER_SESSION = 8192U };
  
  };
  
  /* Use this macro when declaring classes that implement this interface. */
  #define NS_DECL_NSIREQUEST \
    NS_IMETHOD GetName(nsACString & aName); \
    NS_IMETHOD IsPending(PRBool *_retval); \
    NS_IMETHOD GetStatus(nsresult *aStatus); \
    NS_IMETHOD Cancel(nsresult aStatus); \
    NS_IMETHOD Suspend(void); \
    NS_IMETHOD Resume(void); \
    NS_IMETHOD GetLoadGroup(nsILoadGroup * *aLoadGroup); \
    NS_IMETHOD SetLoadGroup(nsILoadGroup * aLoadGroup); \
    NS_IMETHOD GetLoadFlags(nsLoadFlags *aLoadFlags); \
    NS_IMETHOD SetLoadFlags(nsLoadFlags aLoadFlags); \
  
  /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  #define NS_FORWARD_NSIREQUEST(_to) \
    NS_IMETHOD GetName(nsACString & aName) { return _to GetName(aName); } \
    NS_IMETHOD IsPending(PRBool *_retval) { return _to IsPending(_retval); } \
    NS_IMETHOD GetStatus(nsresult *aStatus) { return _to GetStatus(aStatus); } \
    NS_IMETHOD Cancel(nsresult aStatus) { return _to Cancel(aStatus); } \
    NS_IMETHOD Suspend(void) { return _to Suspend(); } \
    NS_IMETHOD Resume(void) { return _to Resume(); } \
    NS_IMETHOD GetLoadGroup(nsILoadGroup * *aLoadGroup) { return _to GetLoadGroup(aLoadGroup); } \
    NS_IMETHOD SetLoadGroup(nsILoadGroup * aLoadGroup) { return _to SetLoadGroup(aLoadGroup); } \
    NS_IMETHOD GetLoadFlags(nsLoadFlags *aLoadFlags) { return _to GetLoadFlags(aLoadFlags); } \
    NS_IMETHOD SetLoadFlags(nsLoadFlags aLoadFlags) { return _to SetLoadFlags(aLoadFlags); } \
  
  /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  #define NS_FORWARD_SAFE_NSIREQUEST(_to) \
    NS_IMETHOD GetName(nsACString & aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
    NS_IMETHOD IsPending(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->IsPending(_retval); } \
    NS_IMETHOD GetStatus(nsresult *aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetStatus(aStatus); } \
    NS_IMETHOD Cancel(nsresult aStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->Cancel(aStatus); } \
    NS_IMETHOD Suspend(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Suspend(); } \
    NS_IMETHOD Resume(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Resume(); } \
    NS_IMETHOD GetLoadGroup(nsILoadGroup * *aLoadGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoadGroup(aLoadGroup); } \
    NS_IMETHOD SetLoadGroup(nsILoadGroup * aLoadGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLoadGroup(aLoadGroup); } \
    NS_IMETHOD GetLoadFlags(nsLoadFlags *aLoadFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoadFlags(aLoadFlags); } \
    NS_IMETHOD SetLoadFlags(nsLoadFlags aLoadFlags) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLoadFlags(aLoadFlags); } \
  
  #if 0
  /* Use the code below as a template for the implementation class for this interface. */
  
  /* Header file */
  class nsRequest : public nsIRequest
  {
  public:
    NS_DECL_ISUPPORTS
    NS_DECL_NSIREQUEST
  
    nsRequest();
  
  private:
    ~nsRequest();
  
  protected:
    /* additional members */
  };
  
  /* Implementation file */
  NS_IMPL_ISUPPORTS1(nsRequest, nsIRequest)
  
  nsRequest::nsRequest()
  {
    /* member initializers and constructor code */
  }
  
  nsRequest::~nsRequest()
  {
    /* destructor code */
  }
  
  /* readonly attribute AUTF8String name; */
  NS_IMETHODIMP nsRequest::GetName(nsACString & aName)
  {
      return NS_ERROR_NOT_IMPLEMENTED;
  }
  
  /* boolean isPending (); */
  NS_IMETHODIMP nsRequest::IsPending(PRBool *_retval)
  {
      return NS_ERROR_NOT_IMPLEMENTED;
  }
  
  /* readonly attribute nsresult status; */
  NS_IMETHODIMP nsRequest::GetStatus(nsresult *aStatus)
  {
      return NS_ERROR_NOT_IMPLEMENTED;
  }
  
  /* void cancel (in nsresult aStatus); */
  NS_IMETHODIMP nsRequest::Cancel(nsresult aStatus)
  {
      return NS_ERROR_NOT_IMPLEMENTED;
  }
  
  /* void suspend (); */
  NS_IMETHODIMP nsRequest::Suspend()
  {
      return NS_ERROR_NOT_IMPLEMENTED;
  }
  
  /* void resume (); */
  NS_IMETHODIMP nsRequest::Resume()
  {
      return NS_ERROR_NOT_IMPLEMENTED;
  }
  
  /* attribute nsILoadGroup loadGroup; */
  NS_IMETHODIMP nsRequest::GetLoadGroup(nsILoadGroup * *aLoadGroup)
  {
      return NS_ERROR_NOT_IMPLEMENTED;
  }
  NS_IMETHODIMP nsRequest::SetLoadGroup(nsILoadGroup * aLoadGroup)
  {
      return NS_ERROR_NOT_IMPLEMENTED;
  }
  
  /* attribute nsLoadFlags loadFlags; */
  NS_IMETHODIMP nsRequest::GetLoadFlags(nsLoadFlags *aLoadFlags)
  {
      return NS_ERROR_NOT_IMPLEMENTED;
  }
  NS_IMETHODIMP nsRequest::SetLoadFlags(nsLoadFlags aLoadFlags)
  {
      return NS_ERROR_NOT_IMPLEMENTED;
  }
  
  /* End of implementation class template. */
  #endif
  
  
  #endif /* __gen_nsIRequest_h__ */
  