Source code of Windows XP (NT5)
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

// 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