text: /*++
  
  Copyright (c) 1990  Microsoft Corporation
  
  Module Name:
  
  	seqcnt.hxx
  
  Abstract:
  
  	This module contains the declaration for the SEQUENTIAL_CONTAINER class.
  	SEQUENTIAL_CONTAINER is a fairly primitive class which augments the 
  	CONTAINER class by adding the capability that the objects stored in the
  	container have some sort of sequenced relationship. This means that 
  	OBJECTs can be queried from SEQUENTIAL_CONTAINERs by the use of an 
  	ITERATOR and that the concepts first, last, next and previous have 
  	meaning.
  
  Author:
  
  	David J. Gilman (davegi) 29-Oct-1990
  
  Environment:
  
  	ULIB, User Mode
  
  --*/
  
  #if ! defined( _SEQUENTIAL_CONTAINER_ )
  
  #define _SEQUENTIAL_CONTAINER_
  
  #include "contain.hxx"
  
  DECLARE_CLASS( SEQUENTIAL_CONTAINER );
  DECLARE_CLASS( ITERATOR );
  
  class SEQUENTIAL_CONTAINER : public CONTAINER {
  
      FRIEND class ITERATOR;
  
  	public:
  
          VIRTUAL
          ~SEQUENTIAL_CONTAINER(
              );
  
  		VIRTUAL
          BOOLEAN
  		Put(
  			IN OUT  POBJECT Member
  			) PURE;
  
          VIRTUAL
          ULONG
          QueryMemberCount(
              ) CONST PURE;
  
          VIRTUAL
          ULIB_EXPORT
          BOOLEAN
          DeleteAllMembers(
              );
  
  		VIRTUAL
  		PITERATOR
  		QueryIterator(
  			) CONST PURE;
  
  		VIRTUAL
  		POBJECT
  		Remove(
  			IN OUT  PITERATOR   Position
  			) PURE;
  
  	protected:
  
  		DECLARE_CONSTRUCTOR( SEQUENTIAL_CONTAINER );
  
  };
  
  
  #endif // _SEQUENTIAL_CONTAINER_
  