windows-nt/Source/XPSP1/NT/enduser/troubleshoot/tshoot/bn.h
2020-09-26 16:20:57 +08:00

90 lines
2.8 KiB
C++

//
// MODULE: BN.h
//
// PURPOSE: interface for the CBeliefNetwork class
//
// PROJECT: Generic Troubleshooter DLL for Microsoft AnswerPoint
//
// COMPANY: Saltmine Creative, Inc. (206)-284-7511 support@saltmine.com
//
// AUTHOR: Joe Mabel
//
// ORIGINAL DATE: 8-31-98
//
// NOTES:
// 1. Based on Print Troubleshooter DLL
//
// Version Date By Comments
//---------------------------------------------------------------------
// V3.0 8-31-98 JM
//
#if !defined(AFX_TOPIC_H__4ACF2F73_40EB_11D2_95EE_00C04FC22ADD__INCLUDED_)
#define AFX_TOPIC_H__4ACF2F73_40EB_11D2_95EE_00C04FC22ADD__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "dscread.h"
#include "apgtscac.h"
#include "counter.h"
class CBeliefNetwork : public CDSCReader
{
struct SNodeType
{
NID Nid;
ESTDLBL Type;
SNodeType(NID nid, ESTDLBL type) : Nid(nid), Type(type) {}
};
protected:
bool m_bInitialized;
vector<NID> m_arrnidProblem; // NIDs of problem nodes; convenience array
vector<SNodeType> m_arrNodeTypeAll; // NIDs of all nodes; convenience array
CCache m_Cache; // cache for this topic
CHourlyDailyCounter m_countCacheHit;
CHourlyDailyCounter m_countCacheMiss;
bool m_bSnifferIntegration; // This belief network is designed to integrate with a
// sniffer.
private:
CBeliefNetwork(); // do not instantiate
public:
typedef enum {RS_OK, RS_Impossible, RS_Broken} eRecStatus;
CBeliefNetwork(LPCTSTR path);
virtual ~CBeliefNetwork();
int CNode();
int INode (LPCTSTR szNodeName);
int GetRecommendations(
const CBasisForInference & BasisForInference,
CRecommendations & Recommendations);
int GetProblemArray(vector<NID>* &parrnid);
int GetNodeArrayIncludeType(vector<NID>& arrOut, const vector<ESTDLBL>& arrTypeInclude);
int GetNodeArrayExcludeType(vector<NID>& arrOut, const vector<ESTDLBL>& arrTypeExclude);
CString GetNetPropItemStr(LPCTSTR szPropName);
CString GetNodePropItemStr(NID nid, LPCTSTR szPropName, IST state = 0);
bool GetNetPropItemNum(LPCTSTR szPropName, double& numOut);
bool GetNodePropItemNum(NID nid, LPCTSTR szPropName, double& numOut, IST state = 0);
CString GetNodeSymName(NID nid);
CString GetNodeFullName(NID nid);
CString GetStateName(NID nid, IST state);
CString GetMultilineNetProp(LPCTSTR szPropName, LPCTSTR szFormat);
CString GetMultilineNodeProp(NID nid, LPCTSTR szPropName, LPCTSTR szFormat);
int GetCountOfStates(NID nid);
bool IsValidNID(NID nid);
bool IsCauseNode(NID nid);
bool IsProblemNode(NID nid);
bool IsInformationalNode(NID nid);
bool UsesSniffer();
protected:
void Initialize();
BNTS * pBNTS();
void ResetNodes(const CBasisForInference & BasisForInference);
bool SetNodes(const CBasisForInference & BasisForInference);
};
#endif // !defined(AFX_TOPIC_H__4ACF2F73_40EB_11D2_95EE_00C04FC22ADD__INCLUDED_)