00001 00010 #ifndef __PKIFPATHPROCESSINGMEDIATOR2_H__ 00011 #define __PKIFPATHPROCESSINGMEDIATOR2_H__ 00012 00013 #if _MSC_VER > 1000 00014 #pragma once 00015 #endif // _MSC_VER > 1000 00016 00017 //include toolkit header files 00018 #include "PKIFdll.h" //omnipresent include 00019 #include "PKIFMediators.h" //mediator stuff 00020 00021 #include "IPKIFPathValidate.h" 00022 #include "IPKIFPathBuild.h" 00023 #include "IPKIFPathBuildAndValidate.h" 00024 #include "IPKIFDefaultPathManagement.h" 00025 #include "components.h" 00026 00027 //include necessary standard library pieces 00028 #include <vector> 00029 00030 #ifdef _WIN32 00031 #ifdef _DEBUG 00032 #include "crtdbg.h" 00033 #endif //_DEBUG 00034 #endif //_WIN32 00035 00036 00037 00038 00039 struct CPKIFPathProcessingMediator2Impl; 00040 00064 class CAC_API CPKIFPathProcessingMediator2 : public IPKIFMediator, public IPKIFPathValidate, 00065 public IPKIFPathBuild, public IPKIFPathBuildAndValidate, 00066 public IPKIFDefaultPathManagement 00067 { 00068 public: 00069 CPKIFPathProcessingMediator2(bool addDefaultColleagues = false); 00070 virtual ~CPKIFPathProcessingMediator2(); 00071 00072 //IPKIFMediator functions 00073 void InitializeMediator(std::vector<CPKIFException*>* errorInfo); 00074 void Terminate(); 00075 00076 //IPKIFColleague functions 00077 void Initialize(); 00078 00079 void GetColleagues(std::vector<IPKIFColleaguePtr>& v) const; 00080 00081 //Miscellaneous functions 00082 void AddColleague(IPKIFColleaguePtr& module); 00083 00084 //IPKIFPathValidate functions 00085 bool ValidatePath(CPKIFCertificatePath& path, CPKIFPathValidationResults& results, 00086 CPKIFFuncStoragePtr& thisCallOnlyFuncs); 00087 void SetAdditionalCertificateChecks(CPKIFFuncStoragePtr& funcs); 00088 00089 //IPKIFPathBuild functions 00090 bool BuildPath(CPKIFCertificatePath& path); 00091 00092 //IPKIFPathBuildAndValidate 00093 bool BuildAndValidatePath(CPKIFCertificatePath& path, CPKIFPathValidationResults& results); 00094 00095 //IPKIFDefaultPathManagement 00096 void SetDefaultPathSettings(CPKIFPathSettingsPtr& pathSettings); 00097 CPKIFPathSettingsPtr GetDefaultPathSettings(); 00098 00099 private: 00101 CPKIFPathProcessingMediator2(const CPKIFPathProcessingMediator2& copy); 00103 CPKIFPathProcessingMediator2& operator=(const CPKIFPathProcessingMediator2& rhs); //added 4/6/2004 00104 00105 enum { thisComponent = TOOLKIT_PATH_MEDIATOR }; 00106 00107 CPKIFPathProcessingMediator2Impl *m_impl; 00108 }; 00109 DECLARE_SMART_POINTERS(CPKIFPathProcessingMediator2); 00110 00111 00112 #endif