00001 00009 #ifndef __ATTRIBUTE_H__ 00010 #define __ATTRIBUTE_H__ 00011 00012 #include "config.h" 00013 #include "PKIFCMSDLL.h" 00014 00015 #include <vector> 00016 00017 FD_LIST_PTR(CPKIFBuffer); 00018 FD_SMART_PTR(CPKIFOID); 00019 struct CPKIFAttributeImpl; 00020 00029 class PKIFCMS_API CPKIFAttribute 00030 { 00031 public: 00032 CPKIFAttribute(); 00033 00034 // The following 2 constructors were added 00035 // to support deferred parsing 00036 CPKIFAttribute(const CPKIFOIDPtr& oid, const CPKIFBufferPtr& attr); 00037 CPKIFAttribute(const CPKIFBufferPtr& attr); 00038 00039 virtual ~CPKIFAttribute(); 00040 00041 void SetOID(const CPKIFOIDPtr& oid); 00042 virtual CPKIFOIDPtr GetOID() const; 00043 00044 void AddValue(CPKIFBufferPtr& buf); 00045 virtual void GetValues(CPKIFBufferList& values) const; 00046 00047 private: 00049 CPKIFAttribute(const CPKIFAttribute& copy); 00051 CPKIFAttribute& operator=(const CPKIFAttribute& rhs); //added 4/6/2004 00052 00053 struct CPKIFAttributeImpl *m_impl; 00054 00055 }; 00056 DECLARE_SMART_POINTERS(CPKIFAttribute); 00057 typedef std::vector<CPKIFAttributePtr, PKIFAlloc<CPKIFAttributePtr> > CPKIFAttributeList; 00058 DECLARE_SMART_POINTERS(CPKIFAttributeList); 00059 00060 #endif //__ATTRIBUTE_H__