00001 00009 #ifndef __CPKIFNameAndKeyWithScore_H__ 00010 #define __CPKIFNameAndKeyWithScore_H__ 00011 00012 #include "PKIFdll.h" 00013 #include "CertificatePathState.h" 00014 #include "IPKIFTrustAnchor.h" 00015 #include <vector> 00016 00017 FD_LIST_PTR(CPKIFTrustRoot); 00018 FD_LIST_PTR(IPKIFTrustAnchor); 00019 FD_SMART_PTR(CPKIFCertificateNodeListWithSourceInfo); 00020 class CPKIFPathBuilder2; 00021 struct CPKIFPathBuilder2Impl; 00022 00029 class CPKIFNameAndKeyWithScore 00030 { 00031 public: 00032 CPKIFNameAndKeyWithScore(IPKIFNameAndKeyPtr& nameAndKey); 00033 ~CPKIFNameAndKeyWithScore(); 00034 00035 int GetScore() const; 00036 void AddToScore(int additionalPoints); 00037 void ClearScore(); 00038 00039 //functions to set, clear and get the ignore flag (used by builder) 00040 void SetIgnore(); 00041 void ClearIgnore(); 00042 bool GetIgnore() const; 00043 00044 void SetNameIgnore(); 00045 void ClearNameIgnore(); 00046 00047 IPKIFNameAndKeyPtr GetNameAndKey() const; 00048 bool operator==(const IPKIFNameAndKey& rhs) const; 00049 bool operator==(const CPKIFNameAndKeyWithScore& rhs) const; 00050 00051 private: 00052 CPKIFNameAndKeyWithScore(); 00053 CPKIFNameAndKeyWithScore(const CPKIFNameAndKeyWithScore& copy); 00054 CPKIFNameAndKeyWithScore& operator=(const CPKIFNameAndKeyWithScore& rhs); 00055 00056 int m_score; 00057 IPKIFNameAndKeyPtr m_nameAndKey; 00058 bool m_bIgnore; 00059 bool m_bNameIgnore; 00060 }; 00061 DECLARE_SMART_POINTERS(CPKIFNameAndKeyWithScore); 00062 typedef std::vector<CPKIFNameAndKeyWithScorePtr, PKIFAlloc<CPKIFNameAndKeyWithScorePtr> > CPKIFNameAndKeyWithScoreList; 00063 DECLARE_SMART_POINTERS(CPKIFNameAndKeyWithScoreList); 00064 00065 #endif