/*++ 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_