Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
1.2 KiB

  1. /*++
  2. Copyright (c) 1990 Microsoft Corporation
  3. Module Name:
  4. iterator.hxx
  5. Abstract:
  6. This module contains the declaration for the abstract ITERATOR class.
  7. ITERATORS are used to iterate over a CONTAINER allowing for multiple,
  8. simultaneous readers. ITERATORs maintain the currency needed to perform
  9. an iteration. This includes the current OBJECT in the CONTAINER and the
  10. currency needed to get the next or previous OBJECT. ITERATORs also
  11. provide the capability of wrapping when the end or begin of the container
  12. is reached.
  13. Author:
  14. David J. Gilman (davegi) 29-Oct-1990
  15. Environment:
  16. ULIB, User Mode
  17. --*/
  18. #if ! defined( _ITERATOR_ )
  19. #define _ITERATOR_
  20. DECLARE_CLASS( ITERATOR );
  21. class ITERATOR : public OBJECT {
  22. public:
  23. VIRTUAL
  24. ~ITERATOR(
  25. );
  26. VIRTUAL
  27. POBJECT
  28. FindNext(
  29. IN PCOBJECT Key
  30. );
  31. VIRTUAL
  32. POBJECT
  33. GetCurrent(
  34. ) PURE;
  35. VIRTUAL
  36. POBJECT
  37. GetNext(
  38. ) PURE;
  39. VIRTUAL
  40. POBJECT
  41. GetPrevious(
  42. ) PURE;
  43. VIRTUAL
  44. VOID
  45. Reset(
  46. ) PURE;
  47. protected:
  48. DECLARE_CONSTRUCTOR( ITERATOR );
  49. };
  50. #endif // _ITERATOR_