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

#ifndef __gen_nsILDAPURL_h__
#define __gen_nsILDAPURL_h__


#ifndef __gen_nsIURI_h__
#include "nsIURI.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
#define NS_LDAPURL_CONTRACTID "@mozilla.org/network/ldap-url;1"

/* starting interface:    nsILDAPURL */
#define NS_ILDAPURL_IID_STR "8e3a6d33-2e68-40ba-8f94-6ac03f69066e"

#define NS_ILDAPURL_IID \
  {0x8e3a6d33, 0x2e68, 0x40ba, \
    { 0x8f, 0x94, 0x6a, 0xc0, 0x3f, 0x69, 0x06, 0x6e }}

class NS_NO_VTABLE nsILDAPURL : public nsIURI {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_ILDAPURL_IID)

  /* void init (in unsigned long aUrlType, in long aDefaultPort, in AUTF8String aSpec, in string aOriginCharset, in nsIURI aBaseURI); */
  NS_IMETHOD Init(uint32_t aUrlType, int32_t aDefaultPort, const nsACString & aSpec, const char * aOriginCharset, nsIURI *aBaseURI) = 0;

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

  /* attribute ACString attributes; */
  NS_IMETHOD GetAttributes(nsACString & aAttributes) = 0;
  NS_IMETHOD SetAttributes(const nsACString & aAttributes) = 0;

  /* void addAttribute (in ACString aAttribute); */
  NS_IMETHOD AddAttribute(const nsACString & aAttribute) = 0;

  /* void removeAttribute (in ACString aAttribute); */
  NS_IMETHOD RemoveAttribute(const nsACString & aAttribute) = 0;

  /* boolean hasAttribute (in ACString aAttribute); */
  NS_IMETHOD HasAttribute(const nsACString & aAttribute, bool *_retval) = 0;

  /* attribute long scope; */
  NS_IMETHOD GetScope(int32_t *aScope) = 0;
  NS_IMETHOD SetScope(int32_t aScope) = 0;

  enum {
    SCOPE_BASE = 0,
    SCOPE_ONELEVEL = 1,
    SCOPE_SUBTREE = 2
  };

  /* attribute AUTF8String filter; */
  NS_IMETHOD GetFilter(nsACString & aFilter) = 0;
  NS_IMETHOD SetFilter(const nsACString & aFilter) = 0;

  /* attribute unsigned long options; */
  NS_IMETHOD GetOptions(uint32_t *aOptions) = 0;
  NS_IMETHOD SetOptions(uint32_t aOptions) = 0;

  enum {
    OPT_SECURE = 1U
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsILDAPURL, NS_ILDAPURL_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSILDAPURL \
  NS_IMETHOD Init(uint32_t aUrlType, int32_t aDefaultPort, const nsACString & aSpec, const char * aOriginCharset, nsIURI *aBaseURI) override; \
  NS_IMETHOD GetDn(nsACString & aDn) override; \
  NS_IMETHOD SetDn(const nsACString & aDn) override; \
  NS_IMETHOD GetAttributes(nsACString & aAttributes) override; \
  NS_IMETHOD SetAttributes(const nsACString & aAttributes) override; \
  NS_IMETHOD AddAttribute(const nsACString & aAttribute) override; \
  NS_IMETHOD RemoveAttribute(const nsACString & aAttribute) override; \
  NS_IMETHOD HasAttribute(const nsACString & aAttribute, bool *_retval) override; \
  NS_IMETHOD GetScope(int32_t *aScope) override; \
  NS_IMETHOD SetScope(int32_t aScope) override; \
  NS_IMETHOD GetFilter(nsACString & aFilter) override; \
  NS_IMETHOD SetFilter(const nsACString & aFilter) override; \
  NS_IMETHOD GetOptions(uint32_t *aOptions) override; \
  NS_IMETHOD SetOptions(uint32_t aOptions) 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_NSILDAPURL \
  NS_METHOD Init(uint32_t aUrlType, int32_t aDefaultPort, const nsACString & aSpec, const char * aOriginCharset, nsIURI *aBaseURI); \
  NS_METHOD GetDn(nsACString & aDn); \
  NS_METHOD SetDn(const nsACString & aDn); \
  NS_METHOD GetAttributes(nsACString & aAttributes); \
  NS_METHOD SetAttributes(const nsACString & aAttributes); \
  NS_METHOD AddAttribute(const nsACString & aAttribute); \
  NS_METHOD RemoveAttribute(const nsACString & aAttribute); \
  NS_METHOD HasAttribute(const nsACString & aAttribute, bool *_retval); \
  NS_METHOD GetScope(int32_t *aScope); \
  NS_METHOD SetScope(int32_t aScope); \
  NS_METHOD GetFilter(nsACString & aFilter); \
  NS_METHOD SetFilter(const nsACString & aFilter); \
  NS_METHOD GetOptions(uint32_t *aOptions); \
  NS_METHOD SetOptions(uint32_t aOptions); \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSILDAPURL(_to) \
  NS_IMETHOD Init(uint32_t aUrlType, int32_t aDefaultPort, const nsACString & aSpec, const char * aOriginCharset, nsIURI *aBaseURI) override { return _to Init(aUrlType, aDefaultPort, aSpec, aOriginCharset, aBaseURI); } \
  NS_IMETHOD GetDn(nsACString & aDn) override { return _to GetDn(aDn); } \
  NS_IMETHOD SetDn(const nsACString & aDn) override { return _to SetDn(aDn); } \
  NS_IMETHOD GetAttributes(nsACString & aAttributes) override { return _to GetAttributes(aAttributes); } \
  NS_IMETHOD SetAttributes(const nsACString & aAttributes) override { return _to SetAttributes(aAttributes); } \
  NS_IMETHOD AddAttribute(const nsACString & aAttribute) override { return _to AddAttribute(aAttribute); } \
  NS_IMETHOD RemoveAttribute(const nsACString & aAttribute) override { return _to RemoveAttribute(aAttribute); } \
  NS_IMETHOD HasAttribute(const nsACString & aAttribute, bool *_retval) override { return _to HasAttribute(aAttribute, _retval); } \
  NS_IMETHOD GetScope(int32_t *aScope) override { return _to GetScope(aScope); } \
  NS_IMETHOD SetScope(int32_t aScope) override { return _to SetScope(aScope); } \
  NS_IMETHOD GetFilter(nsACString & aFilter) override { return _to GetFilter(aFilter); } \
  NS_IMETHOD SetFilter(const nsACString & aFilter) override { return _to SetFilter(aFilter); } \
  NS_IMETHOD GetOptions(uint32_t *aOptions) override { return _to GetOptions(aOptions); } \
  NS_IMETHOD SetOptions(uint32_t aOptions) override { return _to SetOptions(aOptions); } \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSILDAPURL(_to) \
  NS_IMETHOD Init(uint32_t aUrlType, int32_t aDefaultPort, const nsACString & aSpec, const char * aOriginCharset, nsIURI *aBaseURI) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Init(aUrlType, aDefaultPort, aSpec, aOriginCharset, aBaseURI); } \
  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); } \
  NS_IMETHOD GetAttributes(nsACString & aAttributes) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributes(aAttributes); } \
  NS_IMETHOD SetAttributes(const nsACString & aAttributes) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetAttributes(aAttributes); } \
  NS_IMETHOD AddAttribute(const nsACString & aAttribute) override { return !_to ? NS_ERROR_NULL_POINTER : _to->AddAttribute(aAttribute); } \
  NS_IMETHOD RemoveAttribute(const nsACString & aAttribute) override { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveAttribute(aAttribute); } \
  NS_IMETHOD HasAttribute(const nsACString & aAttribute, bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->HasAttribute(aAttribute, _retval); } \
  NS_IMETHOD GetScope(int32_t *aScope) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetScope(aScope); } \
  NS_IMETHOD SetScope(int32_t aScope) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetScope(aScope); } \
  NS_IMETHOD GetFilter(nsACString & aFilter) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFilter(aFilter); } \
  NS_IMETHOD SetFilter(const nsACString & aFilter) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetFilter(aFilter); } \
  NS_IMETHOD GetOptions(uint32_t *aOptions) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOptions(aOptions); } \
  NS_IMETHOD SetOptions(uint32_t aOptions) override { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOptions(aOptions); } \

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

/* Header file */
class nsLDAPURL : public nsILDAPURL
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSILDAPURL

  nsLDAPURL();

private:
  ~nsLDAPURL();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsLDAPURL, nsILDAPURL)

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

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

/* void init (in unsigned long aUrlType, in long aDefaultPort, in AUTF8String aSpec, in string aOriginCharset, in nsIURI aBaseURI); */
NS_IMETHODIMP nsLDAPURL::Init(uint32_t aUrlType, int32_t aDefaultPort, const nsACString & aSpec, const char * aOriginCharset, nsIURI *aBaseURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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

/* attribute ACString attributes; */
NS_IMETHODIMP nsLDAPURL::GetAttributes(nsACString & aAttributes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsLDAPURL::SetAttributes(const nsACString & aAttributes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void addAttribute (in ACString aAttribute); */
NS_IMETHODIMP nsLDAPURL::AddAttribute(const nsACString & aAttribute)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeAttribute (in ACString aAttribute); */
NS_IMETHODIMP nsLDAPURL::RemoveAttribute(const nsACString & aAttribute)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* boolean hasAttribute (in ACString aAttribute); */
NS_IMETHODIMP nsLDAPURL::HasAttribute(const nsACString & aAttribute, bool *_retval)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute long scope; */
NS_IMETHODIMP nsLDAPURL::GetScope(int32_t *aScope)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsLDAPURL::SetScope(int32_t aScope)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AUTF8String filter; */
NS_IMETHODIMP nsLDAPURL::GetFilter(nsACString & aFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsLDAPURL::SetFilter(const nsACString & aFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute unsigned long options; */
NS_IMETHODIMP nsLDAPURL::GetOptions(uint32_t *aOptions)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsLDAPURL::SetOptions(uint32_t aOptions)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsILDAPURL_h__ */
