00001 00009 #ifndef __IPKIFHashtree_H__ 00010 #define __IPKIFHashtree_H__ 00011 00012 #include "PKIFdll.h" 00013 00014 FD_SMART_PTR(CPKIFBuffer); 00015 typedef std::vector<CPKIFBufferPtr, PKIFAlloc<CPKIFBufferPtr> > CPKIFPartialHashtree; 00016 DECLARE_SMART_POINTERS(CPKIFPartialHashtree); 00017 00018 typedef std::vector<CPKIFPartialHashtreePtr, PKIFAlloc<CPKIFPartialHashtreePtr> > CPKIFPartialHashtreeList; 00019 DECLARE_SMART_POINTERS(CPKIFPartialHashtreeList); 00020 00021 00029 class IPKIFHashtree 00030 { 00031 public: 00032 IPKIFHashtree(void); 00033 virtual ~IPKIFHashtree(void); 00034 00035 virtual bool IsHashtreeComplete() = 0; 00036 virtual CPKIFBufferPtr GetRootHash() = 0; 00037 virtual CPKIFPartialHashtreeListPtr GetReducedHashtree(CPKIFBufferPtr& bp) = 0; 00038 }; 00039 DECLARE_SMART_POINTERS(IPKIFHashtree); 00040 00041 #endif