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

#ifndef __gen_nsINNTPNewsgroup_h__
#define __gen_nsINNTPNewsgroup_h__

#include "nsISupports.h"

#include "nsMsgKeySet.h"
class nsMsgKeySet; /* forward declaration */

class nsINNTPNewsgroupList; /* forward declaration */


/* starting interface:    nsINNTPNewsgroup */
#define NS_INNTPNEWSGROUP_IID_STR "1a39cd90-acaf-11d2-b7ee-00805f05ffa5"

#define NS_INNTPNEWSGROUP_IID \
  {0x1a39cd90, 0xacaf, 0x11d2, \
    { 0xb7, 0xee, 0x00, 0x80, 0x5f, 0x05, 0xff, 0xa5 }}

class NS_NO_VTABLE nsINNTPNewsgroup : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_INNTPNEWSGROUP_IID)

  /* attribute string name; */
  NS_IMETHOD GetName(char * *aName) = 0;
  NS_IMETHOD SetName(const char * aName) = 0;

  /* attribute string prettyName; */
  NS_IMETHOD GetPrettyName(char * *aPrettyName) = 0;
  NS_IMETHOD SetPrettyName(const char * aPrettyName) = 0;

  /* attribute boolean needsExtraInfo; */
  NS_IMETHOD GetNeedsExtraInfo(PRBool *aNeedsExtraInfo) = 0;
  NS_IMETHOD SetNeedsExtraInfo(PRBool aNeedsExtraInfo) = 0;

  /* boolean IsOfflineArticle (in long num); */
  NS_IMETHOD IsOfflineArticle(PRInt32 num, PRBool *_retval) = 0;

  /* attribute boolean category; */
  NS_IMETHOD GetCategory(PRBool *aCategory) = 0;
  NS_IMETHOD SetCategory(PRBool aCategory) = 0;

  /* attribute boolean subscribed; */
  NS_IMETHOD GetSubscribed(PRBool *aSubscribed) = 0;
  NS_IMETHOD SetSubscribed(PRBool aSubscribed) = 0;

  /* attribute boolean wantNewTotals; */
  NS_IMETHOD GetWantNewTotals(PRBool *aWantNewTotals) = 0;
  NS_IMETHOD SetWantNewTotals(PRBool aWantNewTotals) = 0;

  /* attribute nsINNTPNewsgroupList newsgroupList; */
  NS_IMETHOD GetNewsgroupList(nsINNTPNewsgroupList * *aNewsgroupList) = 0;
  NS_IMETHOD SetNewsgroupList(nsINNTPNewsgroupList * aNewsgroupList) = 0;

  /* void UpdateSummaryFromNNTPInfo (in long oldest, in long youngest, in long total_messages); */
  NS_IMETHOD UpdateSummaryFromNNTPInfo(PRInt32 oldest, PRInt32 youngest, PRInt32 total_messages) = 0;

  /* void Initialize (in string name, in nsMsgKeySet set, in boolean subscribed); */
  NS_IMETHOD Initialize(const char *name, nsMsgKeySet *set, PRBool subscribed) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSINNTPNEWSGROUP \
  NS_IMETHOD GetName(char * *aName); \
  NS_IMETHOD SetName(const char * aName); \
  NS_IMETHOD GetPrettyName(char * *aPrettyName); \
  NS_IMETHOD SetPrettyName(const char * aPrettyName); \
  NS_IMETHOD GetNeedsExtraInfo(PRBool *aNeedsExtraInfo); \
  NS_IMETHOD SetNeedsExtraInfo(PRBool aNeedsExtraInfo); \
  NS_IMETHOD IsOfflineArticle(PRInt32 num, PRBool *_retval); \
  NS_IMETHOD GetCategory(PRBool *aCategory); \
  NS_IMETHOD SetCategory(PRBool aCategory); \
  NS_IMETHOD GetSubscribed(PRBool *aSubscribed); \
  NS_IMETHOD SetSubscribed(PRBool aSubscribed); \
  NS_IMETHOD GetWantNewTotals(PRBool *aWantNewTotals); \
  NS_IMETHOD SetWantNewTotals(PRBool aWantNewTotals); \
  NS_IMETHOD GetNewsgroupList(nsINNTPNewsgroupList * *aNewsgroupList); \
  NS_IMETHOD SetNewsgroupList(nsINNTPNewsgroupList * aNewsgroupList); \
  NS_IMETHOD UpdateSummaryFromNNTPInfo(PRInt32 oldest, PRInt32 youngest, PRInt32 total_messages); \
  NS_IMETHOD Initialize(const char *name, nsMsgKeySet *set, PRBool subscribed); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSINNTPNEWSGROUP(_to) \
  NS_IMETHOD GetName(char * *aName) { return _to ## GetName(aName); } \
  NS_IMETHOD SetName(const char * aName) { return _to ## SetName(aName); } \
  NS_IMETHOD GetPrettyName(char * *aPrettyName) { return _to ## GetPrettyName(aPrettyName); } \
  NS_IMETHOD SetPrettyName(const char * aPrettyName) { return _to ## SetPrettyName(aPrettyName); } \
  NS_IMETHOD GetNeedsExtraInfo(PRBool *aNeedsExtraInfo) { return _to ## GetNeedsExtraInfo(aNeedsExtraInfo); } \
  NS_IMETHOD SetNeedsExtraInfo(PRBool aNeedsExtraInfo) { return _to ## SetNeedsExtraInfo(aNeedsExtraInfo); } \
  NS_IMETHOD IsOfflineArticle(PRInt32 num, PRBool *_retval) { return _to ## IsOfflineArticle(num, _retval); } \
  NS_IMETHOD GetCategory(PRBool *aCategory) { return _to ## GetCategory(aCategory); } \
  NS_IMETHOD SetCategory(PRBool aCategory) { return _to ## SetCategory(aCategory); } \
  NS_IMETHOD GetSubscribed(PRBool *aSubscribed) { return _to ## GetSubscribed(aSubscribed); } \
  NS_IMETHOD SetSubscribed(PRBool aSubscribed) { return _to ## SetSubscribed(aSubscribed); } \
  NS_IMETHOD GetWantNewTotals(PRBool *aWantNewTotals) { return _to ## GetWantNewTotals(aWantNewTotals); } \
  NS_IMETHOD SetWantNewTotals(PRBool aWantNewTotals) { return _to ## SetWantNewTotals(aWantNewTotals); } \
  NS_IMETHOD GetNewsgroupList(nsINNTPNewsgroupList * *aNewsgroupList) { return _to ## GetNewsgroupList(aNewsgroupList); } \
  NS_IMETHOD SetNewsgroupList(nsINNTPNewsgroupList * aNewsgroupList) { return _to ## SetNewsgroupList(aNewsgroupList); } \
  NS_IMETHOD UpdateSummaryFromNNTPInfo(PRInt32 oldest, PRInt32 youngest, PRInt32 total_messages) { return _to ## UpdateSummaryFromNNTPInfo(oldest, youngest, total_messages); } \
  NS_IMETHOD Initialize(const char *name, nsMsgKeySet *set, PRBool subscribed) { return _to ## Initialize(name, set, subscribed); } 

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

/* Header file */
class nsNNTPNewsgroup : public nsINNTPNewsgroup
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSINNTPNEWSGROUP

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

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsNNTPNewsgroup, nsINNTPNewsgroup)

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

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

/* attribute string name; */
NS_IMETHODIMP nsNNTPNewsgroup::GetName(char * *aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNNTPNewsgroup::SetName(const char * aName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string prettyName; */
NS_IMETHODIMP nsNNTPNewsgroup::GetPrettyName(char * *aPrettyName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNNTPNewsgroup::SetPrettyName(const char * aPrettyName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean needsExtraInfo; */
NS_IMETHODIMP nsNNTPNewsgroup::GetNeedsExtraInfo(PRBool *aNeedsExtraInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNNTPNewsgroup::SetNeedsExtraInfo(PRBool aNeedsExtraInfo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean IsOfflineArticle (in long num); */
NS_IMETHODIMP nsNNTPNewsgroup::IsOfflineArticle(PRInt32 num, PRBool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean category; */
NS_IMETHODIMP nsNNTPNewsgroup::GetCategory(PRBool *aCategory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNNTPNewsgroup::SetCategory(PRBool aCategory)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean subscribed; */
NS_IMETHODIMP nsNNTPNewsgroup::GetSubscribed(PRBool *aSubscribed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNNTPNewsgroup::SetSubscribed(PRBool aSubscribed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean wantNewTotals; */
NS_IMETHODIMP nsNNTPNewsgroup::GetWantNewTotals(PRBool *aWantNewTotals)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNNTPNewsgroup::SetWantNewTotals(PRBool aWantNewTotals)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsINNTPNewsgroupList newsgroupList; */
NS_IMETHODIMP nsNNTPNewsgroup::GetNewsgroupList(nsINNTPNewsgroupList * *aNewsgroupList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsNNTPNewsgroup::SetNewsgroupList(nsINNTPNewsgroupList * aNewsgroupList)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void UpdateSummaryFromNNTPInfo (in long oldest, in long youngest, in long total_messages); */
NS_IMETHODIMP nsNNTPNewsgroup::UpdateSummaryFromNNTPInfo(PRInt32 oldest, PRInt32 youngest, PRInt32 total_messages)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void Initialize (in string name, in nsMsgKeySet set, in boolean subscribed); */
NS_IMETHODIMP nsNNTPNewsgroup::Initialize(const char *name, nsMsgKeySet *set, PRBool subscribed)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsINNTPNewsgroup_h__ */
