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

#ifndef __gen_nsIWebDAVResource_h__
#define __gen_nsIWebDAVResource_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 nsIURL; /* forward declaration */


/* starting interface:    nsIWebDAVResource */
#define NS_IWEBDAVRESOURCE_IID_STR "9ec5321f-e3ea-4812-a4c7-5366a01b609e"

#define NS_IWEBDAVRESOURCE_IID \
  {0x9ec5321f, 0xe3ea, 0x4812, \
    { 0xa4, 0xc7, 0x53, 0x66, 0xa0, 0x1b, 0x60, 0x9e }}

class NS_NO_VTABLE nsIWebDAVResource : public nsISupports {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IWEBDAVRESOURCE_IID)

  /* readonly attribute nsIURL resourceURL; */
  NS_IMETHOD GetResourceURL(nsIURL * *aResourceURL) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIWEBDAVRESOURCE \
  NS_IMETHOD GetResourceURL(nsIURL * *aResourceURL); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIWEBDAVRESOURCE(_to) \
  NS_IMETHOD GetResourceURL(nsIURL * *aResourceURL) { return _to GetResourceURL(aResourceURL); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIWEBDAVRESOURCE(_to) \
  NS_IMETHOD GetResourceURL(nsIURL * *aResourceURL) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetResourceURL(aResourceURL); } 

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

/* Header file */
class nsWebDAVResource : public nsIWebDAVResource
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIWEBDAVRESOURCE

  nsWebDAVResource();

private:
  ~nsWebDAVResource();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsWebDAVResource, nsIWebDAVResource)

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

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

/* readonly attribute nsIURL resourceURL; */
NS_IMETHODIMP nsWebDAVResource::GetResourceURL(nsIURL * *aResourceURL)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


/* starting interface:    nsIWebDAVResourceWithLock */
#define NS_IWEBDAVRESOURCEWITHLOCK_IID_STR "8956be34-abad-4c1a-88eb-cbc1851547ea"

#define NS_IWEBDAVRESOURCEWITHLOCK_IID \
  {0x8956be34, 0xabad, 0x4c1a, \
    { 0x88, 0xeb, 0xcb, 0xc1, 0x85, 0x15, 0x47, 0xea }}

class NS_NO_VTABLE nsIWebDAVResourceWithLock : public nsIWebDAVResource {
 public: 

  NS_DEFINE_STATIC_IID_ACCESSOR(NS_IWEBDAVRESOURCEWITHLOCK_IID)

  /* readonly attribute AUTF8String lockToken; */
  NS_IMETHOD GetLockToken(nsACString & aLockToken) = 0;

};

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIWEBDAVRESOURCEWITHLOCK \
  NS_IMETHOD GetLockToken(nsACString & aLockToken); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIWEBDAVRESOURCEWITHLOCK(_to) \
  NS_IMETHOD GetLockToken(nsACString & aLockToken) { return _to GetLockToken(aLockToken); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIWEBDAVRESOURCEWITHLOCK(_to) \
  NS_IMETHOD GetLockToken(nsACString & aLockToken) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLockToken(aLockToken); } 

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

/* Header file */
class nsWebDAVResourceWithLock : public nsIWebDAVResourceWithLock
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIWEBDAVRESOURCEWITHLOCK

  nsWebDAVResourceWithLock();

private:
  ~nsWebDAVResourceWithLock();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsWebDAVResourceWithLock, nsIWebDAVResourceWithLock)

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

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

/* readonly attribute AUTF8String lockToken; */
NS_IMETHODIMP nsWebDAVResourceWithLock::GetLockToken(nsACString & aLockToken)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIWebDAVResource_h__ */
