00001 00009 #ifndef __PKIFX509EXTENSIONS2_H__ 00010 #define __PKIFX509EXTENSIONS2_H__ 00011 00012 #include "PKIFdll.h" 00013 #include "PKIFMediators.h" 00014 #include "IPKIFParseExtensions.h" 00015 #include "components.h" 00016 00017 #include <vector> 00018 00019 struct CPKIFX509ExtensionMediator2Impl; 00020 class CPKIFException; 00021 00031 class CAC_API CPKIFX509ExtensionMediator2 : public IPKIFMediator, public IPKIFParseExtensions 00032 { 00033 public: 00034 static CPKIFX509ExtensionMediator2 * GetInstance(void); 00035 ~CPKIFX509ExtensionMediator2(); 00036 00037 //IPKIFMediator functions 00038 void InitializeMediator(std::vector<CPKIFException*>* errorInfo = NULL); 00039 void Terminate(); 00040 00041 //CPKIFX509ExtensionPtr GetExtension(CACX509V3Extension& refExtension); 00042 void ParseExtensions(CPKIFBufferPtr& buf, std::vector<CPKIFX509ExtensionPtr>& exts); 00043 00044 void AddColleague(IPKIFColleague* module, bool transferOwnership); 00045 static void CPKIFX509ExtensionMediator2Destructor(); 00046 00047 private: 00048 enum {thisComponent=TOOLKIT_EXTENSION_MEDIATOR}; 00049 CPKIFX509ExtensionMediator2(void); 00050 CPKIFX509ExtensionMediator2(const CPKIFX509ExtensionMediator2& ext);//added 8/21/2004 00051 CPKIFX509ExtensionMediator2& operator=(const CPKIFX509ExtensionMediator2& rhs); //added 8/21/2004 00052 00053 struct CPKIFX509ExtensionMediator2Impl *m_impl; 00054 static CPKIFX509ExtensionMediator2 * m_hInstance; 00055 }; 00056 00057 00058 #endif