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

#ifndef __gen_nsILDAPMessage_h__
#define __gen_nsILDAPMessage_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
class nsILDAPBERValue; /* forward declaration */

class nsILDAPOperation; /* forward declaration */

#define NS_LDAPMESSAGE_CONTRACTID "@mozilla.org/network/ldap-message;1"

/* starting interface:    nsILDAPMessage */
#define NS_ILDAPMESSAGE_IID_STR "973ff50f-2002-4f0c-b57d-2242156139a2"

#define NS_ILDAPMESSAGE_IID \
  {0x973ff50f, 0x2002, 0x4f0c, \
    { 0xb5, 0x7d, 0x22, 0x42, 0x15, 0x61, 0x39, 0xa2 }}

class NS_NO_VTABLE nsILDAPMessage : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_ILDAPMESSAGE_IID)

  /* readonly attribute AUTF8String dn; */
  NS_IMETHOD GetDn(nsACString & aDn) = 0;

  /* void getAttributes (out unsigned long count, [array, size_is (count), retval] out string aAttributes); */
  NS_IMETHOD GetAttributes(uint32_t *count, char * **aAttributes) = 0;

  /* void getValues (in string attr, out unsigned long count, [array, size_is (count), retval] out wstring values); */
  NS_IMETHOD GetValues(const char * attr, uint32_t *count, char16_t * **values) = 0;

  /* readonly attribute nsILDAPOperation operation; */
  NS_IMETHOD GetOperation(nsILDAPOperation * *aOperation) = 0;

  /* readonly attribute long errorCode; */
  NS_IMETHOD GetErrorCode(int32_t *aErrorCode) = 0;

  /* readonly attribute long type; */
  NS_IMETHOD GetType(int32_t *aType) = 0;

  enum {
    RES_BIND = 97,
    RES_SEARCH_ENTRY = 100,
    RES_SEARCH_REFERENCE = 115,
    RES_SEARCH_RESULT = 101,
    RES_MODIFY = 103,
    RES_ADD = 105,
    RES_DELETE = 107,
    RES_MODDN = 109,
    RES_COMPARE = 111,
    RES_EXTENDED = 120
  };

  /* wstring toUnicode (); */
  NS_IMETHOD ToUnicode(char16_t * *_retval) = 0;

  /* readonly attribute AUTF8String errorMessage; */
  NS_IMETHOD GetErrorMessage(nsACString & aErrorMessage) = 0;

  /* readonly attribute AUTF8String matchedDn; */
  NS_IMETHOD GetMatchedDn(nsACString & aMatchedDn) = 0;

  /* void getBinaryValues (in string attr, out unsigned long count, [array, size_is (count), retval] out nsILDAPBERValue values); */
  NS_IMETHOD GetBinaryValues(const char * attr, uint32_t *count, nsILDAPBERValue * **values) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsILDAPMessage, NS_ILDAPMESSAGE_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSILDAPMESSAGE \
  NS_IMETHOD GetDn(nsACString & aDn) override; \
  NS_IMETHOD GetAttributes(uint32_t *count, char * **aAttributes) override; \
  NS_IMETHOD GetValues(const char * attr, uint32_t *count, char16_t * **values) override; \
  NS_IMETHOD GetOperation(nsILDAPOperation * *aOperation) override; \
  NS_IMETHOD GetErrorCode(int32_t *aErrorCode) override; \
  NS_IMETHOD GetType(int32_t *aType) override; \
  NS_IMETHOD ToUnicode(char16_t * *_retval) override; \
  NS_IMETHOD GetErrorMessage(nsACString & aErrorMessage) override; \
  NS_IMETHOD GetMatchedDn(nsACString & aMatchedDn) override; \
  NS_IMETHOD GetBinaryValues(const char * attr, uint32_t *count, nsILDAPBERValue * **values) 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_NSILDAPMESSAGE \
  NS_METHOD GetDn(nsACString & aDn); \
  NS_METHOD GetAttributes(uint32_t *count, char * **aAttributes); \
  NS_METHOD GetValues(const char * attr, uint32_t *count, char16_t * **values); \
  NS_METHOD GetOperation(nsILDAPOperation * *aOperation); \
  NS_METHOD GetErrorCode(int32_t *aErrorCode); \
  NS_METHOD GetType(int32_t *aType); \
  NS_METHOD ToUnicode(char16_t * *_retval); \
  NS_METHOD GetErrorMessage(nsACString & aErrorMessage); \
  NS_METHOD GetMatchedDn(nsACString & aMatchedDn); \
  NS_METHOD GetBinaryValues(const char * attr, uint32_t *count, nsILDAPBERValue * **values); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSILDAPMESSAGE(_to) \
  NS_IMETHOD GetDn(nsACString & aDn) override { return _to GetDn(aDn); } \
  NS_IMETHOD GetAttributes(uint32_t *count, char * **aAttributes) override { return _to GetAttributes(count, aAttributes); } \
  NS_IMETHOD GetValues(const char * attr, uint32_t *count, char16_t * **values) override { return _to GetValues(attr, count, values); } \
  NS_IMETHOD GetOperation(nsILDAPOperation * *aOperation) override { return _to GetOperation(aOperation); } \
  NS_IMETHOD GetErrorCode(int32_t *aErrorCode) override { return _to GetErrorCode(aErrorCode); } \
  NS_IMETHOD GetType(int32_t *aType) override { return _to GetType(aType); } \
  NS_IMETHOD ToUnicode(char16_t * *_retval) override { return _to ToUnicode(_retval); } \
  NS_IMETHOD GetErrorMessage(nsACString & aErrorMessage) override { return _to GetErrorMessage(aErrorMessage); } \
  NS_IMETHOD GetMatchedDn(nsACString & aMatchedDn) override { return _to GetMatchedDn(aMatchedDn); } \
  NS_IMETHOD GetBinaryValues(const char * attr, uint32_t *count, nsILDAPBERValue * **values) override { return _to GetBinaryValues(attr, count, values); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSILDAPMESSAGE(_to) \
  NS_IMETHOD GetDn(nsACString & aDn) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDn(aDn); } \
  NS_IMETHOD GetAttributes(uint32_t *count, char * **aAttributes) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributes(count, aAttributes); } \
  NS_IMETHOD GetValues(const char * attr, uint32_t *count, char16_t * **values) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValues(attr, count, values); } \
  NS_IMETHOD GetOperation(nsILDAPOperation * *aOperation) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOperation(aOperation); } \
  NS_IMETHOD GetErrorCode(int32_t *aErrorCode) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetErrorCode(aErrorCode); } \
  NS_IMETHOD GetType(int32_t *aType) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_IMETHOD ToUnicode(char16_t * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ToUnicode(_retval); } \
  NS_IMETHOD GetErrorMessage(nsACString & aErrorMessage) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetErrorMessage(aErrorMessage); } \
  NS_IMETHOD GetMatchedDn(nsACString & aMatchedDn) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMatchedDn(aMatchedDn); } \
  NS_IMETHOD GetBinaryValues(const char * attr, uint32_t *count, nsILDAPBERValue * **values) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBinaryValues(attr, count, values); } 

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

/* Header file */
class nsLDAPMessage : public nsILDAPMessage
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSILDAPMESSAGE

  nsLDAPMessage();

private:
  ~nsLDAPMessage();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsLDAPMessage, nsILDAPMessage)

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

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

/* readonly attribute AUTF8String dn; */
NS_IMETHODIMP nsLDAPMessage::GetDn(nsACString & aDn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getAttributes (out unsigned long count, [array, size_is (count), retval] out string aAttributes); */
NS_IMETHODIMP nsLDAPMessage::GetAttributes(uint32_t *count, char * **aAttributes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getValues (in string attr, out unsigned long count, [array, size_is (count), retval] out wstring values); */
NS_IMETHODIMP nsLDAPMessage::GetValues(const char * attr, uint32_t *count, char16_t * **values)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsILDAPOperation operation; */
NS_IMETHODIMP nsLDAPMessage::GetOperation(nsILDAPOperation * *aOperation)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long errorCode; */
NS_IMETHODIMP nsLDAPMessage::GetErrorCode(int32_t *aErrorCode)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute long type; */
NS_IMETHODIMP nsLDAPMessage::GetType(int32_t *aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* wstring toUnicode (); */
NS_IMETHODIMP nsLDAPMessage::ToUnicode(char16_t * *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AUTF8String errorMessage; */
NS_IMETHODIMP nsLDAPMessage::GetErrorMessage(nsACString & aErrorMessage)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute AUTF8String matchedDn; */
NS_IMETHODIMP nsLDAPMessage::GetMatchedDn(nsACString & aMatchedDn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void getBinaryValues (in string attr, out unsigned long count, [array, size_is (count), retval] out nsILDAPBERValue values); */
NS_IMETHODIMP nsLDAPMessage::GetBinaryValues(const char * attr, uint32_t *count, nsILDAPBERValue * **values)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsILDAPMessage_h__ */
