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

#ifndef __gen_nsIAbLDAPCard_h__
#define __gen_nsIAbLDAPCard_h__


#ifndef __gen_nsIAbCard_h__
#include "nsIAbCard.h"
#endif

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

class nsILDAPModification; /* forward declaration */

class nsILDAPMessage; /* forward declaration */

class nsIArray; /* forward declaration */


/* starting interface:    nsIAbLDAPCard */
#define NS_IABLDAPCARD_IID_STR "2831b3b0-30ef-4070-8ad3-90ae04980e11"

#define NS_IABLDAPCARD_IID \
  {0x2831b3b0, 0x30ef, 0x4070, \
    { 0x8a, 0xd3, 0x90, 0xae, 0x04, 0x98, 0x0e, 0x11 }}

class NS_NO_VTABLE nsIAbLDAPCard : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IABLDAPCARD_IID)

  /* nsIArray getLDAPMessageInfo (in nsIAbLDAPAttributeMap aAttrMap, in unsigned long aClassCount, [array, size_is (aClassCount)] in string aClasses, in long updateType); */
  NS_IMETHOD GetLDAPMessageInfo(nsIAbLDAPAttributeMap *aAttrMap, uint32_t aClassCount, const char * *aClasses, int32_t updateType, nsIArray * *_retval) = 0;

  /* ACString buildRdn (in nsIAbLDAPAttributeMap aAttrMap, in unsigned long aAttrCount, [array, size_is (aAttrCount)] in string aAttributes); */
  NS_IMETHOD BuildRdn(nsIAbLDAPAttributeMap *aAttrMap, uint32_t aAttrCount, const char * *aAttributes, nsACString & _retval) = 0;

  /* void setMetaProperties (in nsILDAPMessage aMessage); */
  NS_IMETHOD SetMetaProperties(nsILDAPMessage *aMessage) = 0;

  /* attribute ACString dn; */
  NS_IMETHOD GetDn(nsACString & aDn) = 0;
  NS_IMETHOD SetDn(const nsACString & aDn) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIAbLDAPCard, NS_IABLDAPCARD_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIABLDAPCARD \
  NS_IMETHOD GetLDAPMessageInfo(nsIAbLDAPAttributeMap *aAttrMap, uint32_t aClassCount, const char * *aClasses, int32_t updateType, nsIArray * *_retval) override; \
  NS_IMETHOD BuildRdn(nsIAbLDAPAttributeMap *aAttrMap, uint32_t aAttrCount, const char * *aAttributes, nsACString & _retval) override; \
  NS_IMETHOD SetMetaProperties(nsILDAPMessage *aMessage) override; \
  NS_IMETHOD GetDn(nsACString & aDn) override; \
  NS_IMETHOD SetDn(const nsACString & aDn) 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_NSIABLDAPCARD \
  NS_METHOD GetLDAPMessageInfo(nsIAbLDAPAttributeMap *aAttrMap, uint32_t aClassCount, const char * *aClasses, int32_t updateType, nsIArray * *_retval); \
  NS_METHOD BuildRdn(nsIAbLDAPAttributeMap *aAttrMap, uint32_t aAttrCount, const char * *aAttributes, nsACString & _retval); \
  NS_METHOD SetMetaProperties(nsILDAPMessage *aMessage); \
  NS_METHOD GetDn(nsACString & aDn); \
  NS_METHOD SetDn(const nsACString & aDn); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIABLDAPCARD(_to) \
  NS_IMETHOD GetLDAPMessageInfo(nsIAbLDAPAttributeMap *aAttrMap, uint32_t aClassCount, const char * *aClasses, int32_t updateType, nsIArray * *_retval) override { return _to GetLDAPMessageInfo(aAttrMap, aClassCount, aClasses, updateType, _retval); } \
  NS_IMETHOD BuildRdn(nsIAbLDAPAttributeMap *aAttrMap, uint32_t aAttrCount, const char * *aAttributes, nsACString & _retval) override { return _to BuildRdn(aAttrMap, aAttrCount, aAttributes, _retval); } \
  NS_IMETHOD SetMetaProperties(nsILDAPMessage *aMessage) override { return _to SetMetaProperties(aMessage); } \
  NS_IMETHOD GetDn(nsACString & aDn) override { return _to GetDn(aDn); } \
  NS_IMETHOD SetDn(const nsACString & aDn) override { return _to SetDn(aDn); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIABLDAPCARD(_to) \
  NS_IMETHOD GetLDAPMessageInfo(nsIAbLDAPAttributeMap *aAttrMap, uint32_t aClassCount, const char * *aClasses, int32_t updateType, nsIArray * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLDAPMessageInfo(aAttrMap, aClassCount, aClasses, updateType, _retval); } \
  NS_IMETHOD BuildRdn(nsIAbLDAPAttributeMap *aAttrMap, uint32_t aAttrCount, const char * *aAttributes, nsACString & _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->BuildRdn(aAttrMap, aAttrCount, aAttributes, _retval); } \
  NS_IMETHOD SetMetaProperties(nsILDAPMessage *aMessage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMetaProperties(aMessage); } \
  NS_IMETHOD GetDn(nsACString & aDn) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDn(aDn); } \
  NS_IMETHOD SetDn(const nsACString & aDn) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetDn(aDn); } 

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

/* Header file */
class nsAbLDAPCard : public nsIAbLDAPCard
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIABLDAPCARD

  nsAbLDAPCard();

private:
  ~nsAbLDAPCard();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsAbLDAPCard, nsIAbLDAPCard)

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

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

/* nsIArray getLDAPMessageInfo (in nsIAbLDAPAttributeMap aAttrMap, in unsigned long aClassCount, [array, size_is (aClassCount)] in string aClasses, in long updateType); */
NS_IMETHODIMP nsAbLDAPCard::GetLDAPMessageInfo(nsIAbLDAPAttributeMap *aAttrMap, uint32_t aClassCount, const char * *aClasses, int32_t updateType, nsIArray * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* ACString buildRdn (in nsIAbLDAPAttributeMap aAttrMap, in unsigned long aAttrCount, [array, size_is (aAttrCount)] in string aAttributes); */
NS_IMETHODIMP nsAbLDAPCard::BuildRdn(nsIAbLDAPAttributeMap *aAttrMap, uint32_t aAttrCount, const char * *aAttributes, nsACString & _retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void setMetaProperties (in nsILDAPMessage aMessage); */
NS_IMETHODIMP nsAbLDAPCard::SetMetaProperties(nsILDAPMessage *aMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute ACString dn; */
NS_IMETHODIMP nsAbLDAPCard::GetDn(nsACString & aDn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsAbLDAPCard::SetDn(const nsACString & aDn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIAbLDAPCard_h__ */
