mirror of https://github.com/tongzx/nt5src
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.
95 lines
2.1 KiB
95 lines
2.1 KiB
// This is a part of the Active Template Library.
|
|
// Copyright (C) 1996-2001 Microsoft Corporation
|
|
// All rights reserved.
|
|
//
|
|
// This source code is only intended as a supplement to the
|
|
// Active Template Library Reference and related
|
|
// electronic documentation provided with the library.
|
|
// See these sources for detailed information regarding the
|
|
// Active Template Library product.
|
|
|
|
#ifndef ATLDEBUG_SHAREDMEORY_ALLOCATOR_HEADER
|
|
#define ATLDEBUG_SHAREDMEORY_ALLOCATOR_HEADER
|
|
|
|
class CAtlTraceProcess;
|
|
class CAtlTraceModule;
|
|
class CAtlTraceCategory;
|
|
|
|
class CTraceSnapshot
|
|
{
|
|
public:
|
|
struct CModuleInfo
|
|
{
|
|
DWORD_PTR m_dwModule;
|
|
int m_nCategories;
|
|
int m_iFirstCategory;
|
|
};
|
|
|
|
public:
|
|
CSimpleArray< CModuleInfo > m_aModules;
|
|
CSimpleArray< DWORD_PTR > m_adwCategories;
|
|
};
|
|
|
|
class CAtlAllocator
|
|
{
|
|
public:
|
|
CAtlAllocator() :
|
|
m_dwPageSize(0),
|
|
m_hMap(NULL),
|
|
m_bValid(false),
|
|
m_pProcess(NULL),
|
|
m_bSnapshot(false)
|
|
{
|
|
}
|
|
|
|
~CAtlAllocator()
|
|
{
|
|
Close();
|
|
}
|
|
|
|
bool Init(const CHAR *pszFileMappingName, DWORD dwMaxSize);
|
|
bool Open(const CHAR *pszFileMappingName);
|
|
void Close(bool bForceUnmap = false);
|
|
bool IsValid() const {return m_bValid;}
|
|
|
|
CAtlTraceProcess *GetProcess() const {return m_pProcess;}
|
|
CAtlTraceModule *GetModule(int iModule) const;
|
|
// CAtlTraceCategory *GetCategory(int iModule, unsigned nCategory) const;
|
|
CAtlTraceCategory* GetCategory(int iCategory) const;
|
|
|
|
/*
|
|
bool Lock(DWORD dwTimeOut);
|
|
void Unlock();
|
|
*/
|
|
|
|
bool LoadSettings(const CHAR *pszFileName);
|
|
bool LoadSettings(const WCHAR *pszFileName);
|
|
bool SaveSettings(const CHAR *pszFileName);
|
|
bool SaveSettings(const WCHAR *pszFileName);
|
|
|
|
int GetModuleCount() const;
|
|
int GetCategoryCount(int iModule) const;
|
|
int GetCategoryCount(const CAtlTraceModule& Module) const;
|
|
|
|
int AddModule(HINSTANCE hInst);
|
|
int AddCategory(int iModule, const WCHAR *szCategoryName);
|
|
|
|
bool RemoveModule(int iModule);
|
|
|
|
void CleanUp();
|
|
|
|
void TakeSnapshot();
|
|
void ReleaseSnapshot();
|
|
|
|
CTraceSnapshot m_snapshot;
|
|
bool m_bSnapshot;
|
|
|
|
private:
|
|
CAtlTraceProcess *m_pProcess;
|
|
DWORD m_dwPageSize;
|
|
HANDLE m_hMap;
|
|
bool m_bValid;
|
|
BYTE *m_pBufferStart;
|
|
};
|
|
|
|
#endif // ATLDEBUG_SHAREDMEORY_ALLOCATOR_HEADER
|