michael@0: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef nsArrayEnumerator_h__ michael@0: #define nsArrayEnumerator_h__ michael@0: michael@0: // enumerator implementation for nsIArray michael@0: michael@0: #include "nscore.h" michael@0: michael@0: class nsISimpleEnumerator; michael@0: class nsIArray; michael@0: class nsCOMArray_base; michael@0: michael@0: // Create an enumerator for an existing nsIArray implementation michael@0: // The enumerator holds an owning reference to the array. michael@0: NS_COM_GLUE nsresult michael@0: NS_NewArrayEnumerator(nsISimpleEnumerator* *result, michael@0: nsIArray* array); michael@0: michael@0: // create an enumerator for an existing nsCOMArray implementation michael@0: // The enumerator will hold an owning reference to each ELEMENT in michael@0: // the array. This means that the nsCOMArray can safely go away michael@0: // without its objects going away. michael@0: NS_COM_GLUE nsresult michael@0: NS_NewArrayEnumerator(nsISimpleEnumerator* *aResult, michael@0: const nsCOMArray_base& aArray); michael@0: michael@0: #endif