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

#ifndef __gen_nsINNTPProtocol_h__
#define __gen_nsINNTPProtocol_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 nsIUrlListener; /* forward declaration */

class nsIURI; /* forward declaration */

class nsINntpUrl; /* forward declaration */

class nsISupportsArray; /* forward declaration */

class nsIMsgFolder; /* forward declaration */

class nsIMsgWindow; /* forward declaration */


/* starting interface:    nsINNTPProtocol */
#define NS_INNTPPROTOCOL_IID_STR "30106238-0991-11d4-a565-0060b0fc04b7"

#define NS_INNTPPROTOCOL_IID \
  {0x30106238, 0x0991, 0x11d4, \
    { 0xa5, 0x65, 0x00, 0x60, 0xb0, 0xfc, 0x04, 0xb7 }}

class NS_NO_VTABLE nsINNTPProtocol : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_INNTPPROTOCOL_IID)

  /* attribute boolean isBusy; */
  NS_IMETHOD GetIsBusy(PRBool *aIsBusy) = 0;
  NS_IMETHOD SetIsBusy(PRBool aIsBusy) = 0;

  /* void LoadNewsUrl (in nsIURI aUri, in nsISupports aConsumer); */
  NS_IMETHOD LoadNewsUrl(nsIURI *aUri, nsISupports *aConsumer) = 0;

  /* void Initialize (in nsIURI aURL, in nsIMsgWindow aMsgWindow); */
  NS_IMETHOD Initialize(nsIURI *aURL, nsIMsgWindow *aMsgWindow) = 0;

  /* void GetLastActiveTimeStamp (out PRTime aTimeStamp); */
  NS_IMETHOD GetLastActiveTimeStamp(PRTime *aTimeStamp) = 0;

  /* attribute boolean isCachedConnection; */
  NS_IMETHOD GetIsCachedConnection(PRBool *aIsCachedConnection) = 0;
  NS_IMETHOD SetIsCachedConnection(PRBool aIsCachedConnection) = 0;

  /* void CloseConnection (); */
  NS_IMETHOD CloseConnection(void) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSINNTPPROTOCOL \
  NS_IMETHOD GetIsBusy(PRBool *aIsBusy); \
  NS_IMETHOD SetIsBusy(PRBool aIsBusy); \
  NS_IMETHOD LoadNewsUrl(nsIURI *aUri, nsISupports *aConsumer); \
  NS_IMETHOD Initialize(nsIURI *aURL, nsIMsgWindow *aMsgWindow); \
  NS_IMETHOD GetLastActiveTimeStamp(PRTime *aTimeStamp); \
  NS_IMETHOD GetIsCachedConnection(PRBool *aIsCachedConnection); \
  NS_IMETHOD SetIsCachedConnection(PRBool aIsCachedConnection); \
  NS_IMETHOD CloseConnection(void); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSINNTPPROTOCOL(_to) \
  NS_IMETHOD GetIsBusy(PRBool *aIsBusy) { return _to GetIsBusy(aIsBusy); } \
  NS_IMETHOD SetIsBusy(PRBool aIsBusy) { return _to SetIsBusy(aIsBusy); } \
  NS_IMETHOD LoadNewsUrl(nsIURI *aUri, nsISupports *aConsumer) { return _to LoadNewsUrl(aUri, aConsumer); } \
  NS_IMETHOD Initialize(nsIURI *aURL, nsIMsgWindow *aMsgWindow) { return _to Initialize(aURL, aMsgWindow); } \
  NS_IMETHOD GetLastActiveTimeStamp(PRTime *aTimeStamp) { return _to GetLastActiveTimeStamp(aTimeStamp); } \
  NS_IMETHOD GetIsCachedConnection(PRBool *aIsCachedConnection) { return _to GetIsCachedConnection(aIsCachedConnection); } \
  NS_IMETHOD SetIsCachedConnection(PRBool aIsCachedConnection) { return _to SetIsCachedConnection(aIsCachedConnection); } \
  NS_IMETHOD CloseConnection(void) { return _to CloseConnection(); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSINNTPPROTOCOL(_to) \
  NS_IMETHOD GetIsBusy(PRBool *aIsBusy) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsBusy(aIsBusy); } \
  NS_IMETHOD SetIsBusy(PRBool aIsBusy) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsBusy(aIsBusy); } \
  NS_IMETHOD LoadNewsUrl(nsIURI *aUri, nsISupports *aConsumer) { return !_to ? NS_ERROR_NULL_POINTER : _to->LoadNewsUrl(aUri, aConsumer); } \
  NS_IMETHOD Initialize(nsIURI *aURL, nsIMsgWindow *aMsgWindow) { return !_to ? NS_ERROR_NULL_POINTER : _to->Initialize(aURL, aMsgWindow); } \
  NS_IMETHOD GetLastActiveTimeStamp(PRTime *aTimeStamp) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastActiveTimeStamp(aTimeStamp); } \
  NS_IMETHOD GetIsCachedConnection(PRBool *aIsCachedConnection) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsCachedConnection(aIsCachedConnection); } \
  NS_IMETHOD SetIsCachedConnection(PRBool aIsCachedConnection) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIsCachedConnection(aIsCachedConnection); } \
  NS_IMETHOD CloseConnection(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->CloseConnection(); } 

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

/* Header file */
class nsNNTPProtocol : public nsINNTPProtocol
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSINNTPPROTOCOL

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsNNTPProtocol, nsINNTPProtocol)

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

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

/* attribute boolean isBusy; */
NS_IMETHODIMP nsNNTPProtocol::GetIsBusy(PRBool *aIsBusy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNNTPProtocol::SetIsBusy(PRBool aIsBusy)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void LoadNewsUrl (in nsIURI aUri, in nsISupports aConsumer); */
NS_IMETHODIMP nsNNTPProtocol::LoadNewsUrl(nsIURI *aUri, nsISupports *aConsumer)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Initialize (in nsIURI aURL, in nsIMsgWindow aMsgWindow); */
NS_IMETHODIMP nsNNTPProtocol::Initialize(nsIURI *aURL, nsIMsgWindow *aMsgWindow)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetLastActiveTimeStamp (out PRTime aTimeStamp); */
NS_IMETHODIMP nsNNTPProtocol::GetLastActiveTimeStamp(PRTime *aTimeStamp)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean isCachedConnection; */
NS_IMETHODIMP nsNNTPProtocol::GetIsCachedConnection(PRBool *aIsCachedConnection)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNNTPProtocol::SetIsCachedConnection(PRBool aIsCachedConnection)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void CloseConnection (); */
NS_IMETHODIMP nsNNTPProtocol::CloseConnection()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsINNTPProtocol_h__ */
