/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM e:/builds/moz2_slave/m-aurora-w32-xr/build/dom/interfaces/core/nsIDOMMutationObserver.idl
 */

#ifndef __gen_nsIDOMMutationObserver_h__
#define __gen_nsIDOMMutationObserver_h__


#ifndef __gen_domstubs_h__
#include "domstubs.h"
#endif

#include "jspubtd.h"

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


/* starting interface:    nsIDOMMutationRecord */
#define NS_IDOMMUTATIONRECORD_IID_STR "2fa4716f-405a-449b-954b-ae570c170364"

#define NS_IDOMMUTATIONRECORD_IID \
  {0x2fa4716f, 0x405a, 0x449b, \
    { 0x95, 0x4b, 0xae, 0x57, 0x0c, 0x17, 0x03, 0x64 }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIDOMMutationRecord : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IDOMMUTATIONRECORD_IID)

  /* readonly attribute DOMString type; */
  NS_SCRIPTABLE NS_IMETHOD GetType(nsAString & aType) = 0;

  /* readonly attribute nsIDOMNode target; */
  NS_SCRIPTABLE NS_IMETHOD GetTarget(nsIDOMNode * *aTarget) = 0;

  /* readonly attribute nsIDOMNodeList addedNodes; */
  NS_SCRIPTABLE NS_IMETHOD GetAddedNodes(nsIDOMNodeList * *aAddedNodes) = 0;

  /* readonly attribute nsIDOMNodeList removedNodes; */
  NS_SCRIPTABLE NS_IMETHOD GetRemovedNodes(nsIDOMNodeList * *aRemovedNodes) = 0;

  /* readonly attribute nsIDOMNode previousSibling; */
  NS_SCRIPTABLE NS_IMETHOD GetPreviousSibling(nsIDOMNode * *aPreviousSibling) = 0;

  /* readonly attribute nsIDOMNode nextSibling; */
  NS_SCRIPTABLE NS_IMETHOD GetNextSibling(nsIDOMNode * *aNextSibling) = 0;

  /* readonly attribute DOMString attributeName; */
  NS_SCRIPTABLE NS_IMETHOD GetAttributeName(nsAString & aAttributeName) = 0;

  /* readonly attribute DOMString attributeNamespace; */
  NS_SCRIPTABLE NS_IMETHOD GetAttributeNamespace(nsAString & aAttributeNamespace) = 0;

  /* readonly attribute DOMString oldValue; */
  NS_SCRIPTABLE NS_IMETHOD GetOldValue(nsAString & aOldValue) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIDOMMutationRecord, NS_IDOMMUTATIONRECORD_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOMMUTATIONRECORD \
  NS_SCRIPTABLE NS_IMETHOD GetType(nsAString & aType); \
  NS_SCRIPTABLE NS_IMETHOD GetTarget(nsIDOMNode * *aTarget); \
  NS_SCRIPTABLE NS_IMETHOD GetAddedNodes(nsIDOMNodeList * *aAddedNodes); \
  NS_SCRIPTABLE NS_IMETHOD GetRemovedNodes(nsIDOMNodeList * *aRemovedNodes); \
  NS_SCRIPTABLE NS_IMETHOD GetPreviousSibling(nsIDOMNode * *aPreviousSibling); \
  NS_SCRIPTABLE NS_IMETHOD GetNextSibling(nsIDOMNode * *aNextSibling); \
  NS_SCRIPTABLE NS_IMETHOD GetAttributeName(nsAString & aAttributeName); \
  NS_SCRIPTABLE NS_IMETHOD GetAttributeNamespace(nsAString & aAttributeNamespace); \
  NS_SCRIPTABLE NS_IMETHOD GetOldValue(nsAString & aOldValue); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOMMUTATIONRECORD(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetType(nsAString & aType) { return _to GetType(aType); } \
  NS_SCRIPTABLE NS_IMETHOD GetTarget(nsIDOMNode * *aTarget) { return _to GetTarget(aTarget); } \
  NS_SCRIPTABLE NS_IMETHOD GetAddedNodes(nsIDOMNodeList * *aAddedNodes) { return _to GetAddedNodes(aAddedNodes); } \
  NS_SCRIPTABLE NS_IMETHOD GetRemovedNodes(nsIDOMNodeList * *aRemovedNodes) { return _to GetRemovedNodes(aRemovedNodes); } \
  NS_SCRIPTABLE NS_IMETHOD GetPreviousSibling(nsIDOMNode * *aPreviousSibling) { return _to GetPreviousSibling(aPreviousSibling); } \
  NS_SCRIPTABLE NS_IMETHOD GetNextSibling(nsIDOMNode * *aNextSibling) { return _to GetNextSibling(aNextSibling); } \
  NS_SCRIPTABLE NS_IMETHOD GetAttributeName(nsAString & aAttributeName) { return _to GetAttributeName(aAttributeName); } \
  NS_SCRIPTABLE NS_IMETHOD GetAttributeNamespace(nsAString & aAttributeNamespace) { return _to GetAttributeNamespace(aAttributeNamespace); } \
  NS_SCRIPTABLE NS_IMETHOD GetOldValue(nsAString & aOldValue) { return _to GetOldValue(aOldValue); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIDOMMUTATIONRECORD(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetType(nsAString & aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  NS_SCRIPTABLE NS_IMETHOD GetTarget(nsIDOMNode * *aTarget) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTarget(aTarget); } \
  NS_SCRIPTABLE NS_IMETHOD GetAddedNodes(nsIDOMNodeList * *aAddedNodes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAddedNodes(aAddedNodes); } \
  NS_SCRIPTABLE NS_IMETHOD GetRemovedNodes(nsIDOMNodeList * *aRemovedNodes) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetRemovedNodes(aRemovedNodes); } \
  NS_SCRIPTABLE NS_IMETHOD GetPreviousSibling(nsIDOMNode * *aPreviousSibling) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPreviousSibling(aPreviousSibling); } \
  NS_SCRIPTABLE NS_IMETHOD GetNextSibling(nsIDOMNode * *aNextSibling) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNextSibling(aNextSibling); } \
  NS_SCRIPTABLE NS_IMETHOD GetAttributeName(nsAString & aAttributeName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeName(aAttributeName); } \
  NS_SCRIPTABLE NS_IMETHOD GetAttributeNamespace(nsAString & aAttributeNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeNamespace(aAttributeNamespace); } \
  NS_SCRIPTABLE NS_IMETHOD GetOldValue(nsAString & aOldValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOldValue(aOldValue); } 

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

/* Header file */
class nsDOMMutationRecord : public nsIDOMMutationRecord
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIDOMMUTATIONRECORD

  nsDOMMutationRecord();

private:
  ~nsDOMMutationRecord();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDOMMutationRecord, nsIDOMMutationRecord)

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

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

/* readonly attribute DOMString type; */
NS_IMETHODIMP nsDOMMutationRecord::GetType(nsAString & aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIDOMNode target; */
NS_IMETHODIMP nsDOMMutationRecord::GetTarget(nsIDOMNode * *aTarget)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIDOMNodeList addedNodes; */
NS_IMETHODIMP nsDOMMutationRecord::GetAddedNodes(nsIDOMNodeList * *aAddedNodes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIDOMNodeList removedNodes; */
NS_IMETHODIMP nsDOMMutationRecord::GetRemovedNodes(nsIDOMNodeList * *aRemovedNodes)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIDOMNode previousSibling; */
NS_IMETHODIMP nsDOMMutationRecord::GetPreviousSibling(nsIDOMNode * *aPreviousSibling)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIDOMNode nextSibling; */
NS_IMETHODIMP nsDOMMutationRecord::GetNextSibling(nsIDOMNode * *aNextSibling)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute DOMString attributeName; */
NS_IMETHODIMP nsDOMMutationRecord::GetAttributeName(nsAString & aAttributeName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute DOMString attributeNamespace; */
NS_IMETHODIMP nsDOMMutationRecord::GetAttributeNamespace(nsAString & aAttributeNamespace)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute DOMString oldValue; */
NS_IMETHODIMP nsDOMMutationRecord::GetOldValue(nsAString & aOldValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIDOMMozMutationObserver */
#define NS_IDOMMOZMUTATIONOBSERVER_IID_STR "156e2ce4-e44a-45f3-92c2-e6611f391dae"

#define NS_IDOMMOZMUTATIONOBSERVER_IID \
  {0x156e2ce4, 0xe44a, 0x45f3, \
    { 0x92, 0xc2, 0xe6, 0x61, 0x1f, 0x39, 0x1d, 0xae }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIDOMMozMutationObserver : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IDOMMOZMUTATIONOBSERVER_IID)

  /* [implicit_jscontext] void observe (in nsIDOMNode aTarget, in jsval aOptions); */
  NS_SCRIPTABLE NS_IMETHOD Observe(nsIDOMNode *aTarget, const JS::Value & aOptions, JSContext* cx) = 0;

  /* void disconnect (); */
  NS_SCRIPTABLE NS_IMETHOD Disconnect(void) = 0;

  /* nsIVariant takeRecords (); */
  NS_SCRIPTABLE NS_IMETHOD TakeRecords(nsIVariant * *_retval NS_OUTPARAM) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIDOMMozMutationObserver, NS_IDOMMOZMUTATIONOBSERVER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIDOMMOZMUTATIONOBSERVER \
  NS_SCRIPTABLE NS_IMETHOD Observe(nsIDOMNode *aTarget, const JS::Value & aOptions, JSContext* cx); \
  NS_SCRIPTABLE NS_IMETHOD Disconnect(void); \
  NS_SCRIPTABLE NS_IMETHOD TakeRecords(nsIVariant * *_retval NS_OUTPARAM); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIDOMMOZMUTATIONOBSERVER(_to) \
  NS_SCRIPTABLE NS_IMETHOD Observe(nsIDOMNode *aTarget, const JS::Value & aOptions, JSContext* cx) { return _to Observe(aTarget, aOptions, cx); } \
  NS_SCRIPTABLE NS_IMETHOD Disconnect(void) { return _to Disconnect(); } \
  NS_SCRIPTABLE NS_IMETHOD TakeRecords(nsIVariant * *_retval NS_OUTPARAM) { return _to TakeRecords(_retval); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIDOMMOZMUTATIONOBSERVER(_to) \
  NS_SCRIPTABLE NS_IMETHOD Observe(nsIDOMNode *aTarget, const JS::Value & aOptions, JSContext* cx) { return !_to ? NS_ERROR_NULL_POINTER : _to->Observe(aTarget, aOptions, cx); } \
  NS_SCRIPTABLE NS_IMETHOD Disconnect(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Disconnect(); } \
  NS_SCRIPTABLE NS_IMETHOD TakeRecords(nsIVariant * *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->TakeRecords(_retval); } 

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

/* Header file */
class nsDOMMozMutationObserver : public nsIDOMMozMutationObserver
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIDOMMOZMUTATIONOBSERVER

  nsDOMMozMutationObserver();

private:
  ~nsDOMMozMutationObserver();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsDOMMozMutationObserver, nsIDOMMozMutationObserver)

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

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

/* [implicit_jscontext] void observe (in nsIDOMNode aTarget, in jsval aOptions); */
NS_IMETHODIMP nsDOMMozMutationObserver::Observe(nsIDOMNode *aTarget, const JS::Value & aOptions, JSContext* cx)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void disconnect (); */
NS_IMETHODIMP nsDOMMozMutationObserver::Disconnect()
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIVariant takeRecords (); */
NS_IMETHODIMP nsDOMMozMutationObserver::TakeRecords(nsIVariant * *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIMutationObserverCallback */
#define NS_IMUTATIONOBSERVERCALLBACK_IID_STR "fb539590-b088-4d07-96ff-2cefbc90a198"

#define NS_IMUTATIONOBSERVERCALLBACK_IID \
  {0xfb539590, 0xb088, 0x4d07, \
    { 0x96, 0xff, 0x2c, 0xef, 0xbc, 0x90, 0xa1, 0x98 }}

class NS_NO_VTABLE NS_SCRIPTABLE nsIMutationObserverCallback : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMUTATIONOBSERVERCALLBACK_IID)

  /* void handleMutations (in nsIVariant aRecords, in nsIDOMMozMutationObserver aObserver); */
  NS_SCRIPTABLE NS_IMETHOD HandleMutations(nsIVariant *aRecords, nsIDOMMozMutationObserver *aObserver) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMutationObserverCallback, NS_IMUTATIONOBSERVERCALLBACK_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMUTATIONOBSERVERCALLBACK \
  NS_SCRIPTABLE NS_IMETHOD HandleMutations(nsIVariant *aRecords, nsIDOMMozMutationObserver *aObserver); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMUTATIONOBSERVERCALLBACK(_to) \
  NS_SCRIPTABLE NS_IMETHOD HandleMutations(nsIVariant *aRecords, nsIDOMMozMutationObserver *aObserver) { return _to HandleMutations(aRecords, aObserver); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMUTATIONOBSERVERCALLBACK(_to) \
  NS_SCRIPTABLE NS_IMETHOD HandleMutations(nsIVariant *aRecords, nsIDOMMozMutationObserver *aObserver) { return !_to ? NS_ERROR_NULL_POINTER : _to->HandleMutations(aRecords, aObserver); } 

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

/* Header file */
class nsMutationObserverCallback : public nsIMutationObserverCallback
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMUTATIONOBSERVERCALLBACK

  nsMutationObserverCallback();

private:
  ~nsMutationObserverCallback();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsMutationObserverCallback, nsIMutationObserverCallback)

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

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

/* void handleMutations (in nsIVariant aRecords, in nsIDOMMozMutationObserver aObserver); */
NS_IMETHODIMP nsMutationObserverCallback::HandleMutations(nsIVariant *aRecords, nsIDOMMozMutationObserver *aObserver)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIDOMMutationObserver_h__ */
