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

#ifndef __gen_nsIMsgTagService_h__
#define __gen_nsIMsgTagService_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

/* starting interface:    nsIMsgTag */
#define NS_IMSGTAG_IID_STR "84d593a3-5d8a-45e6-96e2-9189acd422e1"

#define NS_IMSGTAG_IID \
  {0x84d593a3, 0x5d8a, 0x45e6, \
    { 0x96, 0xe2, 0x91, 0x89, 0xac, 0xd4, 0x22, 0xe1 }}

class NS_NO_VTABLE nsIMsgTag : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGTAG_IID)

  /* readonly attribute ACString key; */
  NS_IMETHOD GetKey(nsACString & aKey) = 0;

  /* readonly attribute AString tag; */
  NS_IMETHOD GetTag(nsAString & aTag) = 0;

  /* readonly attribute ACString color; */
  NS_IMETHOD GetColor(nsACString & aColor) = 0;

  /* readonly attribute ACString ordinal; */
  NS_IMETHOD GetOrdinal(nsACString & aOrdinal) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgTag, NS_IMSGTAG_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGTAG \
  NS_IMETHOD GetKey(nsACString & aKey) override; \
  NS_IMETHOD GetTag(nsAString & aTag) override; \
  NS_IMETHOD GetColor(nsACString & aColor) override; \
  NS_IMETHOD GetOrdinal(nsACString & aOrdinal) 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_NSIMSGTAG \
  NS_METHOD GetKey(nsACString & aKey); \
  NS_METHOD GetTag(nsAString & aTag); \
  NS_METHOD GetColor(nsACString & aColor); \
  NS_METHOD GetOrdinal(nsACString & aOrdinal); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGTAG(_to) \
  NS_IMETHOD GetKey(nsACString & aKey) override { return _to GetKey(aKey); } \
  NS_IMETHOD GetTag(nsAString & aTag) override { return _to GetTag(aTag); } \
  NS_IMETHOD GetColor(nsACString & aColor) override { return _to GetColor(aColor); } \
  NS_IMETHOD GetOrdinal(nsACString & aOrdinal) override { return _to GetOrdinal(aOrdinal); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGTAG(_to) \
  NS_IMETHOD GetKey(nsACString & aKey) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKey(aKey); } \
  NS_IMETHOD GetTag(nsAString & aTag) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTag(aTag); } \
  NS_IMETHOD GetColor(nsACString & aColor) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetColor(aColor); } \
  NS_IMETHOD GetOrdinal(nsACString & aOrdinal) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrdinal(aOrdinal); } 

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

/* Header file */
class nsMsgTag : public nsIMsgTag
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGTAG

  nsMsgTag();

private:
  ~nsMsgTag();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMsgTag, nsIMsgTag)

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

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

/* readonly attribute ACString key; */
NS_IMETHODIMP nsMsgTag::GetKey(nsACString & aKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AString tag; */
NS_IMETHODIMP nsMsgTag::GetTag(nsAString & aTag)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString color; */
NS_IMETHODIMP nsMsgTag::GetColor(nsACString & aColor)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString ordinal; */
NS_IMETHODIMP nsMsgTag::GetOrdinal(nsACString & aOrdinal)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIMsgTagService */
#define NS_IMSGTAGSERVICE_IID_STR "97360ce3-0fba-4f1c-8214-af7bdc6f8587"

#define NS_IMSGTAGSERVICE_IID \
  {0x97360ce3, 0x0fba, 0x4f1c, \
    { 0x82, 0x14, 0xaf, 0x7b, 0xdc, 0x6f, 0x85, 0x87 }}

class NS_NO_VTABLE nsIMsgTagService : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGTAGSERVICE_IID)

  /* void addTag (in AString tag, in ACString color, in ACString ordinal); */
  NS_IMETHOD AddTag(const nsAString & tag, const nsACString & color, const nsACString & ordinal) = 0;

  /* void addTagForKey (in ACString key, in AString tag, in ACString color, in ACString ordinal); */
  NS_IMETHOD AddTagForKey(const nsACString & key, const nsAString & tag, const nsACString & color, const nsACString & ordinal) = 0;

  /* ACString getKeyForTag (in AString tag); */
  NS_IMETHOD GetKeyForTag(const nsAString & tag, nsACString & _retval) = 0;

  /* ACString getTopKey (in ACString keyList); */
  NS_IMETHOD GetTopKey(const nsACString & keyList, nsACString & _retval) = 0;

  /* AString getTagForKey (in ACString key); */
  NS_IMETHOD GetTagForKey(const nsACString & key, nsAString & _retval) = 0;

  /* void setTagForKey (in ACString key, in AString tag); */
  NS_IMETHOD SetTagForKey(const nsACString & key, const nsAString & tag) = 0;

  /* ACString getColorForKey (in ACString key); */
  NS_IMETHOD GetColorForKey(const nsACString & key, nsACString & _retval) = 0;

  /* void setColorForKey (in ACString key, in ACString color); */
  NS_IMETHOD SetColorForKey(const nsACString & key, const nsACString & color) = 0;

  /* ACString getOrdinalForKey (in ACString key); */
  NS_IMETHOD GetOrdinalForKey(const nsACString & key, nsACString & _retval) = 0;

  /* void setOrdinalForKey (in ACString key, in ACString ordinal); */
  NS_IMETHOD SetOrdinalForKey(const nsACString & key, const nsACString & ordinal) = 0;

  /* void deleteKey (in ACString key); */
  NS_IMETHOD DeleteKey(const nsACString & key) = 0;

  /* void getAllTags (out unsigned long count, [array, size_is (count), retval] out nsIMsgTag tagArray); */
  NS_IMETHOD GetAllTags(uint32_t *count, nsIMsgTag * **tagArray) = 0;

  /* boolean isValidKey (in ACString aKey); */
  NS_IMETHOD IsValidKey(const nsACString & aKey, bool *_retval) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgTagService, NS_IMSGTAGSERVICE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGTAGSERVICE \
  NS_IMETHOD AddTag(const nsAString & tag, const nsACString & color, const nsACString & ordinal) override; \
  NS_IMETHOD AddTagForKey(const nsACString & key, const nsAString & tag, const nsACString & color, const nsACString & ordinal) override; \
  NS_IMETHOD GetKeyForTag(const nsAString & tag, nsACString & _retval) override; \
  NS_IMETHOD GetTopKey(const nsACString & keyList, nsACString & _retval) override; \
  NS_IMETHOD GetTagForKey(const nsACString & key, nsAString & _retval) override; \
  NS_IMETHOD SetTagForKey(const nsACString & key, const nsAString & tag) override; \
  NS_IMETHOD GetColorForKey(const nsACString & key, nsACString & _retval) override; \
  NS_IMETHOD SetColorForKey(const nsACString & key, const nsACString & color) override; \
  NS_IMETHOD GetOrdinalForKey(const nsACString & key, nsACString & _retval) override; \
  NS_IMETHOD SetOrdinalForKey(const nsACString & key, const nsACString & ordinal) override; \
  NS_IMETHOD DeleteKey(const nsACString & key) override; \
  NS_IMETHOD GetAllTags(uint32_t *count, nsIMsgTag * **tagArray) override; \
  NS_IMETHOD IsValidKey(const nsACString & aKey, bool *_retval) 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_NSIMSGTAGSERVICE \
  NS_METHOD AddTag(const nsAString & tag, const nsACString & color, const nsACString & ordinal); \
  NS_METHOD AddTagForKey(const nsACString & key, const nsAString & tag, const nsACString & color, const nsACString & ordinal); \
  NS_METHOD GetKeyForTag(const nsAString & tag, nsACString & _retval); \
  NS_METHOD GetTopKey(const nsACString & keyList, nsACString & _retval); \
  NS_METHOD GetTagForKey(const nsACString & key, nsAString & _retval); \
  NS_METHOD SetTagForKey(const nsACString & key, const nsAString & tag); \
  NS_METHOD GetColorForKey(const nsACString & key, nsACString & _retval); \
  NS_METHOD SetColorForKey(const nsACString & key, const nsACString & color); \
  NS_METHOD GetOrdinalForKey(const nsACString & key, nsACString & _retval); \
  NS_METHOD SetOrdinalForKey(const nsACString & key, const nsACString & ordinal); \
  NS_METHOD DeleteKey(const nsACString & key); \
  NS_METHOD GetAllTags(uint32_t *count, nsIMsgTag * **tagArray); \
  NS_METHOD IsValidKey(const nsACString & aKey, bool *_retval); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGTAGSERVICE(_to) \
  NS_IMETHOD AddTag(const nsAString & tag, const nsACString & color, const nsACString & ordinal) override { return _to AddTag(tag, color, ordinal); } \
  NS_IMETHOD AddTagForKey(const nsACString & key, const nsAString & tag, const nsACString & color, const nsACString & ordinal) override { return _to AddTagForKey(key, tag, color, ordinal); } \
  NS_IMETHOD GetKeyForTag(const nsAString & tag, nsACString & _retval) override { return _to GetKeyForTag(tag, _retval); } \
  NS_IMETHOD GetTopKey(const nsACString & keyList, nsACString & _retval) override { return _to GetTopKey(keyList, _retval); } \
  NS_IMETHOD GetTagForKey(const nsACString & key, nsAString & _retval) override { return _to GetTagForKey(key, _retval); } \
  NS_IMETHOD SetTagForKey(const nsACString & key, const nsAString & tag) override { return _to SetTagForKey(key, tag); } \
  NS_IMETHOD GetColorForKey(const nsACString & key, nsACString & _retval) override { return _to GetColorForKey(key, _retval); } \
  NS_IMETHOD SetColorForKey(const nsACString & key, const nsACString & color) override { return _to SetColorForKey(key, color); } \
  NS_IMETHOD GetOrdinalForKey(const nsACString & key, nsACString & _retval) override { return _to GetOrdinalForKey(key, _retval); } \
  NS_IMETHOD SetOrdinalForKey(const nsACString & key, const nsACString & ordinal) override { return _to SetOrdinalForKey(key, ordinal); } \
  NS_IMETHOD DeleteKey(const nsACString & key) override { return _to DeleteKey(key); } \
  NS_IMETHOD GetAllTags(uint32_t *count, nsIMsgTag * **tagArray) override { return _to GetAllTags(count, tagArray); } \
  NS_IMETHOD IsValidKey(const nsACString & aKey, bool *_retval) override { return _to IsValidKey(aKey, _retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGTAGSERVICE(_to) \
  NS_IMETHOD AddTag(const nsAString & tag, const nsACString & color, const nsACString & ordinal) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddTag(tag, color, ordinal); } \
  NS_IMETHOD AddTagForKey(const nsACString & key, const nsAString & tag, const nsACString & color, const nsACString & ordinal) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddTagForKey(key, tag, color, ordinal); } \
  NS_IMETHOD GetKeyForTag(const nsAString & tag, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKeyForTag(tag, _retval); } \
  NS_IMETHOD GetTopKey(const nsACString & keyList, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTopKey(keyList, _retval); } \
  NS_IMETHOD GetTagForKey(const nsACString & key, nsAString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTagForKey(key, _retval); } \
  NS_IMETHOD SetTagForKey(const nsACString & key, const nsAString & tag) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetTagForKey(key, tag); } \
  NS_IMETHOD GetColorForKey(const nsACString & key, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetColorForKey(key, _retval); } \
  NS_IMETHOD SetColorForKey(const nsACString & key, const nsACString & color) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetColorForKey(key, color); } \
  NS_IMETHOD GetOrdinalForKey(const nsACString & key, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrdinalForKey(key, _retval); } \
  NS_IMETHOD SetOrdinalForKey(const nsACString & key, const nsACString & ordinal) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOrdinalForKey(key, ordinal); } \
  NS_IMETHOD DeleteKey(const nsACString & key) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DeleteKey(key); } \
  NS_IMETHOD GetAllTags(uint32_t *count, nsIMsgTag * **tagArray) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllTags(count, tagArray); } \
  NS_IMETHOD IsValidKey(const nsACString & aKey, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsValidKey(aKey, _retval); } 

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

/* Header file */
class nsMsgTagService : public nsIMsgTagService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGTAGSERVICE

  nsMsgTagService();

private:
  ~nsMsgTagService();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMsgTagService, nsIMsgTagService)

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

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

/* void addTag (in AString tag, in ACString color, in ACString ordinal); */
NS_IMETHODIMP nsMsgTagService::AddTag(const nsAString & tag, const nsACString & color, const nsACString & ordinal)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addTagForKey (in ACString key, in AString tag, in ACString color, in ACString ordinal); */
NS_IMETHODIMP nsMsgTagService::AddTagForKey(const nsACString & key, const nsAString & tag, const nsACString & color, const nsACString & ordinal)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getKeyForTag (in AString tag); */
NS_IMETHODIMP nsMsgTagService::GetKeyForTag(const nsAString & tag, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getTopKey (in ACString keyList); */
NS_IMETHODIMP nsMsgTagService::GetTopKey(const nsACString & keyList, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* AString getTagForKey (in ACString key); */
NS_IMETHODIMP nsMsgTagService::GetTagForKey(const nsACString & key, nsAString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setTagForKey (in ACString key, in AString tag); */
NS_IMETHODIMP nsMsgTagService::SetTagForKey(const nsACString & key, const nsAString & tag)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getColorForKey (in ACString key); */
NS_IMETHODIMP nsMsgTagService::GetColorForKey(const nsACString & key, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setColorForKey (in ACString key, in ACString color); */
NS_IMETHODIMP nsMsgTagService::SetColorForKey(const nsACString & key, const nsACString & color)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getOrdinalForKey (in ACString key); */
NS_IMETHODIMP nsMsgTagService::GetOrdinalForKey(const nsACString & key, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setOrdinalForKey (in ACString key, in ACString ordinal); */
NS_IMETHODIMP nsMsgTagService::SetOrdinalForKey(const nsACString & key, const nsACString & ordinal)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void deleteKey (in ACString key); */
NS_IMETHODIMP nsMsgTagService::DeleteKey(const nsACString & key)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAllTags (out unsigned long count, [array, size_is (count), retval] out nsIMsgTag tagArray); */
NS_IMETHODIMP nsMsgTagService::GetAllTags(uint32_t *count, nsIMsgTag * **tagArray)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isValidKey (in ACString aKey); */
NS_IMETHODIMP nsMsgTagService::IsValidKey(const nsACString & aKey, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgTagService_h__ */
