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

#ifndef __gen_nsIMsgTraitService_h__
#define __gen_nsIMsgTraitService_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:    nsIMsgTraitService */
#define NS_IMSGTRAITSERVICE_IID_STR "2cb15fb0-a912-40d3-8882-f2765c75655f"

#define NS_IMSGTRAITSERVICE_IID \
  {0x2cb15fb0, 0xa912, 0x40d3, \
    { 0x88, 0x82, 0xf2, 0x76, 0x5c, 0x75, 0x65, 0x5f }}

class NS_NO_VTABLE nsIMsgTraitService : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGTRAITSERVICE_IID)

  /* readonly attribute long lastIndex; */
  NS_IMETHOD GetLastIndex(int32_t *aLastIndex) = 0;

  /* unsigned long registerTrait (in ACString id); */
  NS_IMETHOD RegisterTrait(const nsACString & id, uint32_t *_retval) = 0;

  /* void unRegisterTrait (in ACString id); */
  NS_IMETHOD UnRegisterTrait(const nsACString & id) = 0;

  /* boolean isRegistered (in ACString id); */
  NS_IMETHOD IsRegistered(const nsACString & id, bool *_retval) = 0;

  /* void setName (in ACString id, in ACString name); */
  NS_IMETHOD SetName(const nsACString & id, const nsACString & name) = 0;

  /* ACString getName (in ACString id); */
  NS_IMETHOD GetName(const nsACString & id, nsACString & _retval) = 0;

  /* unsigned long getIndex (in ACString id); */
  NS_IMETHOD GetIndex(const nsACString & id, uint32_t *_retval) = 0;

  /* ACString getId (in unsigned long index); */
  NS_IMETHOD GetId(uint32_t index, nsACString & _retval) = 0;

  /* void setEnabled (in ACString id, in boolean enabled); */
  NS_IMETHOD SetEnabled(const nsACString & id, bool enabled) = 0;

  /* boolean getEnabled (in ACString id); */
  NS_IMETHOD GetEnabled(const nsACString & id, bool *_retval) = 0;

  /* void setAntiId (in ACString id, in ACString antiId); */
  NS_IMETHOD SetAntiId(const nsACString & id, const nsACString & antiId) = 0;

  /* ACString getAntiId (in ACString id); */
  NS_IMETHOD GetAntiId(const nsACString & id, nsACString & _retval) = 0;

  /* void getEnabledIndices (out unsigned long count, [array, size_is (count)] out unsigned long proIndices, [array, size_is (count)] out unsigned long antiIndices); */
  NS_IMETHOD GetEnabledIndices(uint32_t *count, uint32_t **proIndices, uint32_t **antiIndices) = 0;

  /* void addAlias (in unsigned long aTraitIndex, in unsigned long aTraitAlias); */
  NS_IMETHOD AddAlias(uint32_t aTraitIndex, uint32_t aTraitAlias) = 0;

  /* void removeAlias (in unsigned long aTraitIndex, in unsigned long aTraitAlias); */
  NS_IMETHOD RemoveAlias(uint32_t aTraitIndex, uint32_t aTraitAlias) = 0;

  /* void getAliases (in unsigned long aTraitIndex, out unsigned long aLength, [array, size_is (aLength), retval] out unsigned long aAliases); */
  NS_IMETHOD GetAliases(uint32_t aTraitIndex, uint32_t *aLength, uint32_t **aAliases) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgTraitService, NS_IMSGTRAITSERVICE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGTRAITSERVICE \
  NS_IMETHOD GetLastIndex(int32_t *aLastIndex) override; \
  NS_IMETHOD RegisterTrait(const nsACString & id, uint32_t *_retval) override; \
  NS_IMETHOD UnRegisterTrait(const nsACString & id) override; \
  NS_IMETHOD IsRegistered(const nsACString & id, bool *_retval) override; \
  NS_IMETHOD SetName(const nsACString & id, const nsACString & name) override; \
  NS_IMETHOD GetName(const nsACString & id, nsACString & _retval) override; \
  NS_IMETHOD GetIndex(const nsACString & id, uint32_t *_retval) override; \
  NS_IMETHOD GetId(uint32_t index, nsACString & _retval) override; \
  NS_IMETHOD SetEnabled(const nsACString & id, bool enabled) override; \
  NS_IMETHOD GetEnabled(const nsACString & id, bool *_retval) override; \
  NS_IMETHOD SetAntiId(const nsACString & id, const nsACString & antiId) override; \
  NS_IMETHOD GetAntiId(const nsACString & id, nsACString & _retval) override; \
  NS_IMETHOD GetEnabledIndices(uint32_t *count, uint32_t **proIndices, uint32_t **antiIndices) override; \
  NS_IMETHOD AddAlias(uint32_t aTraitIndex, uint32_t aTraitAlias) override; \
  NS_IMETHOD RemoveAlias(uint32_t aTraitIndex, uint32_t aTraitAlias) override; \
  NS_IMETHOD GetAliases(uint32_t aTraitIndex, uint32_t *aLength, uint32_t **aAliases) 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_NSIMSGTRAITSERVICE \
  NS_METHOD GetLastIndex(int32_t *aLastIndex); \
  NS_METHOD RegisterTrait(const nsACString & id, uint32_t *_retval); \
  NS_METHOD UnRegisterTrait(const nsACString & id); \
  NS_METHOD IsRegistered(const nsACString & id, bool *_retval); \
  NS_METHOD SetName(const nsACString & id, const nsACString & name); \
  NS_METHOD GetName(const nsACString & id, nsACString & _retval); \
  NS_METHOD GetIndex(const nsACString & id, uint32_t *_retval); \
  NS_METHOD GetId(uint32_t index, nsACString & _retval); \
  NS_METHOD SetEnabled(const nsACString & id, bool enabled); \
  NS_METHOD GetEnabled(const nsACString & id, bool *_retval); \
  NS_METHOD SetAntiId(const nsACString & id, const nsACString & antiId); \
  NS_METHOD GetAntiId(const nsACString & id, nsACString & _retval); \
  NS_METHOD GetEnabledIndices(uint32_t *count, uint32_t **proIndices, uint32_t **antiIndices); \
  NS_METHOD AddAlias(uint32_t aTraitIndex, uint32_t aTraitAlias); \
  NS_METHOD RemoveAlias(uint32_t aTraitIndex, uint32_t aTraitAlias); \
  NS_METHOD GetAliases(uint32_t aTraitIndex, uint32_t *aLength, uint32_t **aAliases); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGTRAITSERVICE(_to) \
  NS_IMETHOD GetLastIndex(int32_t *aLastIndex) override { return _to GetLastIndex(aLastIndex); } \
  NS_IMETHOD RegisterTrait(const nsACString & id, uint32_t *_retval) override { return _to RegisterTrait(id, _retval); } \
  NS_IMETHOD UnRegisterTrait(const nsACString & id) override { return _to UnRegisterTrait(id); } \
  NS_IMETHOD IsRegistered(const nsACString & id, bool *_retval) override { return _to IsRegistered(id, _retval); } \
  NS_IMETHOD SetName(const nsACString & id, const nsACString & name) override { return _to SetName(id, name); } \
  NS_IMETHOD GetName(const nsACString & id, nsACString & _retval) override { return _to GetName(id, _retval); } \
  NS_IMETHOD GetIndex(const nsACString & id, uint32_t *_retval) override { return _to GetIndex(id, _retval); } \
  NS_IMETHOD GetId(uint32_t index, nsACString & _retval) override { return _to GetId(index, _retval); } \
  NS_IMETHOD SetEnabled(const nsACString & id, bool enabled) override { return _to SetEnabled(id, enabled); } \
  NS_IMETHOD GetEnabled(const nsACString & id, bool *_retval) override { return _to GetEnabled(id, _retval); } \
  NS_IMETHOD SetAntiId(const nsACString & id, const nsACString & antiId) override { return _to SetAntiId(id, antiId); } \
  NS_IMETHOD GetAntiId(const nsACString & id, nsACString & _retval) override { return _to GetAntiId(id, _retval); } \
  NS_IMETHOD GetEnabledIndices(uint32_t *count, uint32_t **proIndices, uint32_t **antiIndices) override { return _to GetEnabledIndices(count, proIndices, antiIndices); } \
  NS_IMETHOD AddAlias(uint32_t aTraitIndex, uint32_t aTraitAlias) override { return _to AddAlias(aTraitIndex, aTraitAlias); } \
  NS_IMETHOD RemoveAlias(uint32_t aTraitIndex, uint32_t aTraitAlias) override { return _to RemoveAlias(aTraitIndex, aTraitAlias); } \
  NS_IMETHOD GetAliases(uint32_t aTraitIndex, uint32_t *aLength, uint32_t **aAliases) override { return _to GetAliases(aTraitIndex, aLength, aAliases); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGTRAITSERVICE(_to) \
  NS_IMETHOD GetLastIndex(int32_t *aLastIndex) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLastIndex(aLastIndex); } \
  NS_IMETHOD RegisterTrait(const nsACString & id, uint32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RegisterTrait(id, _retval); } \
  NS_IMETHOD UnRegisterTrait(const nsACString & id) override { return !_to ? NS_ERROR_NULL_POINTER : _to->UnRegisterTrait(id); } \
  NS_IMETHOD IsRegistered(const nsACString & id, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsRegistered(id, _retval); } \
  NS_IMETHOD SetName(const nsACString & id, const nsACString & name) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetName(id, name); } \
  NS_IMETHOD GetName(const nsACString & id, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(id, _retval); } \
  NS_IMETHOD GetIndex(const nsACString & id, uint32_t *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIndex(id, _retval); } \
  NS_IMETHOD GetId(uint32_t index, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetId(index, _retval); } \
  NS_IMETHOD SetEnabled(const nsACString & id, bool enabled) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabled(id, enabled); } \
  NS_IMETHOD GetEnabled(const nsACString & id, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(id, _retval); } \
  NS_IMETHOD SetAntiId(const nsACString & id, const nsACString & antiId) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAntiId(id, antiId); } \
  NS_IMETHOD GetAntiId(const nsACString & id, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAntiId(id, _retval); } \
  NS_IMETHOD GetEnabledIndices(uint32_t *count, uint32_t **proIndices, uint32_t **antiIndices) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabledIndices(count, proIndices, antiIndices); } \
  NS_IMETHOD AddAlias(uint32_t aTraitIndex, uint32_t aTraitAlias) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddAlias(aTraitIndex, aTraitAlias); } \
  NS_IMETHOD RemoveAlias(uint32_t aTraitIndex, uint32_t aTraitAlias) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAlias(aTraitIndex, aTraitAlias); } \
  NS_IMETHOD GetAliases(uint32_t aTraitIndex, uint32_t *aLength, uint32_t **aAliases) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAliases(aTraitIndex, aLength, aAliases); } 

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

/* Header file */
class nsMsgTraitService : public nsIMsgTraitService
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGTRAITSERVICE

  nsMsgTraitService();

private:
  ~nsMsgTraitService();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMsgTraitService, nsIMsgTraitService)

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

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

/* readonly attribute long lastIndex; */
NS_IMETHODIMP nsMsgTraitService::GetLastIndex(int32_t *aLastIndex)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* unsigned long registerTrait (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::RegisterTrait(const nsACString & id, uint32_t *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void unRegisterTrait (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::UnRegisterTrait(const nsACString & id)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean isRegistered (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::IsRegistered(const nsACString & id, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setName (in ACString id, in ACString name); */
NS_IMETHODIMP nsMsgTraitService::SetName(const nsACString & id, const nsACString & name)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getName (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::GetName(const nsACString & id, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* unsigned long getIndex (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::GetIndex(const nsACString & id, uint32_t *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getId (in unsigned long index); */
NS_IMETHODIMP nsMsgTraitService::GetId(uint32_t index, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setEnabled (in ACString id, in boolean enabled); */
NS_IMETHODIMP nsMsgTraitService::SetEnabled(const nsACString & id, bool enabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean getEnabled (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::GetEnabled(const nsACString & id, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setAntiId (in ACString id, in ACString antiId); */
NS_IMETHODIMP nsMsgTraitService::SetAntiId(const nsACString & id, const nsACString & antiId)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString getAntiId (in ACString id); */
NS_IMETHODIMP nsMsgTraitService::GetAntiId(const nsACString & id, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getEnabledIndices (out unsigned long count, [array, size_is (count)] out unsigned long proIndices, [array, size_is (count)] out unsigned long antiIndices); */
NS_IMETHODIMP nsMsgTraitService::GetEnabledIndices(uint32_t *count, uint32_t **proIndices, uint32_t **antiIndices)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addAlias (in unsigned long aTraitIndex, in unsigned long aTraitAlias); */
NS_IMETHODIMP nsMsgTraitService::AddAlias(uint32_t aTraitIndex, uint32_t aTraitAlias)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAlias (in unsigned long aTraitIndex, in unsigned long aTraitAlias); */
NS_IMETHODIMP nsMsgTraitService::RemoveAlias(uint32_t aTraitIndex, uint32_t aTraitAlias)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAliases (in unsigned long aTraitIndex, out unsigned long aLength, [array, size_is (aLength), retval] out unsigned long aAliases); */
NS_IMETHODIMP nsMsgTraitService::GetAliases(uint32_t aTraitIndex, uint32_t *aLength, uint32_t **aAliases)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgTraitService_h__ */
