/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl/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 nsINNTPNewsgroupPost; /* forward declaration */

typedef int32_t  nsNewsAction;


/* starting interface:    nsINntpUrl */
#define NS_INNTPURL_IID_STR "ef920ca3-9c46-48b8-9fa3-cb430d3681ea"

#define NS_INNTPURL_IID \
  {0xef920ca3, 0x9c46, 0x48b8, \
    { 0x9f, 0xa3, 0xcb, 0x43, 0x0d, 0x36, 0x81, 0xea }}

class NS_NO_VTABLE nsINntpUrl : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_INNTPURL_IID)

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

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

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

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

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

  /* readonly attribute nsMsgKey key; */
  NS_IMETHOD GetKey(nsMsgKey *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_IMETHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost) override; \
  NS_IMETHOD SetMessageToPost(nsINNTPNewsgroupPost *aMessageToPost) override; \
  NS_IMETHOD GetNewsAction(nsNewsAction *aNewsAction) override; \
  NS_IMETHOD SetNewsAction(nsNewsAction aNewsAction) override; \
  NS_IMETHOD GetGetOldMessages(bool *aGetOldMessages) override; \
  NS_IMETHOD SetGetOldMessages(bool aGetOldMessages) override; \
  NS_IMETHOD GetGroup(nsACString & aGroup) override; \
  NS_IMETHOD GetMessageID(nsACString & aMessageID) override; \
  NS_IMETHOD GetKey(nsMsgKey *aKey) override; \

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSINNTPURL \
  NS_METHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost); \
  NS_METHOD SetMessageToPost(nsINNTPNewsgroupPost *aMessageToPost); \
  NS_METHOD GetNewsAction(nsNewsAction *aNewsAction); \
  NS_METHOD SetNewsAction(nsNewsAction aNewsAction); \
  NS_METHOD GetGetOldMessages(bool *aGetOldMessages); \
  NS_METHOD SetGetOldMessages(bool aGetOldMessages); \
  NS_METHOD GetGroup(nsACString & aGroup); \
  NS_METHOD GetMessageID(nsACString & aMessageID); \
  NS_METHOD GetKey(nsMsgKey *aKey); \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSINNTPURL(_to) \
  NS_IMETHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost) override { return _to GetMessageToPost(aMessageToPost); } \
  NS_IMETHOD SetMessageToPost(nsINNTPNewsgroupPost *aMessageToPost) override { return _to SetMessageToPost(aMessageToPost); } \
  NS_IMETHOD GetNewsAction(nsNewsAction *aNewsAction) override { return _to GetNewsAction(aNewsAction); } \
  NS_IMETHOD SetNewsAction(nsNewsAction aNewsAction) override { return _to SetNewsAction(aNewsAction); } \
  NS_IMETHOD GetGetOldMessages(bool *aGetOldMessages) override { return _to GetGetOldMessages(aGetOldMessages); } \
  NS_IMETHOD SetGetOldMessages(bool aGetOldMessages) override { return _to SetGetOldMessages(aGetOldMessages); } \
  NS_IMETHOD GetGroup(nsACString & aGroup) override { return _to GetGroup(aGroup); } \
  NS_IMETHOD GetMessageID(nsACString & aMessageID) override { return _to GetMessageID(aMessageID); } \
  NS_IMETHOD GetKey(nsMsgKey *aKey) override { 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_IMETHOD GetMessageToPost(nsINNTPNewsgroupPost * *aMessageToPost) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageToPost(aMessageToPost); } \
  NS_IMETHOD SetMessageToPost(nsINNTPNewsgroupPost *aMessageToPost) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMessageToPost(aMessageToPost); } \
  NS_IMETHOD GetNewsAction(nsNewsAction *aNewsAction) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNewsAction(aNewsAction); } \
  NS_IMETHOD SetNewsAction(nsNewsAction aNewsAction) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetNewsAction(aNewsAction); } \
  NS_IMETHOD GetGetOldMessages(bool *aGetOldMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGetOldMessages(aGetOldMessages); } \
  NS_IMETHOD SetGetOldMessages(bool aGetOldMessages) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetGetOldMessages(aGetOldMessages); } \
  NS_IMETHOD GetGroup(nsACString & aGroup) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetGroup(aGroup); } \
  NS_IMETHOD GetMessageID(nsACString & aMessageID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMessageID(aMessageID); } \
  NS_IMETHOD GetKey(nsMsgKey *aKey) override { 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_ISUPPORTS(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 nsMsgKey key; */
NS_IMETHODIMP nsNntpUrl::GetKey(nsMsgKey *aKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsINntpUrl_h__ */
