00001 00009 #ifndef __PKIFCMSATTRIBUTEMEDIATOR_H__ 00010 #define __PKIFCMSATTRIBUTEMEDIATOR_H__ 00011 #include "PKIFCMSDLL.h" 00012 00013 #include "PKIFMediators.h" 00014 #include "IPKIFParseAttributes.h" 00015 00016 #include <vector> 00017 00018 class CPKIFException; 00019 FD_SMART_PTR(CPKIFAttribute); 00020 FD_SMART_PTR(CPKIFBuffer); 00021 00022 00032 class PKIFCMS_API CPKIFCMSAttributeMediator2 : public IPKIFMediator, public IPKIFParseAttributes 00033 { 00034 public: 00035 static CPKIFCMSAttributeMediator2 * GetInstance(void); 00036 ~CPKIFCMSAttributeMediator2(); 00037 00038 //IPKIFMediator functions 00039 void Initialize(std::vector<CPKIFException*>* errorInfo = NULL); 00040 void Terminate(); 00041 00042 CPKIFAttributePtr getAttribute(CPKIFOIDPtr oid, CPKIFBufferPtr buf); 00043 void ParseAttributes (CPKIFBufferPtr& buf, std::vector<CPKIFAttributePtr>& attrVector); 00044 void ParseAttributes2 (CPKIFBufferPtr& buf, std::vector<CPKIFAttributePtr>& attrVector); 00045 00046 void AddColleague(IPKIFColleague* module, bool transferOwnership); 00047 00048 private: 00049 CPKIFCMSAttributeMediator2(); 00050 00052 CPKIFCMSAttributeMediator2(const CPKIFCMSAttributeMediator2& copy); 00054 CPKIFCMSAttributeMediator2& operator=(const CPKIFCMSAttributeMediator2& rhs); //added 4/6/2004 00055 00056 struct CPKIFCMSAttributeMediator2Impl *m_impl; 00057 static CPKIFCMSAttributeMediator2 * m_hInstance; 00058 }; 00059 00060 #endif