/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /tmp/comm-release/mailnews/base/search/public/nsIMsgSearchValidityTable.idl
 */

#ifndef __gen_nsIMsgSearchValidityTable_h__
#define __gen_nsIMsgSearchValidityTable_h__


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

#ifndef __gen_nsMsgSearchCore_h__
#include "nsMsgSearchCore.h"
#endif

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


/* starting interface:    nsIMsgSearchValidityTable */
#define NS_IMSGSEARCHVALIDITYTABLE_IID_STR "b07f1cb6-fae9-4d92-9edb-03f9ad249c66"

#define NS_IMSGSEARCHVALIDITYTABLE_IID \
  {0xb07f1cb6, 0xfae9, 0x4d92, \
    { 0x9e, 0xdb, 0x03, 0xf9, 0xad, 0x24, 0x9c, 0x66 }}

class NS_NO_VTABLE nsIMsgSearchValidityTable : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMSGSEARCHVALIDITYTABLE_IID)

  /* void setAvailable (in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op, in boolean active); */
  NS_IMETHOD SetAvailable(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool active) = 0;

  /* void setEnabled (in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op, in boolean enabled); */
  NS_IMETHOD SetEnabled(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool enabled) = 0;

  /* void setValidButNotShown (in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op, in boolean valid); */
  NS_IMETHOD SetValidButNotShown(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool valid) = 0;

  /* boolean getAvailable (in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op); */
  NS_IMETHOD GetAvailable(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval) = 0;

  /* boolean getEnabled (in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op); */
  NS_IMETHOD GetEnabled(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval) = 0;

  /* boolean getValidButNotShown (in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op); */
  NS_IMETHOD GetValidButNotShown(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval) = 0;

  /* [noscript] void validateTerms (in nsISupportsArray terms); */
  NS_IMETHOD ValidateTerms(nsISupportsArray *terms) = 0;

  /* readonly attribute long numAvailAttribs; */
  NS_IMETHOD GetNumAvailAttribs(int32_t *aNumAvailAttribs) = 0;

  /* void getAvailableAttributes (out unsigned long length, [array, size_is (length), retval] out nsMsgSearchAttribValue attrs); */
  NS_IMETHOD GetAvailableAttributes(uint32_t *length, nsMsgSearchAttribValue **attrs) = 0;

  /* void getAvailableOperators (in nsMsgSearchAttribValue attrib, out unsigned long length, [array, size_is (length), retval] out nsMsgSearchOpValue operators); */
  NS_IMETHOD GetAvailableOperators(nsMsgSearchAttribValue attrib, uint32_t *length, nsMsgSearchOpValue **operators) = 0;

  /* void setDefaultAttrib (in nsMsgSearchAttribValue defaultAttrib); */
  NS_IMETHOD SetDefaultAttrib(nsMsgSearchAttribValue defaultAttrib) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMsgSearchValidityTable, NS_IMSGSEARCHVALIDITYTABLE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMSGSEARCHVALIDITYTABLE \
  NS_IMETHOD SetAvailable(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool active); \
  NS_IMETHOD SetEnabled(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool enabled); \
  NS_IMETHOD SetValidButNotShown(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool valid); \
  NS_IMETHOD GetAvailable(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval); \
  NS_IMETHOD GetEnabled(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval); \
  NS_IMETHOD GetValidButNotShown(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval); \
  NS_IMETHOD ValidateTerms(nsISupportsArray *terms); \
  NS_IMETHOD GetNumAvailAttribs(int32_t *aNumAvailAttribs); \
  NS_IMETHOD GetAvailableAttributes(uint32_t *length, nsMsgSearchAttribValue **attrs); \
  NS_IMETHOD GetAvailableOperators(nsMsgSearchAttribValue attrib, uint32_t *length, nsMsgSearchOpValue **operators); \
  NS_IMETHOD SetDefaultAttrib(nsMsgSearchAttribValue defaultAttrib); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMSGSEARCHVALIDITYTABLE(_to) \
  NS_IMETHOD SetAvailable(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool active) { return _to SetAvailable(attrib, op, active); } \
  NS_IMETHOD SetEnabled(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool enabled) { return _to SetEnabled(attrib, op, enabled); } \
  NS_IMETHOD SetValidButNotShown(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool valid) { return _to SetValidButNotShown(attrib, op, valid); } \
  NS_IMETHOD GetAvailable(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval) { return _to GetAvailable(attrib, op, _retval); } \
  NS_IMETHOD GetEnabled(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval) { return _to GetEnabled(attrib, op, _retval); } \
  NS_IMETHOD GetValidButNotShown(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval) { return _to GetValidButNotShown(attrib, op, _retval); } \
  NS_IMETHOD ValidateTerms(nsISupportsArray *terms) { return _to ValidateTerms(terms); } \
  NS_IMETHOD GetNumAvailAttribs(int32_t *aNumAvailAttribs) { return _to GetNumAvailAttribs(aNumAvailAttribs); } \
  NS_IMETHOD GetAvailableAttributes(uint32_t *length, nsMsgSearchAttribValue **attrs) { return _to GetAvailableAttributes(length, attrs); } \
  NS_IMETHOD GetAvailableOperators(nsMsgSearchAttribValue attrib, uint32_t *length, nsMsgSearchOpValue **operators) { return _to GetAvailableOperators(attrib, length, operators); } \
  NS_IMETHOD SetDefaultAttrib(nsMsgSearchAttribValue defaultAttrib) { return _to SetDefaultAttrib(defaultAttrib); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMSGSEARCHVALIDITYTABLE(_to) \
  NS_IMETHOD SetAvailable(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool active) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAvailable(attrib, op, active); } \
  NS_IMETHOD SetEnabled(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool enabled) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetEnabled(attrib, op, enabled); } \
  NS_IMETHOD SetValidButNotShown(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool valid) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetValidButNotShown(attrib, op, valid); } \
  NS_IMETHOD GetAvailable(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAvailable(attrib, op, _retval); } \
  NS_IMETHOD GetEnabled(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEnabled(attrib, op, _retval); } \
  NS_IMETHOD GetValidButNotShown(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValidButNotShown(attrib, op, _retval); } \
  NS_IMETHOD ValidateTerms(nsISupportsArray *terms) { return !_to ? NS_ERROR_NULL_POINTER : _to->ValidateTerms(terms); } \
  NS_IMETHOD GetNumAvailAttribs(int32_t *aNumAvailAttribs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNumAvailAttribs(aNumAvailAttribs); } \
  NS_IMETHOD GetAvailableAttributes(uint32_t *length, nsMsgSearchAttribValue **attrs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAvailableAttributes(length, attrs); } \
  NS_IMETHOD GetAvailableOperators(nsMsgSearchAttribValue attrib, uint32_t *length, nsMsgSearchOpValue **operators) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAvailableOperators(attrib, length, operators); } \
  NS_IMETHOD SetDefaultAttrib(nsMsgSearchAttribValue defaultAttrib) { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDefaultAttrib(defaultAttrib); } 

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

/* Header file */
class nsMsgSearchValidityTable : public nsIMsgSearchValidityTable
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMSGSEARCHVALIDITYTABLE

  nsMsgSearchValidityTable();

private:
  ~nsMsgSearchValidityTable();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMsgSearchValidityTable, nsIMsgSearchValidityTable)

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

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

/* void setAvailable (in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op, in boolean active); */
NS_IMETHODIMP nsMsgSearchValidityTable::SetAvailable(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool active)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setEnabled (in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op, in boolean enabled); */
NS_IMETHODIMP nsMsgSearchValidityTable::SetEnabled(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool enabled)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setValidButNotShown (in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op, in boolean valid); */
NS_IMETHODIMP nsMsgSearchValidityTable::SetValidButNotShown(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool valid)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean getAvailable (in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op); */
NS_IMETHODIMP nsMsgSearchValidityTable::GetAvailable(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean getEnabled (in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op); */
NS_IMETHODIMP nsMsgSearchValidityTable::GetEnabled(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean getValidButNotShown (in nsMsgSearchAttribValue attrib, in nsMsgSearchOpValue op); */
NS_IMETHODIMP nsMsgSearchValidityTable::GetValidButNotShown(nsMsgSearchAttribValue attrib, nsMsgSearchOpValue op, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [noscript] void validateTerms (in nsISupportsArray terms); */
NS_IMETHODIMP nsMsgSearchValidityTable::ValidateTerms(nsISupportsArray *terms)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long numAvailAttribs; */
NS_IMETHODIMP nsMsgSearchValidityTable::GetNumAvailAttribs(int32_t *aNumAvailAttribs)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAvailableAttributes (out unsigned long length, [array, size_is (length), retval] out nsMsgSearchAttribValue attrs); */
NS_IMETHODIMP nsMsgSearchValidityTable::GetAvailableAttributes(uint32_t *length, nsMsgSearchAttribValue **attrs)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAvailableOperators (in nsMsgSearchAttribValue attrib, out unsigned long length, [array, size_is (length), retval] out nsMsgSearchOpValue operators); */
NS_IMETHODIMP nsMsgSearchValidityTable::GetAvailableOperators(nsMsgSearchAttribValue attrib, uint32_t *length, nsMsgSearchOpValue **operators)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setDefaultAttrib (in nsMsgSearchAttribValue defaultAttrib); */
NS_IMETHODIMP nsMsgSearchValidityTable::SetDefaultAttrib(nsMsgSearchAttribValue defaultAttrib)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIMsgSearchValidityTable_h__ */
