mirror of https://github.com/tongzx/nt5src
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
67 lines
1.7 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1994.
|
|
//
|
|
// File: CQueue.hxx
|
|
//
|
|
// Contents: Change queue for downlevel notification changes.
|
|
//
|
|
// History: 30-Sep-94 KyleP Created
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
DECL_DYNSTACK( CChangeStack, BYTE );
|
|
|
|
class CDirNotifyEntry;
|
|
|
|
//+-------------------------------------------------------------------------
|
|
//
|
|
// Class: CChangeQueue
|
|
//
|
|
// Purpose: Queue of pending notifications
|
|
//
|
|
// History: 30-Sep-94 KyleP Created
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
|
|
class CChangeQueue
|
|
{
|
|
public:
|
|
|
|
CChangeQueue();
|
|
~CChangeQueue();
|
|
|
|
void Add( CDirNotifyEntry * pNotify, WCHAR const * pwcPath, BOOL fVirtual );
|
|
|
|
WCHAR const * CurrentPath() { return _pCurrentPath; }
|
|
unsigned CurrentPathLength() { return _cwcCurrentPath; }
|
|
BOOL CurrentVirtual() { return _fCurrentVirtual; }
|
|
|
|
unsigned Count() { return _stkChanges.Count(); }
|
|
CDirNotifyEntry const * First();
|
|
CDirNotifyEntry const * Next();
|
|
|
|
# ifdef CIEXTMODE
|
|
void CiExtDump(void *ciExtSelf);
|
|
# endif
|
|
|
|
private:
|
|
|
|
CDirNotifyEntry const * _pCurrent;
|
|
BYTE * _pCurrentBlock;
|
|
unsigned _iCurrent;
|
|
CChangeStack _stkChanges;
|
|
|
|
WCHAR const * _pCurrentPath;
|
|
unsigned _cwcCurrentPath;
|
|
CDynArrayInPlace<WCHAR const *> _aPathChanges;
|
|
|
|
BOOL _fCurrentVirtual;
|
|
CDynArrayInPlace<BOOL> _aVirtual;
|
|
};
|
|
|
|
DECLARE_SMARTP( ChangeQueue )
|
|
|