windows-nt/Source/XPSP1/NT/admin/hmonitor/hmagent/base.cpp
2020-09-26 16:20:57 +08:00

166 lines
4 KiB
C++

//***************************************************************************
//
// BASE.CPP
//
// Module: HEALTHMON SERVER AGENT
//
// Purpose: Abstract base class for CSystem, CDataGroup, CDataCollector, CThreshold and CAction
//
// Copyright (c)1999 Microsoft Corporation, All Rights Reserved
//
//***************************************************************************
#include "base.h"
extern HMODULE g_hModule;
// STATIC DATA
HRLLIST CBase::mg_hrlList;
ILIST CBase::mg_DGEventList;
ILIST CBase::mg_DCEventList;
ILIST CBase::mg_DCPerInstanceEventList;
ILIST CBase::mg_TEventList;
//ILIST CBase::mg_TIEventList;
ILIST CBase::mg_DCStatsEventList;
ILIST CBase::mg_DCStatsInstList;
TCHAR CBase::m_szDTCurrTime[512];
TCHAR CBase::m_szCurrTime[512];
//STATIC STATIC STATIC STATIC STATIC STATIC STATIC STATIC STATIC STATIC STATIC
void CBase::CalcCurrTime(void)
{
TCHAR szTemp[512];
SYSTEMTIME st; // system time
// Formatted as follows -> "20000814135809.000000+***"
GetSystemTime(&st);
swprintf(m_szDTCurrTime, L"%04d%02d%02d%02d%02d%02d.000000+000",
st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
// GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SLONGDATE, szTemp, 100);
// GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SSHORTDATE, szTemp, 100);
m_szCurrTime[0] = '\0';
// GetDateFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, szTemp, m_szCurrTime, 100);
GetDateFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, m_szCurrTime, 100);
GetTimeFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, szTemp, 100);
wcscat(m_szCurrTime, L" ");
wcscat(m_szCurrTime, szTemp);
return;
}
//STATIC STATIC STATIC STATIC STATIC STATIC STATIC STATIC STATIC STATIC STATIC
void CBase::CleanupHRLList(void)
{
HRLSTRUCT *phrl;
int iSize;
int i;
// Since this is a global shared array, we need to do this
// in a static function.
iSize = mg_hrlList.size();
for (i = 0; i < iSize ; i++)
{
MY_ASSERT(i<mg_hrlList.size());
phrl = &mg_hrlList[i];
FreeLibrary(phrl->hResLib);
}
}
void CBase::CleanupEventLists(void)
{
int i, iSize;
IWbemClassObject* pInstance = NULL;
// Since this is a global shared array, we need to do this
// in a static function.
iSize = mg_DGEventList.size();
for (i=0; i < iSize; i++)
{
MY_ASSERT(i<mg_DGEventList.size());
pInstance = mg_DGEventList[i];
pInstance->Release();
pInstance = NULL;
}
mg_DGEventList.clear();
iSize = mg_DCEventList.size();
for (i=0; i < iSize; i++)
{
MY_ASSERT(i<mg_DCEventList.size());
pInstance = mg_DCEventList[i];
pInstance->Release();
pInstance = NULL;
}
mg_DCEventList.clear();
iSize = mg_DCPerInstanceEventList.size();
for (i=0; i < iSize; i++)
{
MY_ASSERT(i<mg_DCPerInstanceEventList.size());
pInstance = mg_DCPerInstanceEventList[i];
pInstance->Release();
pInstance = NULL;
}
mg_DCPerInstanceEventList.clear();
iSize = mg_TEventList.size();
for (i=0; i < iSize; i++)
{
MY_ASSERT(i<mg_TEventList.size());
pInstance = mg_TEventList[i];
pInstance->Release();
pInstance = NULL;
}
mg_TEventList.clear();
#ifdef SAVE
iSize = mg_TIEventList.size();
for (i=0; i < iSize; i++)
{
MY_ASSERT(i<mg_TIEventList.size());
pInstance = mg_TIEventList[i];
pInstance->Release();
pInstance = NULL;
}
mg_TIEventList.clear();
#endif
iSize = mg_DCStatsEventList.size();
for (i=0; i < iSize; i++)
{
MY_ASSERT(i<mg_DCStatsEventList.size());
pInstance = mg_DCStatsEventList[i];
pInstance->Release();
pInstance = NULL;
}
mg_DCStatsEventList.clear();
iSize = mg_DCStatsInstList.size();
for (i=0; i < iSize; i++)
{
MY_ASSERT(i<mg_DCStatsInstList.size());
pInstance = mg_DCStatsInstList[i];
pInstance->Release();
pInstance = NULL;
}
mg_DCStatsInstList.clear();
}
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CBase::CBase()
{
// m_hResLib = NULL;
}
CBase::~CBase()
{
MY_OUTPUT(L"ENTER ***** CBaseDestuctor...", 1);
}