83 lines
1.8 KiB
C++
83 lines
1.8 KiB
C++
/*++
|
|
|
|
Copyright (c) 1994-1999 Microsoft Corporation
|
|
|
|
Module Name :
|
|
|
|
scache.h
|
|
|
|
Abstract:
|
|
|
|
IIS Server cache definitions
|
|
|
|
Author:
|
|
|
|
Ronald Meijer (ronaldm)
|
|
|
|
Project:
|
|
|
|
Internet Services Manager
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
|
|
|
|
#ifndef __SCACHE_H__
|
|
#define __SCACHE_H__
|
|
|
|
|
|
|
|
class CIISMachine;
|
|
|
|
|
|
|
|
class CIISServerCache : public CPtrList
|
|
/*++
|
|
|
|
Class Description:
|
|
|
|
Server cache. Server cache will be maintained in sorted order.
|
|
|
|
Public Interface:
|
|
|
|
CIISServerCache : Constructor
|
|
~CIISServerCache : Destructor
|
|
|
|
IsDirty : TRUE if the cache is dirty
|
|
SetDirty : Set the dirty bit
|
|
Add : Add machine object to cache
|
|
Remove : Remove machine object from cache
|
|
GetFirst : Get first machine object in cache
|
|
GetNext : Get next machine object in cache.
|
|
GetFirst must have been called first.
|
|
GetLast : Get last machine object in cache
|
|
GetPrev : Get previous machine object in cache
|
|
GetLast must have been called first.
|
|
|
|
--*/
|
|
{
|
|
public:
|
|
CIISServerCache() : m_pos(NULL), m_fDirty(FALSE) {};
|
|
~CIISServerCache() {};
|
|
|
|
public:
|
|
BOOL IsDirty() const { return m_fDirty; }
|
|
void SetDirty(BOOL fDirty = TRUE) { m_fDirty = fDirty; }
|
|
BOOL Add(CIISMachine * pMachine);
|
|
BOOL Remove(CIISMachine * pMachine);
|
|
CIISMachine * GetNext() { return m_pos ? (CIISMachine *)CPtrList::GetNext(m_pos) : NULL; }
|
|
CIISMachine * GetFirst() { m_pos = GetHeadPosition(); return GetNext(); }
|
|
CIISMachine * GetPrev() { return m_pos ? (CIISMachine *)CPtrList::GetPrev(m_pos) : NULL; }
|
|
CIISMachine * GetLast() { m_pos = GetTailPosition(); return GetPrev(); }
|
|
|
|
private:
|
|
POSITION m_pos;
|
|
BOOL m_fDirty;
|
|
};
|
|
|
|
|
|
|
|
#endif // __SCACHE_H__
|