windows-nt/Source/XPSP1/NT/inetsrv/iis/admin/adsi/adsiis/svrcache.hxx
2020-09-26 16:20:57 +08:00

77 lines
1.9 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996 - 1997.
//
// File: svrcache.hxx
//
// Contents: Server cache class
//
// Functions:
//
// History: 15-Apr-97 SophiaC Created.
//
//----------------------------------------------------------------------------
#ifndef __SERVER_CACHE__HXX__
#define __SERVER_CACHE__HXX__
class SERVER_CACHE;
class SERVER_CACHE_ITEM
{
friend class SERVER_CACHE;
int key;
public:
LPWSTR ServerName;
IMSAdminBase * pAdminBase;
IIsSchema * pSchema;
DWORD dwThreadId;
SERVER_CACHE_ITEM(LPWSTR a,
IMSAdminBase * b,
IIsSchema * c,
DWORD dwId,
BOOL & Success
) :
pAdminBase(b),
pSchema(c),
dwThreadId(dwId)
{
Success = TRUE;
ServerName = new WCHAR[wcslen(a)+1];
if (NULL == ServerName)
{
Success = FALSE;
return;
}
if (NULL == wcscpy(ServerName, a))
{
Success = FALSE;
return;
}
}
VOID UpdateAdminBase(IMSAdminBase *b, DWORD dwId) {
dwThreadId = dwId;
pAdminBase = b;
}
VOID UpdateSchema(IIsSchema *c) {
pSchema = c;
}
};
NEW_SDICT(SERVER_CACHE_ITEM);
class SERVER_CACHE
{
SERVER_CACHE_ITEM_DICT Cache;
public:
BOOL Insert(SERVER_CACHE_ITEM * item);
SERVER_CACHE_ITEM * Delete(LPWSTR ServerName, DWORD dwId);
SERVER_CACHE_ITEM * Find(LPWSTR ServerName, DWORD dwId);
};
#endif