windows-nt/Source/XPSP1/NT/base/fs/utils/ulib/inc/seqcnt.hxx
2020-09-26 16:20:57 +08:00

84 lines
1.4 KiB
C++

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