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.
122 lines
2.6 KiB
122 lines
2.6 KiB
/*++
|
|
|
|
Copyright (C) 1998-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
smrootnd.cpp
|
|
|
|
Abstract:
|
|
|
|
This object is used to represent the Performance Logs and Alerts root node
|
|
|
|
--*/
|
|
|
|
#include "Stdafx.h"
|
|
#include "smrootnd.h"
|
|
|
|
//
|
|
// Constructor
|
|
CSmRootNode::CSmRootNode()
|
|
: m_bIsExpanded ( FALSE ),
|
|
m_hRootNode ( NULL ),
|
|
m_hParentNode ( NULL ),
|
|
m_bIsExtension ( FALSE )
|
|
{
|
|
CString strTemp;
|
|
ResourceStateManager rsm;
|
|
|
|
// String allocation errors are thrown, to be
|
|
// captured by rootnode alloc exception handler
|
|
|
|
strTemp.LoadString ( IDS_MMC_DEFAULT_NAME );
|
|
SetDisplayName ( strTemp );
|
|
strTemp.LoadString ( IDS_ROOT_NODE_DESCRIPTION );
|
|
SetDescription ( strTemp );
|
|
strTemp.LoadString ( IDS_EXTENSION_COL_TYPE );
|
|
SetType ( strTemp );
|
|
return;
|
|
}
|
|
|
|
//
|
|
// Destructor
|
|
CSmRootNode::~CSmRootNode()
|
|
{
|
|
ASSERT (m_CounterLogService.m_QueryList.GetHeadPosition() == NULL);
|
|
ASSERT (m_TraceLogService.m_QueryList.GetHeadPosition() == NULL);
|
|
ASSERT (m_AlertService.m_QueryList.GetHeadPosition() == NULL);
|
|
|
|
return;
|
|
}
|
|
|
|
void
|
|
CSmRootNode::Destroy()
|
|
{
|
|
m_CounterLogService.Close();
|
|
m_TraceLogService.Close();
|
|
m_AlertService.Close();
|
|
|
|
return;
|
|
}
|
|
|
|
BOOL
|
|
CSmRootNode::IsLogService (
|
|
MMC_COOKIE mmcCookie )
|
|
{
|
|
BOOL bReturn = FALSE;
|
|
|
|
if (mmcCookie == (MMC_COOKIE)&m_CounterLogService) {
|
|
bReturn = TRUE;
|
|
} else if (mmcCookie == (MMC_COOKIE)&m_TraceLogService) {
|
|
bReturn = TRUE;
|
|
} else if (mmcCookie == (MMC_COOKIE)&m_AlertService) {
|
|
bReturn = TRUE;
|
|
}
|
|
|
|
return bReturn;
|
|
}
|
|
|
|
BOOL
|
|
CSmRootNode::IsAlertService (
|
|
MMC_COOKIE mmcCookie )
|
|
{
|
|
BOOL bReturn = FALSE;
|
|
|
|
if (mmcCookie == (MMC_COOKIE)&m_AlertService) {
|
|
bReturn = TRUE;
|
|
}
|
|
return bReturn;
|
|
}
|
|
|
|
BOOL
|
|
CSmRootNode::IsLogQuery (
|
|
MMC_COOKIE mmcCookie )
|
|
{
|
|
PSLQUERY pPlQuery = NULL;
|
|
|
|
POSITION Pos;
|
|
|
|
// Handle multiple query types
|
|
Pos = m_CounterLogService.m_QueryList.GetHeadPosition();
|
|
|
|
while ( Pos != NULL) {
|
|
pPlQuery = m_CounterLogService.m_QueryList.GetNext( Pos );
|
|
if ((MMC_COOKIE)pPlQuery == mmcCookie) return TRUE;
|
|
}
|
|
|
|
Pos = m_TraceLogService.m_QueryList.GetHeadPosition();
|
|
|
|
while ( Pos != NULL) {
|
|
pPlQuery = m_TraceLogService.m_QueryList.GetNext( Pos );
|
|
if ((MMC_COOKIE)pPlQuery == mmcCookie) return TRUE;
|
|
}
|
|
|
|
Pos = m_AlertService.m_QueryList.GetHeadPosition();
|
|
|
|
while ( Pos != NULL) {
|
|
pPlQuery = m_AlertService.m_QueryList.GetNext( Pos );
|
|
if ((MMC_COOKIE)pPlQuery == mmcCookie) return TRUE;
|
|
}
|
|
|
|
return FALSE;
|
|
}
|