Windows2000/private/windows/shell/lmui/ntshrui.new/cache.hxx
2020-09-30 17:12:32 +02:00

103 lines
1.6 KiB
C++

// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
// File: cache.hxx
// Contents: Functions to manage a cache of shares
// History: 11-Apr-95 BruceFo Created
#ifndef __CACHE_HXX__
#define __CACHE_HXX__
// The CShareCache class encapsulates a cache of network shares. The cache
// is thread-safe; all access is protected by a critical section.
class CStrHashTable;
class CShareInfo;
class CShareCache
{
public:
CShareCache(
VOID
);
~CShareCache();
BOOL
IsPathShared(
LPCTSTR lpPath,
BOOL fRefresh
);
BOOL
IsShareNameUsed(
IN PWSTR pszShareName
);
BOOL
IsExistingShare(
IN PCWSTR pszShareName,
IN PCWSTR pszPath,
OUT PWSTR pszOldPath
);
VOID
Refresh(
IN PWSTR pszServer = NULL
);
HRESULT
ConstructList(
IN PCWSTR pszPath,
IN OUT CShareInfo* pShareList,
OUT ULONG* pcShares
);
HRESULT
ConstructParentWarnList(
IN PCWSTR pszPath,
OUT CShareInfo** ppShareList
);
#if DBG == 1
VOID Dump();
#endif // DBG == 1
private:
VOID
Delete(
VOID
);
VOID
RefreshNoCritSec(
IN PWSTR pszServer
);
BOOL
CacheOK(
VOID
);
UINT m_cShares;
LPBYTE m_pBufShares;
CStrHashTable* m_pHash;
CRITICAL_SECTION m_csBuf; // last for debugging ease
};
extern CShareCache g_ShareCache; // the main share cache
#endif // __CACHE_HXX__