Source code of Windows XP (NT5)
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.

67 lines
1.7 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1994.
  5. //
  6. // File: CQueue.hxx
  7. //
  8. // Contents: Change queue for downlevel notification changes.
  9. //
  10. // History: 30-Sep-94 KyleP Created
  11. //
  12. //--------------------------------------------------------------------------
  13. #pragma once
  14. DECL_DYNSTACK( CChangeStack, BYTE );
  15. class CDirNotifyEntry;
  16. //+-------------------------------------------------------------------------
  17. //
  18. // Class: CChangeQueue
  19. //
  20. // Purpose: Queue of pending notifications
  21. //
  22. // History: 30-Sep-94 KyleP Created
  23. //
  24. //--------------------------------------------------------------------------
  25. class CChangeQueue
  26. {
  27. public:
  28. CChangeQueue();
  29. ~CChangeQueue();
  30. void Add( CDirNotifyEntry * pNotify, WCHAR const * pwcPath, BOOL fVirtual );
  31. WCHAR const * CurrentPath() { return _pCurrentPath; }
  32. unsigned CurrentPathLength() { return _cwcCurrentPath; }
  33. BOOL CurrentVirtual() { return _fCurrentVirtual; }
  34. unsigned Count() { return _stkChanges.Count(); }
  35. CDirNotifyEntry const * First();
  36. CDirNotifyEntry const * Next();
  37. # ifdef CIEXTMODE
  38. void CiExtDump(void *ciExtSelf);
  39. # endif
  40. private:
  41. CDirNotifyEntry const * _pCurrent;
  42. BYTE * _pCurrentBlock;
  43. unsigned _iCurrent;
  44. CChangeStack _stkChanges;
  45. WCHAR const * _pCurrentPath;
  46. unsigned _cwcCurrentPath;
  47. CDynArrayInPlace<WCHAR const *> _aPathChanges;
  48. BOOL _fCurrentVirtual;
  49. CDynArrayInPlace<BOOL> _aVirtual;
  50. };
  51. DECLARE_SMARTP( ChangeQueue )