00001 00009 #ifndef __Name_H__ 00010 #define __Name_H__ 00011 00012 #include "PKIFdll.h" 00013 #include <vector> 00014 #define CAC_API_FACTORY 00015 00016 class CPKIFDistributionPointName; 00017 struct CPKIFNameImpl; 00018 struct CACX509V3Name; 00019 FD_SMART_PTR(CPKIFBuffer); 00020 00028 class CAC_API CPKIFName 00029 { 00030 friend class CPKIFDistributionPointName; 00031 public: 00032 CPKIFName(); 00033 //CPKIFName(const CACX509V3Name& name); 00034 CPKIFName(const CPKIFBufferPtr& name); 00035 virtual ~CPKIFName(); 00036 00037 const char* ToString(); 00038 00039 bool operator==(const CPKIFName& rhs) const; 00040 00041 bool DescendedFrom(const CPKIFName& name) const; 00042 int RDNCount() const; 00043 void GetRDNs(std::vector<std::string>& rdns) const; 00044 00045 CPKIFBufferPtr Encoded(); 00046 00047 // XXX-DEFER remove this call (possibly remove - possible bump to friend access) 00048 //CACX509V3Name* rawName(); 00049 CPKIFBufferPtr rawName(); 00050 00051 private: 00052 CPKIFName(const CPKIFName& name); 00053 CPKIFName& operator=(const CPKIFName& rhs); // added 4/6/2004 00054 00055 struct CPKIFNameImpl *m_impl; 00056 }; 00057 DECLARE_SMART_POINTERS(CPKIFName); 00058 00059 #endif