00001 00009 #ifndef __CONTENTTYPE_H__ 00010 #define __CONTENTTYPE_H__ 00011 00012 #include "PKIFCMSDLL.h" 00013 00014 FD_SMART_PTR(CPKIFBuffer); 00015 FD_SMART_PTR(CPKIFOID); 00016 00017 struct CPKIFContentTypeImpl; 00018 00033 class PKIFCMS_API CAC_NO_VTABLE CPKIFContentType 00034 { 00035 public: 00036 CPKIFContentType(); 00037 CPKIFContentType(const CPKIFOIDPtr& oid, const CPKIFBufferPtr& ciBuf); 00038 virtual ~CPKIFContentType(); 00039 00040 virtual void SetContentType(const CPKIFOIDPtr& contentType); 00041 virtual CPKIFOIDPtr GetContentType() const; 00042 00043 virtual void SetContent(const CPKIFBufferPtr& content); 00044 virtual CPKIFBufferPtr GetContent() const; 00045 00046 virtual CPKIFBufferPtr Encode() = 0; 00047 virtual void Decode(CPKIFBufferPtr& buf) = 0; 00048 00049 private: 00050 CPKIFContentType(const CPKIFContentType& copy); 00051 CPKIFContentType& operator=(const CPKIFContentType& rhs); 00052 00053 struct CPKIFContentTypeImpl *m_impl; 00054 }; 00055 DECLARE_SMART_POINTERS(CPKIFContentType); 00056 typedef std::vector<CPKIFContentTypePtr, PKIFAlloc<CPKIFContentTypePtr> > CPKIFContentTypeList; 00057 DECLARE_SMART_POINTERS(CPKIFContentTypeList); 00058 00059 #endif