cel_checksum.h

Go to the documentation of this file.
00001 //----------------------------------------------------------------------------
00004 //
00005 // (C) 2003-2006 Celartem Technology Inc. All rights reserved.
00006 //----------------------------------------------------------------------------
00007 
00008 #ifndef _cel_checksum_h_
00009 #define _cel_checksum_h_
00010 
00011 #include "cel_iostream.h"
00012 
00013 namespace Celartem
00014 {
00015     //------------------------------------------------------------------------
00022     class Checksum : public Referable
00023     {
00024     public:
00029         virtual void reset() = 0;
00030 
00038         virtual void update(const void *inBuffer, size_t inSize) = 0;
00039 
00046         virtual void update(const String& inString) = 0;
00047 
00055         virtual size_t getSumSize() = 0;
00056 
00064         virtual const u8 *getCurrentSum() = 0;
00065     };
00066 
00067     //------------------------------------------------------------------------
00072     class MD5Checksum : public Checksum
00073     {
00074     public:
00081         static AutoPtr<MD5Checksum> create();
00082     };
00083     
00084     //------------------------------------------------------------------------
00089     class SHA1Checksum : public Checksum
00090     {
00091     public:
00098         static AutoPtr<SHA1Checksum> create();
00099     };
00100 
00101     //------------------------------------------------------------------------
00106     class SHA256Checksum : public Checksum
00107     {
00108     public:
00115         static AutoPtr<SHA256Checksum> create();
00116     };
00117     
00118     //------------------------------------------------------------------------
00162     //------------------------------------------------------------------------
00168     class ChecksumStream : public Stream
00169     {
00170     public:
00176         virtual void writeSum(Stream *inStream = NULL) = 0;
00177 
00187         virtual bool verifySum(Stream *inStream = NULL) = 0;
00188 
00193         virtual void resetSum() = 0;
00194 
00202         virtual const u8 *getCurrentSum() = 0;
00203 
00211         virtual size_t getSumSize() const = 0;
00212     };
00213 
00214     //------------------------------------------------------------------------
00219     class MD5Stream : public ChecksumStream
00220     {
00221     public:
00229         static AutoPtr<MD5Stream> create(Stream *inStream);
00230     };
00231 
00232     //------------------------------------------------------------------------
00237     class SHA1Stream : public ChecksumStream
00238     {
00239     public:
00247         static AutoPtr<SHA1Stream> create(Stream *inStream);
00248     };
00249 
00250     //------------------------------------------------------------------------
00255     class SHA256Stream : public ChecksumStream
00256     {
00257     public:
00265         static AutoPtr<SHA256Stream> create(Stream *inStream);
00266     };
00267 
00268 } // namespace Celartem
00269 
00270 #endif // _cel_checksum_h_

This document is automatically generated using doxygen 1.5.4 at Fri Jun 27 18:21:54 2008.