00001 00010 #ifndef __IPKIFRevSourceInfo_H__ 00011 #define __IPKIFRevSourceInfo_H__ 00012 00013 #include "PKIFdll.h" 00014 00021 class CAC_API CAC_NO_VTABLE IPKIFRevSourceInfo 00022 { 00023 public: 00024 IPKIFRevSourceInfo(); //added 8/21/2004 00025 virtual ~IPKIFRevSourceInfo(); 00026 private: 00027 //added 8/21/2004 00028 00030 IPKIFRevSourceInfo(const IPKIFRevSourceInfo& copy); 00032 IPKIFRevSourceInfo& operator=(const IPKIFRevSourceInfo& rhs); 00033 }; 00034 DECLARE_SMART_POINTERS(IPKIFRevSourceInfo); 00035 00036 //This macro is used to cast things from a derived class to the base 00037 //for purposes of putting it into a cert status object 00038 #define REV_INFO_CAST(item) *((boost::shared_ptr<IPKIFRevSourceInfo>*)&(item)) 00039 00040 00049 template <class T> boost::shared_ptr<T> RevInfoCast( 00052 IPKIFRevSourceInfoPtr& rsip) 00053 { 00054 IPKIFRevSourceInfo* p = &(*rsip); 00055 if(NULL != dynamic_cast<T*>(p)) 00056 { 00057 00058 return *((boost::shared_ptr<T>*)&(rsip)); 00059 } 00060 00061 00062 boost::shared_ptr<T> nullExt; 00063 00064 return nullExt; 00065 } 00066 00067 #endif