00001 00010 #ifndef __PKCREFERENCE_H__ 00011 #define __PKCREFERENCE_H__ 00012 00013 #include "PKIFSCVPDLL.h" 00014 00015 // forward declarations 00016 struct CPKIFPKCReferenceImpl; 00017 00018 FD_SMART_PTR(CPKIFCertificate); 00019 FD_SMART_PTR(CPKIFName); 00020 FD_SMART_PTR(CPKIFSCVPCertID); 00021 00022 enum REFERENCETYPE {REFERENCETYPE_CERT, REFERENCETYPE_PKCREF, REFERENCETYPE_NONE}; 00028 class PKIFSCVP_API CPKIFPKCReference 00029 { 00030 public: 00031 CPKIFPKCReference(); 00032 CPKIFPKCReference(const CPKIFBufferPtr& pkcRef); 00033 virtual ~CPKIFPKCReference(void); 00034 00035 void SetCert(CPKIFCertificatePtr& cert); 00036 CPKIFCertificatePtr GetCert(); 00037 00038 void SetSCVPCertID(CPKIFSCVPCertIDPtr& sCVPCertID); 00039 CPKIFSCVPCertIDPtr GetSCVPCertID(); 00040 00041 REFERENCETYPE GetRefType(); 00042 00043 00044 private: 00046 CPKIFPKCReference(const CPKIFPKCReference& copy); 00048 CPKIFPKCReference& operator=(const CPKIFPKCReference& rhs); 00049 00050 struct CPKIFPKCReferenceImpl *m_impl; 00051 }; 00052 DECLARE_SMART_POINTERS(CPKIFPKCReference); 00053 00054 typedef std::vector<CPKIFPKCReferencePtr, PKIFAlloc<CPKIFPKCReferencePtr> > CPKIFPKCReferenceList; 00055 DECLARE_SMART_POINTERS(CPKIFPKCReferenceList); 00056 00057 #endif //__PKCREFERENCE_H__