//
//   COMPONENT_NAME: somuc
//
//   ORIGINS: 82, 81, 27
//
//
//   10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
//   All Rights Reserved
//   Licensed Materials - Property of IBM
//   US Government Users Restricted Rights - Use, duplication or
//   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
//
//   Copyright © 1988, 1989 Apple Computer, Inc. All rights reserved.
/*
 * CLASS_NAME: somf_TPrimitiveLinkedListIterator
 *
 * DESCRIPTION: An iterator for somf_TPrimitiveLinkedList that will iterate over
 *              all of the objects in a primitive linked list.
 *
 *
 */
#ifndef TPLLItr_idl
#define TPLLItr_idl
#include <somobj.idl>
interface somf_TPrimitiveLinkedList;
interface somf_MLinkable;
interface somf_TPrimitiveLinkedListIterator : SOMObject
{
  somf_TPrimitiveLinkedListIterator somfTPrimitiveLinkedListIteratorInit(in somf_TPrimitiveLinkedList list);
  // Initialize somf_TPrimitiveLinkedListIterator using somf_TPrimitiveLinkedList list.
  somf_MLinkable somfFirst();
  // Reset the iterator and return the first element of the list.
  somf_MLinkable somfNext();
  // Retrieve the next object in the list and return it.
  somf_MLinkable somfLast();
  // Retrieve the last object in the list and return it.
  somf_MLinkable somfPrevious();
  // Retrieve the previous object in the list and return it.
#ifdef __SOMIDL__
  implementation {
    releaseorder: somfFirst,somfNext,somfLast,somfPrevious,
		  somfTPrimitiveLinkedListIteratorInit;
    majorversion = 2;
    minorversion = 1;
    filestem = tpllitr;
    dllname = "somuc.dll";
    passthru C_xh_after =  ""
"#include <mlink.xh>"
"#include <tpll.xh>";
    passthru C_h_after =  ""
"#include <mlink.h>"
"#include <tpll.h>";
    somf_TPrimitiveLinkedList fList;
    somf_MLinkable fCurrent;
    somf_MLinkable fSentinel;
    somUninit: override;
    somfTPrimitiveLinkedListIteratorInit: nooverride;
  };
#endif /* __SOMIDL__ */
};
#endif  /* TPLLItr_idl */
