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

//+-------------------------------------------------------------------------
//
// 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 )