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.
89 lines
2.8 KiB
89 lines
2.8 KiB
//
|
|
// MODULE: BN.h
|
|
//
|
|
// PURPOSE: interface for the CBeliefNetwork class
|
|
//
|
|
// PROJECT: Generic Troubleshooter DLL for Microsoft AnswerPoint
|
|
//
|
|
// COMPANY: Saltmine Creative, Inc. (206)-284-7511 [email protected]
|
|
//
|
|
// 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_)
|