windows-nt/Source/XPSP1/NT/inetsrv/iis/svcs/cmp/asp51/aspdmon.h
2020-09-26 16:20:57 +08:00

75 lines
2 KiB
C++

/*++
Copyright (c) 1997 Microsoft Corporation
Module Name :
aspdirmon.cpp
Abstract:
This module includes derivation of class supporting change
notification for ASP template cache, from abstract class DIR_MON_ENTRY
Author:
Charles Grant ( cgrant ) June-1997
Revision History:
--*/
#ifndef _CACHEDIRMON_H
#define _CACHEDIRMON_H
// ASP-customized file notification filter
// see Winnt.h for valid flags, only valid for NT
#define FILE_NOTIFY_FILTER (FILE_NOTIFY_CHANGE_FILE_NAME | \
FILE_NOTIFY_CHANGE_DIR_NAME | \
FILE_NOTIFY_CHANGE_ATTRIBUTES | \
FILE_NOTIFY_CHANGE_SIZE | \
FILE_NOTIFY_CHANGE_LAST_WRITE | \
FILE_NOTIFY_CHANGE_SECURITY)
// Number of times we will try to get request notification
#define MAX_NOTIFICATION_FAILURES 3
/************************************************************
* Include Headers
************************************************************/
# include "dirmon.h"
# include "reftrace.h"
class CASPDirMonitorEntry : public CDirMonitorEntry
{
private:
DWORD m_cNotificationFailures;
BOOL ActOnNotification(DWORD dwStatus, DWORD dwBytesWritten);
void FileChanged(const char *pszScriptName, bool fFileWasRemoved);
public:
CASPDirMonitorEntry();
~CASPDirMonitorEntry();
VOID AddRef(VOID);
BOOL Release(VOID);
BOOL FPathMonitored(LPCSTR pszPath);
// Trace Log info
static PTRACE_LOG gm_pTraceLog;
};
BOOL RegisterASPDirMonitorEntry(LPCSTR pszDirectory, CASPDirMonitorEntry **ppDME, BOOL fWatchSubDirs = FALSE);
BOOL ConvertToLongFileName(const char *pszPath, const char *pszName, WIN32_FIND_DATA *pwfd);
/*===================================================================
Globals
===================================================================*/
extern CDirMonitor *g_pDirMonitor;
#endif /* _CACHEDIRMON_H */