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

#ifndef __gen_nsIAbLDAPReplicationQuery_h__
#define __gen_nsIAbLDAPReplicationQuery_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 nsIWebProgressListener; /* forward declaration */

class nsILDAPURL; /* forward declaration */

class nsILDAPConnection; /* forward declaration */

class nsILDAPOperation; /* forward declaration */

class nsIAbLDAPDirectory; /* forward declaration */


/* starting interface:    nsIAbLDAPReplicationQuery */
#define NS_IABLDAPREPLICATIONQUERY_IID_STR "460a739c-a8c1-4f24-b705-c89d136ab9f5"

#define NS_IABLDAPREPLICATIONQUERY_IID \
  {0x460a739c, 0xa8c1, 0x4f24, \
    { 0xb7, 0x05, 0xc8, 0x9d, 0x13, 0x6a, 0xb9, 0xf5 }}

class NS_NO_VTABLE nsIAbLDAPReplicationQuery : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IABLDAPREPLICATIONQUERY_IID)

  /* void init (in nsIAbLDAPDirectory aDirectory, in nsIWebProgressListener aProgressListener); */
  NS_IMETHOD Init(nsIAbLDAPDirectory *aDirectory, nsIWebProgressListener *aProgressListener) = 0;

  /* void doReplicationQuery (); */
  NS_IMETHOD DoReplicationQuery(void) = 0;

  /* void cancelQuery (); */
  NS_IMETHOD CancelQuery(void) = 0;

  /* void done (in boolean aSuccess); */
  NS_IMETHOD Done(bool aSuccess) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIAbLDAPReplicationQuery, NS_IABLDAPREPLICATIONQUERY_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIABLDAPREPLICATIONQUERY \
  NS_IMETHOD Init(nsIAbLDAPDirectory *aDirectory, nsIWebProgressListener *aProgressListener) override; \
  NS_IMETHOD DoReplicationQuery(void) override; \
  NS_IMETHOD CancelQuery(void) override; \
  NS_IMETHOD Done(bool aSuccess) 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_NSIABLDAPREPLICATIONQUERY \
  NS_METHOD Init(nsIAbLDAPDirectory *aDirectory, nsIWebProgressListener *aProgressListener); \
  NS_METHOD DoReplicationQuery(void); \
  NS_METHOD CancelQuery(void); \
  NS_METHOD Done(bool aSuccess); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIABLDAPREPLICATIONQUERY(_to) \
  NS_IMETHOD Init(nsIAbLDAPDirectory *aDirectory, nsIWebProgressListener *aProgressListener) override { return _to Init(aDirectory, aProgressListener); } \
  NS_IMETHOD DoReplicationQuery(void) override { return _to DoReplicationQuery(); } \
  NS_IMETHOD CancelQuery(void) override { return _to CancelQuery(); } \
  NS_IMETHOD Done(bool aSuccess) override { return _to Done(aSuccess); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIABLDAPREPLICATIONQUERY(_to) \
  NS_IMETHOD Init(nsIAbLDAPDirectory *aDirectory, nsIWebProgressListener *aProgressListener) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Init(aDirectory, aProgressListener); } \
  NS_IMETHOD DoReplicationQuery(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DoReplicationQuery(); } \
  NS_IMETHOD CancelQuery(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CancelQuery(); } \
  NS_IMETHOD Done(bool aSuccess) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Done(aSuccess); } 

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

/* Header file */
class nsAbLDAPReplicationQuery : public nsIAbLDAPReplicationQuery
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIABLDAPREPLICATIONQUERY

  nsAbLDAPReplicationQuery();

private:
  ~nsAbLDAPReplicationQuery();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsAbLDAPReplicationQuery, nsIAbLDAPReplicationQuery)

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

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

/* void init (in nsIAbLDAPDirectory aDirectory, in nsIWebProgressListener aProgressListener); */
NS_IMETHODIMP nsAbLDAPReplicationQuery::Init(nsIAbLDAPDirectory *aDirectory, nsIWebProgressListener *aProgressListener)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void doReplicationQuery (); */
NS_IMETHODIMP nsAbLDAPReplicationQuery::DoReplicationQuery()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void cancelQuery (); */
NS_IMETHODIMP nsAbLDAPReplicationQuery::CancelQuery()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void done (in boolean aSuccess); */
NS_IMETHODIMP nsAbLDAPReplicationQuery::Done(bool aSuccess)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIAbLDAPChangeLogQuery */
#define NS_IABLDAPCHANGELOGQUERY_IID_STR "126202d1-4460-11d6-b7c2-00b0d06e5f27"

#define NS_IABLDAPCHANGELOGQUERY_IID \
  {0x126202d1, 0x4460, 0x11d6, \
    { 0xb7, 0xc2, 0x00, 0xb0, 0xd0, 0x6e, 0x5f, 0x27 }}

class NS_NO_VTABLE nsIAbLDAPChangeLogQuery : public nsISupports {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IABLDAPCHANGELOGQUERY_IID)

  /* void queryAuthDN (in AUTF8String aValueUsedToFindDn); */
  NS_IMETHOD QueryAuthDN(const nsACString & aValueUsedToFindDn) = 0;

  /* void queryRootDSE (); */
  NS_IMETHOD QueryRootDSE(void) = 0;

  /* void queryChangeLog (in AUTF8String aChangeLogDN, in int32_t aLastChangeNo); */
  NS_IMETHOD QueryChangeLog(const nsACString & aChangeLogDN, int32_t aLastChangeNo) = 0;

  /* void queryChangedEntries (in AUTF8String aChangedEntryDN); */
  NS_IMETHOD QueryChangedEntries(const nsACString & aChangedEntryDN) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIAbLDAPChangeLogQuery, NS_IABLDAPCHANGELOGQUERY_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIABLDAPCHANGELOGQUERY \
  NS_IMETHOD QueryAuthDN(const nsACString & aValueUsedToFindDn) override; \
  NS_IMETHOD QueryRootDSE(void) override; \
  NS_IMETHOD QueryChangeLog(const nsACString & aChangeLogDN, int32_t aLastChangeNo) override; \
  NS_IMETHOD QueryChangedEntries(const nsACString & aChangedEntryDN) 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_NSIABLDAPCHANGELOGQUERY \
  NS_METHOD QueryAuthDN(const nsACString & aValueUsedToFindDn); \
  NS_METHOD QueryRootDSE(void); \
  NS_METHOD QueryChangeLog(const nsACString & aChangeLogDN, int32_t aLastChangeNo); \
  NS_METHOD QueryChangedEntries(const nsACString & aChangedEntryDN); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIABLDAPCHANGELOGQUERY(_to) \
  NS_IMETHOD QueryAuthDN(const nsACString & aValueUsedToFindDn) override { return _to QueryAuthDN(aValueUsedToFindDn); } \
  NS_IMETHOD QueryRootDSE(void) override { return _to QueryRootDSE(); } \
  NS_IMETHOD QueryChangeLog(const nsACString & aChangeLogDN, int32_t aLastChangeNo) override { return _to QueryChangeLog(aChangeLogDN, aLastChangeNo); } \
  NS_IMETHOD QueryChangedEntries(const nsACString & aChangedEntryDN) override { return _to QueryChangedEntries(aChangedEntryDN); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIABLDAPCHANGELOGQUERY(_to) \
  NS_IMETHOD QueryAuthDN(const nsACString & aValueUsedToFindDn) override { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryAuthDN(aValueUsedToFindDn); } \
  NS_IMETHOD QueryRootDSE(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryRootDSE(); } \
  NS_IMETHOD QueryChangeLog(const nsACString & aChangeLogDN, int32_t aLastChangeNo) override { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryChangeLog(aChangeLogDN, aLastChangeNo); } \
  NS_IMETHOD QueryChangedEntries(const nsACString & aChangedEntryDN) override { return !_to ? NS_ERROR_NULL_POINTER : _to->QueryChangedEntries(aChangedEntryDN); } 

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

/* Header file */
class nsAbLDAPChangeLogQuery : public nsIAbLDAPChangeLogQuery
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIABLDAPCHANGELOGQUERY

  nsAbLDAPChangeLogQuery();

private:
  ~nsAbLDAPChangeLogQuery();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsAbLDAPChangeLogQuery, nsIAbLDAPChangeLogQuery)

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

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

/* void queryAuthDN (in AUTF8String aValueUsedToFindDn); */
NS_IMETHODIMP nsAbLDAPChangeLogQuery::QueryAuthDN(const nsACString & aValueUsedToFindDn)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void queryRootDSE (); */
NS_IMETHODIMP nsAbLDAPChangeLogQuery::QueryRootDSE()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void queryChangeLog (in AUTF8String aChangeLogDN, in int32_t aLastChangeNo); */
NS_IMETHODIMP nsAbLDAPChangeLogQuery::QueryChangeLog(const nsACString & aChangeLogDN, int32_t aLastChangeNo)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void queryChangedEntries (in AUTF8String aChangedEntryDN); */
NS_IMETHODIMP nsAbLDAPChangeLogQuery::QueryChangedEntries(const nsACString & aChangedEntryDN)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIAbLDAPReplicationQuery_h__ */
