/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM /builds/slave/mozilla-central-linux64-xulrunner/build/dom/indexedDB/nsIIDBCursorRequest.idl
 */

#ifndef __gen_nsIIDBCursorRequest_h__
#define __gen_nsIIDBCursorRequest_h__


#ifndef __gen_nsIIDBCursor_h__
#include "nsIIDBCursor.h"
#endif

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

class nsIVariant; /* forward declaration */


/* starting interface:    nsIIDBCursorRequest */
#define NS_IIDBCURSORREQUEST_IID_STR "12ba5905-de6b-40f9-8c97-aec5f9dc706c"

#define NS_IIDBCURSORREQUEST_IID \
  {0x12ba5905, 0xde6b, 0x40f9, \
    { 0x8c, 0x97, 0xae, 0xc5, 0xf9, 0xdc, 0x70, 0x6c }}

/**
 * IDBCursorRequest interface.  See
 * http://dev.w3.org/2006/webapi/WebSimpleDB/#idl-def-IDBCursorRequest for more
 * information.
 */
class NS_NO_VTABLE NS_SCRIPTABLE nsIIDBCursorRequest : public nsIIDBCursor {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IIDBCURSORREQUEST_IID)

  /* readonly attribute nsIVariant key; */
  NS_SCRIPTABLE NS_IMETHOD GetKey(nsIVariant * *aKey) = 0;

  /* readonly attribute nsIVariant value; */
  NS_SCRIPTABLE NS_IMETHOD GetValue(nsIVariant * *aValue) = 0;

  /* [optional_argc] boolean continue ([optional] in nsIVariant key); */
  NS_SCRIPTABLE NS_IMETHOD Continue(nsIVariant *key, PRUint8 _argc, PRBool *_retval NS_OUTPARAM) = 0;

  /* nsIIDBRequest update (in nsIVariant value); */
  NS_SCRIPTABLE NS_IMETHOD Update(nsIVariant *value, nsIIDBRequest **_retval NS_OUTPARAM) = 0;

  /* nsIIDBRequest remove (); */
  NS_SCRIPTABLE NS_IMETHOD Remove(nsIIDBRequest **_retval NS_OUTPARAM) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIIDBCursorRequest, NS_IIDBCURSORREQUEST_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIIDBCURSORREQUEST \
  NS_SCRIPTABLE NS_IMETHOD GetKey(nsIVariant * *aKey); \
  NS_SCRIPTABLE NS_IMETHOD GetValue(nsIVariant * *aValue); \
  NS_SCRIPTABLE NS_IMETHOD Continue(nsIVariant *key, PRUint8 _argc, PRBool *_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD Update(nsIVariant *value, nsIIDBRequest **_retval NS_OUTPARAM); \
  NS_SCRIPTABLE NS_IMETHOD Remove(nsIIDBRequest **_retval NS_OUTPARAM); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIIDBCURSORREQUEST(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetKey(nsIVariant * *aKey) { return _to GetKey(aKey); } \
  NS_SCRIPTABLE NS_IMETHOD GetValue(nsIVariant * *aValue) { return _to GetValue(aValue); } \
  NS_SCRIPTABLE NS_IMETHOD Continue(nsIVariant *key, PRUint8 _argc, PRBool *_retval NS_OUTPARAM) { return _to Continue(key, _argc, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD Update(nsIVariant *value, nsIIDBRequest **_retval NS_OUTPARAM) { return _to Update(value, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD Remove(nsIIDBRequest **_retval NS_OUTPARAM) { return _to Remove(_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_NSIIDBCURSORREQUEST(_to) \
  NS_SCRIPTABLE NS_IMETHOD GetKey(nsIVariant * *aKey) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetKey(aKey); } \
  NS_SCRIPTABLE NS_IMETHOD GetValue(nsIVariant * *aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValue(aValue); } \
  NS_SCRIPTABLE NS_IMETHOD Continue(nsIVariant *key, PRUint8 _argc, PRBool *_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->Continue(key, _argc, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD Update(nsIVariant *value, nsIIDBRequest **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->Update(value, _retval); } \
  NS_SCRIPTABLE NS_IMETHOD Remove(nsIIDBRequest **_retval NS_OUTPARAM) { return !_to ? NS_ERROR_NULL_POINTER : _to->Remove(_retval); } 

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

/* Header file */
class nsIDBCursorRequest : public nsIIDBCursorRequest
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIIDBCURSORREQUEST

  nsIDBCursorRequest();

private:
  ~nsIDBCursorRequest();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS1(nsIDBCursorRequest, nsIIDBCursorRequest)

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

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

/* readonly attribute nsIVariant key; */
NS_IMETHODIMP nsIDBCursorRequest::GetKey(nsIVariant * *aKey)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute nsIVariant value; */
NS_IMETHODIMP nsIDBCursorRequest::GetValue(nsIVariant * *aValue)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* [optional_argc] boolean continue ([optional] in nsIVariant key); */
NS_IMETHODIMP nsIDBCursorRequest::Continue(nsIVariant *key, PRUint8 _argc, PRBool *_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIIDBRequest update (in nsIVariant value); */
NS_IMETHODIMP nsIDBCursorRequest::Update(nsIVariant *value, nsIIDBRequest **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* nsIIDBRequest remove (); */
NS_IMETHODIMP nsIDBCursorRequest::Remove(nsIIDBRequest **_retval NS_OUTPARAM)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

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


#endif /* __gen_nsIIDBCursorRequest_h__ */
