blob: 49df753cc9c498e4ebd1927dbfe0ce7058e25d55 [file] [log] [blame]
/*
* DO NOT EDIT. THIS FILE IS GENERATED FROM e:/builds/tinderbox/XR-Trunk/WINNT_5.2_Depend/mozilla/xpcom/ds/nsISimpleEnumerator.idl
*/
#ifndef __gen_nsISimpleEnumerator_h__
#define __gen_nsISimpleEnumerator_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
/* starting interface: nsISimpleEnumerator */
#define NS_ISIMPLEENUMERATOR_IID_STR "d1899240-f9d2-11d2-bdd6-000064657374"
#define NS_ISIMPLEENUMERATOR_IID \
{0xd1899240, 0xf9d2, 0x11d2, \
{ 0xbd, 0xd6, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
/**
* Used to enumerate over elements defined by its implementor.
* Although hasMoreElements() can be called independently of getNext(),
* getNext() must be pre-ceeded by a call to hasMoreElements(). There is
* no way to "reset" an enumerator, once you obtain one.
*
* @status FROZEN
* @version 1.0
*/
class NS_NO_VTABLE NS_SCRIPTABLE nsISimpleEnumerator : public nsISupports {
public:
NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISIMPLEENUMERATOR_IID)
/**
* Called to determine whether or not the enumerator has
* any elements that can be returned via getNext(). This method
* is generally used to determine whether or not to initiate or
* continue iteration over the enumerator, though it can be
* called without subsequent getNext() calls. Does not affect
* internal state of enumerator.
*
* @see getNext()
* @return PR_TRUE if there are remaining elements in the enumerator.
* PR_FALSE if there are no more elements in the enumerator.
*/
/* boolean hasMoreElements (); */
NS_SCRIPTABLE NS_IMETHOD HasMoreElements(PRBool *_retval) = 0;
/**
* Called to retrieve the next element in the enumerator. The "next"
* element is the first element upon the first call. Must be
* pre-ceeded by a call to hasMoreElements() which returns PR_TRUE.
* This method is generally called within a loop to iterate over
* the elements in the enumerator.
*
* @see hasMoreElements()
* @return NS_OK if the call succeeded in returning a non-null
* value through the out parameter.
* NS_ERROR_FAILURE if there are no more elements
* to enumerate.
* @return the next element in the enumeration.
*/
/* nsISupports getNext (); */
NS_SCRIPTABLE NS_IMETHOD GetNext(nsISupports **_retval) = 0;
};
NS_DEFINE_STATIC_IID_ACCESSOR(nsISimpleEnumerator, NS_ISIMPLEENUMERATOR_IID)
/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSISIMPLEENUMERATOR \
NS_SCRIPTABLE NS_IMETHOD HasMoreElements(PRBool *_retval); \
NS_SCRIPTABLE NS_IMETHOD GetNext(nsISupports **_retval);
/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSISIMPLEENUMERATOR(_to) \
NS_SCRIPTABLE NS_IMETHOD HasMoreElements(PRBool *_retval) { return _to HasMoreElements(_retval); } \
NS_SCRIPTABLE NS_IMETHOD GetNext(nsISupports **_retval) { return _to GetNext(_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_NSISIMPLEENUMERATOR(_to) \
NS_SCRIPTABLE NS_IMETHOD HasMoreElements(PRBool *_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->HasMoreElements(_retval); } \
NS_SCRIPTABLE NS_IMETHOD GetNext(nsISupports **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNext(_retval); }
#if 0
/* Use the code below as a template for the implementation class for this interface. */
/* Header file */
class nsSimpleEnumerator : public nsISimpleEnumerator
{
public:
NS_DECL_ISUPPORTS
NS_DECL_NSISIMPLEENUMERATOR
nsSimpleEnumerator();
private:
~nsSimpleEnumerator();
protected:
/* additional members */
};
/* Implementation file */
NS_IMPL_ISUPPORTS1(nsSimpleEnumerator, nsISimpleEnumerator)
nsSimpleEnumerator::nsSimpleEnumerator()
{
/* member initializers and constructor code */
}
nsSimpleEnumerator::~nsSimpleEnumerator()
{
/* destructor code */
}
/* boolean hasMoreElements (); */
NS_IMETHODIMP nsSimpleEnumerator::HasMoreElements(PRBool *_retval)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* nsISupports getNext (); */
NS_IMETHODIMP nsSimpleEnumerator::GetNext(nsISupports **_retval)
{
return NS_ERROR_NOT_IMPLEMENTED;
}
/* End of implementation class template. */
#endif
#endif /* __gen_nsISimpleEnumerator_h__ */