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

#ifndef __gen_nsINntpUrl_h__
#define __gen_nsINntpUrl_h__


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

#ifndef __gen_MailNewsTypes2_h__
#include "MailNewsTypes2.h"
#endif

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

class nsINNTPNewsgroupPost; /* forward declaration */

typedef PRInt32  nsNewsAction;


/* starting interface:    nsINntpUrl */
#define NS_INNTPURL_IID_STR "5f250c8c-d6b7-48b7-8ff4-7ff51dba19ae"

#define NS_INNTPURL_IID \
  {0x5f250c8c, 0xd6b7, 0x48b7, \
    { 0x8f, 0xf4, 0x7f, 0xf5, 0x1d, 0xba, 0x19, 0xae }}

class NS_NO_VTABLE NS_SCRIPTABLE nsINntpUrl : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_INNTPURL_IID)

  /* attribute nsINNTPNewsgroupPost messageToPost; */
  NS_SCRIPTABLE NS_IMETHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetMessageToPost(nsINNTPNewsgroupPost *aMessageToPost) = 0;

  /* attribute nsNewsAction newsAction; */
  NS_SCRIPTABLE NS_IMETHOD GetNewsAction(nsNewsAction *aNewsAction) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetNewsAction(nsNewsAction aNewsAction) = 0;

  /* attribute boolean getOldMessages; */
  NS_SCRIPTABLE NS_IMETHOD GetGetOldMessages(bool *aGetOldMessages) = 0;
  NS_SCRIPTABLE NS_IMETHOD SetGetOldMessages(bool aGetOldMessages) = 0;

  /* readonly attribute ACString group; */
  NS_SCRIPTABLE NS_IMETHOD GetGroup(nsACString & aGroup) = 0;

  /* readonly attribute ACString messageID; */
  NS_SCRIPTABLE NS_IMETHOD GetMessageID(nsACString & aMessageID) = 0;

  /* readonly attribute unsigned long key; */
  NS_SCRIPTABLE NS_IMETHOD GetKey(PRUint32 *aKey) = 0;

  enum {
    ActionUnknown = 0,
    ActionFetchArticle = 1,
    ActionFetchPart = 2,
    ActionSaveMessageToDisk = 3,
    ActionCancelArticle = 4,
    ActionPostArticle = 5,
    ActionListIds = 6,
    ActionSearch = 7,
    ActionGetNewNews = 8,
    ActionListGroups = 9,
    ActionListNewGroups = 10,
    DEFAULT_NNTP_PORT = 119,
    DEFAULT_NNTPS_PORT = 563
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsINntpUrl, NS_INNTPURL_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSINNTPURL \
  NS_SCRIPTABLE NS_IMETHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost); \
  NS_SCRIPTABLE NS_IMETHOD SetMessageToPost(nsINNTPNewsgroupPost *aMessageToPost); \
  NS_SCRIPTABLE NS_IMETHOD GetNewsAction(nsNewsAction *aNewsAction); \
  NS_SCRIPTABLE NS_IMETHOD SetNewsAction(nsNewsAction aNewsAction); \
  NS_SCRIPTABLE NS_IMETHOD GetGetOldMessages(bool *aGetOldMessages); \
  NS_SCRIPTABLE NS_IMETHOD SetGetOldMessages(bool aGetOldMessages); \
  NS_SCRIPTABLE NS_IMETHOD GetGroup(nsACString & aGroup); \
  NS_SCRIPTABLE NS_IMETHOD GetMessageID(nsACString & aMessageID); \
  NS_SCRIPTABLE NS_IMETHOD GetKey(PRUint32 *aKey); \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSINNTPURL(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost) { return _to GetMessageToPost(aMessageToPost); } \
  NS_SCRIPTABLE NS_IMETHOD SetMessageToPost(nsINNTPNewsgroupPost *aMessageToPost) { return _to SetMessageToPost(aMessageToPost); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewsAction(nsNewsAction *aNewsAction) { return _to GetNewsAction(aNewsAction); } \
  NS_SCRIPTABLE NS_IMETHOD SetNewsAction(nsNewsAction aNewsAction) { return _to SetNewsAction(aNewsAction); } \
  NS_SCRIPTABLE NS_IMETHOD GetGetOldMessages(bool *aGetOldMessages) { return _to GetGetOldMessages(aGetOldMessages); } \
  NS_SCRIPTABLE NS_IMETHOD SetGetOldMessages(bool aGetOldMessages) { return _to SetGetOldMessages(aGetOldMessages); } \
  NS_SCRIPTABLE NS_IMETHOD GetGroup(nsACString & aGroup) { return _to GetGroup(aGroup); } \
  NS_SCRIPTABLE NS_IMETHOD GetMessageID(nsACString & aMessageID) { return _to GetMessageID(aMessageID); } \
  NS_SCRIPTABLE NS_IMETHOD GetKey(PRUint32 *aKey) { return _to GetKey(aKey); } \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSINNTPURL(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageToPost(aMessageToPost); } \
  NS_SCRIPTABLE NS_IMETHOD SetMessageToPost(nsINNTPNewsgroupPost *aMessageToPost) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageToPost(aMessageToPost); } \
  NS_SCRIPTABLE NS_IMETHOD GetNewsAction(nsNewsAction *aNewsAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewsAction(aNewsAction); } \
  NS_SCRIPTABLE NS_IMETHOD SetNewsAction(nsNewsAction aNewsAction) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNewsAction(aNewsAction); } \
  NS_SCRIPTABLE NS_IMETHOD GetGetOldMessages(bool *aGetOldMessages) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGetOldMessages(aGetOldMessages); } \
  NS_SCRIPTABLE NS_IMETHOD SetGetOldMessages(bool aGetOldMessages) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGetOldMessages(aGetOldMessages); } \
  NS_SCRIPTABLE NS_IMETHOD GetGroup(nsACString & aGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGroup(aGroup); } \
  NS_SCRIPTABLE NS_IMETHOD GetMessageID(nsACString & aMessageID) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageID(aMessageID); } \
  NS_SCRIPTABLE NS_IMETHOD GetKey(PRUint32 *aKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKey(aKey); } \

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

/* Header file */
class nsNntpUrl : public nsINntpUrl
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSINNTPURL

  nsNntpUrl();

private:
  ~nsNntpUrl();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsNntpUrl, nsINntpUrl)

nsNntpUrl::nsNntpUrl()
{
  /* member initializers and constructor code */
}

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

/* attribute nsINNTPNewsgroupPost messageToPost; */
NS_IMETHODIMP nsNntpUrl::GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetMessageToPost(nsINNTPNewsgroupPost *aMessageToPost)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsNewsAction newsAction; */
NS_IMETHODIMP nsNntpUrl::GetNewsAction(nsNewsAction *aNewsAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetNewsAction(nsNewsAction aNewsAction)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean getOldMessages; */
NS_IMETHODIMP nsNntpUrl::GetGetOldMessages(bool *aGetOldMessages)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNntpUrl::SetGetOldMessages(bool aGetOldMessages)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString group; */
NS_IMETHODIMP nsNntpUrl::GetGroup(nsACString & aGroup)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString messageID; */
NS_IMETHODIMP nsNntpUrl::GetMessageID(nsACString & aMessageID)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute unsigned long key; */
NS_IMETHODIMP nsNntpUrl::GetKey(PRUint32 *aKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsINntpUrl_h__ */
