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

#ifndef __gen_flockIRDFObserver_h__
#define __gen_flockIRDFObserver_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

#ifndef __gen_nsIRDFDataSource_h__
#include "nsIRDFDataSource.h"
#endif

#ifndef __gen_nsIRDFNode_h__
#include "nsIRDFNode.h"
#endif

#ifndef __gen_nsIRDFResource_h__
#include "nsIRDFResource.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif

/* starting interface:    flockIRDFObserver */
#define FLOCKIRDFOBSERVER_IID_STR "4b06085e-d521-4af5-8085-66a288c5220b"

#define FLOCKIRDFOBSERVER_IID \
  {0x4b06085e, 0xd521, 0x4af5, \
    { 0x80, 0x85, 0x66, 0xa2, 0x88, 0xc5, 0x22, 0x0b }}

class NS_NO_VTABLE flockIRDFObserver : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIRDFOBSERVER_IID)

  enum { TYPE_ASSERT = 1U };

  enum { TYPE_UNASSERT = 2U };

  enum { TYPE_MOVE = 4U };

  enum { TYPE_CHANGE = 8U };

  enum { TYPE_ASSERT_PARENT = 16U };

  enum { TYPE_UNASSERT_PARENT = 32U };

  enum { TYPE_ALL = 63U };

  enum { WATCH_TYPES = 9U };

  /* void rdfChanged (in nsIRDFDataSource aDataSource, in PRUint16 aType, in nsIRDFResource aSubject, in nsIRDFResource aPredicate, in nsIRDFNode aNewObject, in nsIRDFNode aOldObject); */
  NS_IMETHOD RdfChanged(nsIRDFDataSource *aDataSource, PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aNewObject, nsIRDFNode *aOldObject) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIRDFOBSERVER \
  NS_IMETHOD RdfChanged(nsIRDFDataSource *aDataSource, PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aNewObject, nsIRDFNode *aOldObject); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIRDFOBSERVER(_to) \
  NS_IMETHOD RdfChanged(nsIRDFDataSource *aDataSource, PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aNewObject, nsIRDFNode *aOldObject) { return _to RdfChanged(aDataSource, aType, aSubject, aPredicate, aNewObject, aOldObject); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_FLOCKIRDFOBSERVER(_to) \
  NS_IMETHOD RdfChanged(nsIRDFDataSource *aDataSource, PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aNewObject, nsIRDFNode *aOldObject) { return !_to ? NS_ERROR_NULL_POINTER : _to->RdfChanged(aDataSource, aType, aSubject, aPredicate, aNewObject, aOldObject); } 

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

/* Header file */
class _MYCLASS_ : public flockIRDFObserver
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIRDFOBSERVER

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, flockIRDFObserver)

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

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

/* void rdfChanged (in nsIRDFDataSource aDataSource, in PRUint16 aType, in nsIRDFResource aSubject, in nsIRDFResource aPredicate, in nsIRDFNode aNewObject, in nsIRDFNode aOldObject); */
NS_IMETHODIMP _MYCLASS_::RdfChanged(nsIRDFDataSource *aDataSource, PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aNewObject, nsIRDFNode *aOldObject)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    flockIRDFObservable */
#define FLOCKIRDFOBSERVABLE_IID_STR "93c84f4d-f854-4e84-8fa8-606ff5d904e6"

#define FLOCKIRDFOBSERVABLE_IID \
  {0x93c84f4d, 0xf854, 0x4e84, \
    { 0x8f, 0xa8, 0x60, 0x6f, 0xf5, 0xd9, 0x04, 0xe6 }}

class NS_NO_VTABLE flockIRDFObservable : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(FLOCKIRDFOBSERVABLE_IID)

  /* void addArcObserver (in PRUint16 aType, in nsIRDFResource aSubject, in nsIRDFResource aPredicate, in nsIRDFNode aObject, in flockIRDFObserver aObserver); */
  NS_IMETHOD AddArcObserver(PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aObject, flockIRDFObserver *aObserver) = 0;

  /* void removeArcObserver (in PRUint16 aType, in nsIRDFResource aSubject, in nsIRDFResource aPredicate, in nsIRDFNode aObject, in flockIRDFObserver aObserver); */
  NS_IMETHOD RemoveArcObserver(PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aObject, flockIRDFObserver *aObserver) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_FLOCKIRDFOBSERVABLE \
  NS_IMETHOD AddArcObserver(PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aObject, flockIRDFObserver *aObserver); \
  NS_IMETHOD RemoveArcObserver(PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aObject, flockIRDFObserver *aObserver); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_FLOCKIRDFOBSERVABLE(_to) \
  NS_IMETHOD AddArcObserver(PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aObject, flockIRDFObserver *aObserver) { return _to AddArcObserver(aType, aSubject, aPredicate, aObject, aObserver); } \
  NS_IMETHOD RemoveArcObserver(PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aObject, flockIRDFObserver *aObserver) { return _to RemoveArcObserver(aType, aSubject, aPredicate, aObject, 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_FLOCKIRDFOBSERVABLE(_to) \
  NS_IMETHOD AddArcObserver(PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aObject, flockIRDFObserver *aObserver) { return !_to ? NS_ERROR_NULL_POINTER : _to->AddArcObserver(aType, aSubject, aPredicate, aObject, aObserver); } \
  NS_IMETHOD RemoveArcObserver(PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aObject, flockIRDFObserver *aObserver) { return !_to ? NS_ERROR_NULL_POINTER : _to->RemoveArcObserver(aType, aSubject, aPredicate, aObject, aObserver); } 

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

/* Header file */
class _MYCLASS_ : public flockIRDFObservable
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_FLOCKIRDFOBSERVABLE

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(_MYCLASS_, flockIRDFObservable)

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

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

/* void addArcObserver (in PRUint16 aType, in nsIRDFResource aSubject, in nsIRDFResource aPredicate, in nsIRDFNode aObject, in flockIRDFObserver aObserver); */
NS_IMETHODIMP _MYCLASS_::AddArcObserver(PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aObject, flockIRDFObserver *aObserver)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void removeArcObserver (in PRUint16 aType, in nsIRDFResource aSubject, in nsIRDFResource aPredicate, in nsIRDFNode aObject, in flockIRDFObserver aObserver); */
NS_IMETHODIMP _MYCLASS_::RemoveArcObserver(PRUint16 aType, nsIRDFResource *aSubject, nsIRDFResource *aPredicate, nsIRDFNode *aObject, flockIRDFObserver *aObserver)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_flockIRDFObserver_h__ */
