//
//   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-92 Apple Computer, Inc.  All rights reserved.
/*
 * CLASS_NAME: somf_TSequence
 *
 * DESCRIPTION: TSequence is an abstract superclass for collections whose
 *              elements are ordered.
 *
 */
#ifndef TSeq_idl
#define TSeq_idl
#include <tcollect.idl>
/* interface somf_MCollectible; */
interface somf_TSequence : somf_TCollection
{
  somf_MCollectible somfAfter(in somf_MCollectible obj);
  // Return the object found after obj.
  somf_MCollectible somfBefore(in somf_MCollectible obj);
  // Return the object found before obj.
  somf_MCollectible somfLast();
  // Determine the last object in this.
  somf_MCollectible somfFirst();
  // Determine the first object in this.
  long somfOccurrencesOf(in somf_MCollectible obj);
  // Determine the number of times obj is in this.
  somf_TSequence somfTSequenceInit(in somf_MCollectible::somf_MCollectibleCompareFn testfn);
  // This method initializes a new TSequence.
#ifdef __SOMIDL__
  implementation {
    releaseorder: somfFirst,somfAfter,somfBefore,somfLast,
		  somfOccurrencesOf,somfTSequenceInit;
    majorversion = 2;
    minorversion = 1;
    filestem = tseq;
    dllname = "somuc.dll";
    passthru C_xh =     ""
"#include <mcollect.xh>";
    passthru C_h =      ""
"#include <mcollect.h>";
    somfAfter: nomodify;
    somfBefore: nomodify;
    somfLast: nomodify;
    somfFirst: nomodify;
    somfOccurrencesOf: nomodify;
    somfAdd: override;
    somfRemove: override;
    somfRemoveAll: override;
    somfDeleteAll: override;
    somfCount: override;
    somfCreateIterator: override;
    somInit: override;
    somfTSequenceInit: nooverride;
  };
#endif /* __SOMIDL__ */
};
#endif  /* TSeq_idl */
