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.
71 lines
2.3 KiB
71 lines
2.3 KiB
// CounterMgr.h: interface for the CCounterMgr classes.
|
|
//
|
|
// MODULE: COUNTERMGR.H
|
|
//
|
|
// PUTPOSE: Global pool of pointers to status counters
|
|
// These pointers can be accessed through name (string, like "Topic imsetup"
|
|
// or "Thread 1") and counted event identifier (long).
|
|
// There is only one instance of this class in the programm.
|
|
// Manipulation with members of this class should be thread safe.
|
|
//
|
|
// PROJECT: Generic Troubleshooter DLL for Microsoft AnswerPoint
|
|
//
|
|
// COMPANY: Saltmine Creative, Inc. (206)-284-7511 [email protected]
|
|
//
|
|
// AUTHOR: Oleg Kalosha
|
|
//
|
|
// ORIGINAL DATE: 10-20-98
|
|
//
|
|
// NOTES:
|
|
//
|
|
// Version Date By Comments
|
|
//--------------------------------------------------------------------
|
|
// V3.0 10-20-98 OK Original
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_COUNTERMGR_H__14CDE7A4_6844_11D2_8C42_00C04F949D33__INCLUDED_)
|
|
#define AFX_COUNTERMGR_H__14CDE7A4_6844_11D2_8C42_00C04F949D33__INCLUDED_
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
|
|
#include "Stateless.h"
|
|
#include "Counter.h"
|
|
#include <vector>
|
|
|
|
using namespace std;
|
|
|
|
class CCounterMgr; // forward declaration
|
|
CCounterMgr* Get_g_CounterMgr(); // Singleton to obtain g_CounterMgr global variable
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////
|
|
// CCounterMgr declaration
|
|
////////////////////////////////////////////////////////////////////////////////////
|
|
class CCounterMgr : public CStateless
|
|
{
|
|
vector<CAbstractCounter*> m_arrCounterPool;
|
|
|
|
public:
|
|
CCounterMgr() {}
|
|
virtual ~CCounterMgr() {}
|
|
|
|
protected:
|
|
CAbstractCounter* Exists(const CCounterLocation&) const;
|
|
bool RemoveLocation(const CCounterLocation&);
|
|
|
|
public:
|
|
// adds counter with unique location
|
|
// if counter with such location alredy exists, does nothing, returns false
|
|
bool Add(const CAbstractCounter&);
|
|
// adds counter with unique location
|
|
// if counter with such location alredy exists, it is substituted with new counter
|
|
void AddSubstitute(const CAbstractCounter&);
|
|
// removes this particular counter
|
|
// if the counter is not stored in the pool, returns false
|
|
bool Remove(const CAbstractCounter&);
|
|
CAbstractCounter* Get(const CCounterLocation&) const;
|
|
};
|
|
|
|
#endif // !defined(AFX_COUNTERMGR_H__14CDE7A4_6844_11D2_8C42_00C04F949D33__INCLUDED_)
|