indexing description: "Implementation of `IEnumXXXX' Interface." date: "$Date$" revision: "$Revision$" class interface IENUM_IMPL [G] create make (enumeration: like implementation) -- Initialization. require non_void_enumeration: enumeration /= void feature -- Basic Operations clone1 (ppenum: CELL [like Current]) -- Creates another enumerator that contains the -- same enumeration state as the current one. -- Using this function, a client can record a -- particular point in the enumeration sequence -- and then return to that point at a later time. -- The new enumerator supports the same interface -- as the original one. -- ppenum [out]. next (celt: INTEGER; rgelt: ARRAY [G]; pcelt_fetched: INTEGER_REF) -- Retrieves the next celt items in -- the enumeration sequence. -- If there are fewer than the requested number -- of elements left in the sequence, it retrieves -- the remaining elements. The number of elements -- actually retrieved is returned through -- pcelt_fetched (unless the caller passed in -- Void for that parameter). -- -- celt [in] Number of elements being requested. -- rgelt [out] Array of size celt (or larger) -- of the elements of interest. The type of this -- parameter depends on the item being enumerated. -- Array index starts from 1. -- pcelt_fetched [out] Reference to the number of -- elements actually supplied in rgelt. Caller can -- pass in Void if celt is one. reset -- Resets the enumeration sequence to the beginning. skip (celt: INTEGER) -- Skips over the next specified number of -- elements in the enumeration sequence. -- celt [in] Number of elements to be skipped. invariant implementation_exists: implementation_exists -- from ANY reflexive_equality: standard_is_equal (Current) reflexive_conformance: conforms_to (Current) end -- class IENUM_IMPL