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

#ifndef __gen_nsISHEntry_h__
#define __gen_nsISHEntry_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

#ifndef __gen_nsIURI_h__
#include "nsIURI.h"
#endif

#ifndef __gen_nsIInputStream_h__
#include "nsIInputStream.h"
#endif

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

class nsIDOMDocument; /* forward declaration */


/* starting interface:    nsISHEntry */
#define NS_ISHENTRY_IID_STR "65281ba1-988a-11d3-bdc7-0050040a9b44"

#define NS_ISHENTRY_IID \
  {0x65281ba1, 0x988a, 0x11d3, \
    { 0xbd, 0xc7, 0x00, 0x50, 0x04, 0x0a, 0x9b, 0x44 }}

class NS_NO_VTABLE nsISHEntry : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISHENTRY_IID)

  /** URI for the document */
  /* void SetURI (in nsIURI aURI); */
  NS_IMETHOD SetURI(nsIURI *aURI) = 0;

  /** Referrer URI */
  /* attribute nsIURI referrerURI; */
  NS_IMETHOD GetReferrerURI(nsIURI * *aReferrerURI) = 0;
  NS_IMETHOD SetReferrerURI(nsIURI * aReferrerURI) = 0;

  /**  DOM Document */
  /* attribute nsIDOMDocument document; */
  NS_IMETHOD GetDocument(nsIDOMDocument * *aDocument) = 0;
  NS_IMETHOD SetDocument(nsIDOMDocument * aDocument) = 0;

  /** Title for the document */
  /* void SetTitle (in wstring aTitle); */
  NS_IMETHOD SetTitle(const PRUnichar *aTitle) = 0;

  /** Post Data for the document */
  /* attribute nsIInputStream postData; */
  NS_IMETHOD GetPostData(nsIInputStream * *aPostData) = 0;
  NS_IMETHOD SetPostData(nsIInputStream * aPostData) = 0;

  /** LayoutHistoryState for scroll position and form values */
  /* attribute nsILayoutHistoryState layoutHistoryState; */
  NS_IMETHOD GetLayoutHistoryState(nsILayoutHistoryState * *aLayoutHistoryState) = 0;
  NS_IMETHOD SetLayoutHistoryState(nsILayoutHistoryState * aLayoutHistoryState) = 0;

  /** parent of this entry */
  /* attribute nsISHEntry parent; */
  NS_IMETHOD GetParent(nsISHEntry * *aParent) = 0;
  NS_IMETHOD SetParent(nsISHEntry * aParent) = 0;

  /**
 * The loadType for this entry. This is typically loadHistory except
 * when reload is pressed, it has the appropriate reload flag
 */
  /* attribute unsigned long loadType; */
  NS_IMETHOD GetLoadType(PRUint32 *aLoadType) = 0;
  NS_IMETHOD SetLoadType(PRUint32 aLoadType) = 0;

  /**
 * An ID to help identify this entry from others during
 * subframe navigation
 */
  /* attribute unsigned long ID; */
  NS_IMETHOD GetID(PRUint32 *aID) = 0;
  NS_IMETHOD SetID(PRUint32 aID) = 0;

  /** attribute to set and get the cache key for the entry */
  /* attribute nsISupports cacheKey; */
  NS_IMETHOD GetCacheKey(nsISupports * *aCacheKey) = 0;
  NS_IMETHOD SetCacheKey(nsISupports * aCacheKey) = 0;

  /** attribute to indicate whether layoutHistoryState should be saved */
  /* attribute boolean saveLayoutStateFlag; */
  NS_IMETHOD GetSaveLayoutStateFlag(PRBool *aSaveLayoutStateFlag) = 0;
  NS_IMETHOD SetSaveLayoutStateFlag(PRBool aSaveLayoutStateFlag) = 0;

  /** attribute to indicate whether the page is already expired in cache */
  /* attribute boolean expirationStatus; */
  NS_IMETHOD GetExpirationStatus(PRBool *aExpirationStatus) = 0;
  NS_IMETHOD SetExpirationStatus(PRBool aExpirationStatus) = 0;

  /** Additional ways to create an entry */
  /* void create (in nsIURI aURI, in wstring aTitle, in nsIDOMDocument aDocument, in nsIInputStream aInputStream, in nsILayoutHistoryState aHistoryLayoutState, in nsISupports aCacheKey); */
  NS_IMETHOD Create(nsIURI *aURI, const PRUnichar *aTitle, nsIDOMDocument *aDocument, nsIInputStream *aInputStream, nsILayoutHistoryState *aHistoryLayoutState, nsISupports *aCacheKey) = 0;

  /** Attribute that indicates if this entry is for a subframe navigation */
  /* void SetIsSubFrame (in boolean aFlag); */
  NS_IMETHOD SetIsSubFrame(PRBool aFlag) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISHENTRY \
  NS_IMETHOD SetURI(nsIURI *aURI); \
  NS_IMETHOD GetReferrerURI(nsIURI * *aReferrerURI); \
  NS_IMETHOD SetReferrerURI(nsIURI * aReferrerURI); \
  NS_IMETHOD GetDocument(nsIDOMDocument * *aDocument); \
  NS_IMETHOD SetDocument(nsIDOMDocument * aDocument); \
  NS_IMETHOD SetTitle(const PRUnichar *aTitle); \
  NS_IMETHOD GetPostData(nsIInputStream * *aPostData); \
  NS_IMETHOD SetPostData(nsIInputStream * aPostData); \
  NS_IMETHOD GetLayoutHistoryState(nsILayoutHistoryState * *aLayoutHistoryState); \
  NS_IMETHOD SetLayoutHistoryState(nsILayoutHistoryState * aLayoutHistoryState); \
  NS_IMETHOD GetParent(nsISHEntry * *aParent); \
  NS_IMETHOD SetParent(nsISHEntry * aParent); \
  NS_IMETHOD GetLoadType(PRUint32 *aLoadType); \
  NS_IMETHOD SetLoadType(PRUint32 aLoadType); \
  NS_IMETHOD GetID(PRUint32 *aID); \
  NS_IMETHOD SetID(PRUint32 aID); \
  NS_IMETHOD GetCacheKey(nsISupports * *aCacheKey); \
  NS_IMETHOD SetCacheKey(nsISupports * aCacheKey); \
  NS_IMETHOD GetSaveLayoutStateFlag(PRBool *aSaveLayoutStateFlag); \
  NS_IMETHOD SetSaveLayoutStateFlag(PRBool aSaveLayoutStateFlag); \
  NS_IMETHOD GetExpirationStatus(PRBool *aExpirationStatus); \
  NS_IMETHOD SetExpirationStatus(PRBool aExpirationStatus); \
  NS_IMETHOD Create(nsIURI *aURI, const PRUnichar *aTitle, nsIDOMDocument *aDocument, nsIInputStream *aInputStream, nsILayoutHistoryState *aHistoryLayoutState, nsISupports *aCacheKey); \
  NS_IMETHOD SetIsSubFrame(PRBool aFlag); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISHENTRY(_to) \
  NS_IMETHOD SetURI(nsIURI *aURI) { return _to SetURI(aURI); } \
  NS_IMETHOD GetReferrerURI(nsIURI * *aReferrerURI) { return _to GetReferrerURI(aReferrerURI); } \
  NS_IMETHOD SetReferrerURI(nsIURI * aReferrerURI) { return _to SetReferrerURI(aReferrerURI); } \
  NS_IMETHOD GetDocument(nsIDOMDocument * *aDocument) { return _to GetDocument(aDocument); } \
  NS_IMETHOD SetDocument(nsIDOMDocument * aDocument) { return _to SetDocument(aDocument); } \
  NS_IMETHOD SetTitle(const PRUnichar *aTitle) { return _to SetTitle(aTitle); } \
  NS_IMETHOD GetPostData(nsIInputStream * *aPostData) { return _to GetPostData(aPostData); } \
  NS_IMETHOD SetPostData(nsIInputStream * aPostData) { return _to SetPostData(aPostData); } \
  NS_IMETHOD GetLayoutHistoryState(nsILayoutHistoryState * *aLayoutHistoryState) { return _to GetLayoutHistoryState(aLayoutHistoryState); } \
  NS_IMETHOD SetLayoutHistoryState(nsILayoutHistoryState * aLayoutHistoryState) { return _to SetLayoutHistoryState(aLayoutHistoryState); } \
  NS_IMETHOD GetParent(nsISHEntry * *aParent) { return _to GetParent(aParent); } \
  NS_IMETHOD SetParent(nsISHEntry * aParent) { return _to SetParent(aParent); } \
  NS_IMETHOD GetLoadType(PRUint32 *aLoadType) { return _to GetLoadType(aLoadType); } \
  NS_IMETHOD SetLoadType(PRUint32 aLoadType) { return _to SetLoadType(aLoadType); } \
  NS_IMETHOD GetID(PRUint32 *aID) { return _to GetID(aID); } \
  NS_IMETHOD SetID(PRUint32 aID) { return _to SetID(aID); } \
  NS_IMETHOD GetCacheKey(nsISupports * *aCacheKey) { return _to GetCacheKey(aCacheKey); } \
  NS_IMETHOD SetCacheKey(nsISupports * aCacheKey) { return _to SetCacheKey(aCacheKey); } \
  NS_IMETHOD GetSaveLayoutStateFlag(PRBool *aSaveLayoutStateFlag) { return _to GetSaveLayoutStateFlag(aSaveLayoutStateFlag); } \
  NS_IMETHOD SetSaveLayoutStateFlag(PRBool aSaveLayoutStateFlag) { return _to SetSaveLayoutStateFlag(aSaveLayoutStateFlag); } \
  NS_IMETHOD GetExpirationStatus(PRBool *aExpirationStatus) { return _to GetExpirationStatus(aExpirationStatus); } \
  NS_IMETHOD SetExpirationStatus(PRBool aExpirationStatus) { return _to SetExpirationStatus(aExpirationStatus); } \
  NS_IMETHOD Create(nsIURI *aURI, const PRUnichar *aTitle, nsIDOMDocument *aDocument, nsIInputStream *aInputStream, nsILayoutHistoryState *aHistoryLayoutState, nsISupports *aCacheKey) { return _to Create(aURI, aTitle, aDocument, aInputStream, aHistoryLayoutState, aCacheKey); } \
  NS_IMETHOD SetIsSubFrame(PRBool aFlag) { return _to SetIsSubFrame(aFlag); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSISHENTRY(_to) \
  NS_IMETHOD SetURI(nsIURI *aURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetURI(aURI); } \
  NS_IMETHOD GetReferrerURI(nsIURI * *aReferrerURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetReferrerURI(aReferrerURI); } \
  NS_IMETHOD SetReferrerURI(nsIURI * aReferrerURI) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetReferrerURI(aReferrerURI); } \
  NS_IMETHOD GetDocument(nsIDOMDocument * *aDocument) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDocument(aDocument); } \
  NS_IMETHOD SetDocument(nsIDOMDocument * aDocument) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDocument(aDocument); } \
  NS_IMETHOD SetTitle(const PRUnichar *aTitle) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTitle(aTitle); } \
  NS_IMETHOD GetPostData(nsIInputStream * *aPostData) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPostData(aPostData); } \
  NS_IMETHOD SetPostData(nsIInputStream * aPostData) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetPostData(aPostData); } \
  NS_IMETHOD GetLayoutHistoryState(nsILayoutHistoryState * *aLayoutHistoryState) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLayoutHistoryState(aLayoutHistoryState); } \
  NS_IMETHOD SetLayoutHistoryState(nsILayoutHistoryState * aLayoutHistoryState) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLayoutHistoryState(aLayoutHistoryState); } \
  NS_IMETHOD GetParent(nsISHEntry * *aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParent(aParent); } \
  NS_IMETHOD SetParent(nsISHEntry * aParent) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetParent(aParent); } \
  NS_IMETHOD GetLoadType(PRUint32 *aLoadType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLoadType(aLoadType); } \
  NS_IMETHOD SetLoadType(PRUint32 aLoadType) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetLoadType(aLoadType); } \
  NS_IMETHOD GetID(PRUint32 *aID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetID(aID); } \
  NS_IMETHOD SetID(PRUint32 aID) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetID(aID); } \
  NS_IMETHOD GetCacheKey(nsISupports * *aCacheKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCacheKey(aCacheKey); } \
  NS_IMETHOD SetCacheKey(nsISupports * aCacheKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetCacheKey(aCacheKey); } \
  NS_IMETHOD GetSaveLayoutStateFlag(PRBool *aSaveLayoutStateFlag) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSaveLayoutStateFlag(aSaveLayoutStateFlag); } \
  NS_IMETHOD SetSaveLayoutStateFlag(PRBool aSaveLayoutStateFlag) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetSaveLayoutStateFlag(aSaveLayoutStateFlag); } \
  NS_IMETHOD GetExpirationStatus(PRBool *aExpirationStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetExpirationStatus(aExpirationStatus); } \
  NS_IMETHOD SetExpirationStatus(PRBool aExpirationStatus) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetExpirationStatus(aExpirationStatus); } \
  NS_IMETHOD Create(nsIURI *aURI, const PRUnichar *aTitle, nsIDOMDocument *aDocument, nsIInputStream *aInputStream, nsILayoutHistoryState *aHistoryLayoutState, nsISupports *aCacheKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->Create(aURI, aTitle, aDocument, aInputStream, aHistoryLayoutState, aCacheKey); } \
  NS_IMETHOD SetIsSubFrame(PRBool aFlag) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsSubFrame(aFlag); } 

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

/* Header file */
class nsSHEntry : public nsISHEntry
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSISHENTRY

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsSHEntry, nsISHEntry)

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

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

/* void SetURI (in nsIURI aURI); */
NS_IMETHODIMP nsSHEntry::SetURI(nsIURI *aURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIURI referrerURI; */
NS_IMETHODIMP nsSHEntry::GetReferrerURI(nsIURI * *aReferrerURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSHEntry::SetReferrerURI(nsIURI * aReferrerURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIDOMDocument document; */
NS_IMETHODIMP nsSHEntry::GetDocument(nsIDOMDocument * *aDocument)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSHEntry::SetDocument(nsIDOMDocument * aDocument)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetTitle (in wstring aTitle); */
NS_IMETHODIMP nsSHEntry::SetTitle(const PRUnichar *aTitle)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIInputStream postData; */
NS_IMETHODIMP nsSHEntry::GetPostData(nsIInputStream * *aPostData)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSHEntry::SetPostData(nsIInputStream * aPostData)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsILayoutHistoryState layoutHistoryState; */
NS_IMETHODIMP nsSHEntry::GetLayoutHistoryState(nsILayoutHistoryState * *aLayoutHistoryState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSHEntry::SetLayoutHistoryState(nsILayoutHistoryState * aLayoutHistoryState)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsISHEntry parent; */
NS_IMETHODIMP nsSHEntry::GetParent(nsISHEntry * *aParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSHEntry::SetParent(nsISHEntry * aParent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long loadType; */
NS_IMETHODIMP nsSHEntry::GetLoadType(PRUint32 *aLoadType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSHEntry::SetLoadType(PRUint32 aLoadType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long ID; */
NS_IMETHODIMP nsSHEntry::GetID(PRUint32 *aID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSHEntry::SetID(PRUint32 aID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsISupports cacheKey; */
NS_IMETHODIMP nsSHEntry::GetCacheKey(nsISupports * *aCacheKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSHEntry::SetCacheKey(nsISupports * aCacheKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean saveLayoutStateFlag; */
NS_IMETHODIMP nsSHEntry::GetSaveLayoutStateFlag(PRBool *aSaveLayoutStateFlag)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSHEntry::SetSaveLayoutStateFlag(PRBool aSaveLayoutStateFlag)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean expirationStatus; */
NS_IMETHODIMP nsSHEntry::GetExpirationStatus(PRBool *aExpirationStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsSHEntry::SetExpirationStatus(PRBool aExpirationStatus)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void create (in nsIURI aURI, in wstring aTitle, in nsIDOMDocument aDocument, in nsIInputStream aInputStream, in nsILayoutHistoryState aHistoryLayoutState, in nsISupports aCacheKey); */
NS_IMETHODIMP nsSHEntry::Create(nsIURI *aURI, const PRUnichar *aTitle, nsIDOMDocument *aDocument, nsIInputStream *aInputStream, nsILayoutHistoryState *aHistoryLayoutState, nsISupports *aCacheKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetIsSubFrame (in boolean aFlag); */
NS_IMETHODIMP nsSHEntry::SetIsSubFrame(PRBool aFlag)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

// {BFD1A791-AD9F-11d3-BDC7-0050040A9B44}
#define NS_SHENTRY_CID \
{0xbfd1a791, 0xad9f, 0x11d3, {0xbd, 0xc7, 0x0, 0x50, 0x4, 0xa, 0x9b, 0x44}}
#define NS_SHENTRY_CONTRACTID \
    "@mozilla.org/browser/session-history-entry;1"

#endif /* __gen_nsISHEntry_h__ */
