166 lines
4 KiB
C++
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);
|
||
|
}
|