00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_UTIL_ZIP_CHECKSUM_H_
00019 #define _DECAF_UTIL_ZIP_CHECKSUM_H_
00020
00021 #include <decaf/util/Config.h>
00022
00023 #include <decaf/lang/exceptions/NullPointerException.h>
00024 #include <decaf/lang/exceptions/IndexOutOfBoundsException.h>
00025
00026 #include <vector>
00027
00028 namespace decaf {
00029 namespace util {
00030 namespace zip {
00031
00037 class DECAF_API Checksum {
00038 public:
00039
00040 virtual ~Checksum();
00041
00045 virtual long long getValue() const = 0;
00046
00050 virtual void reset() = 0;
00051
00058 virtual void update( const std::vector<unsigned char>& buffer ) = 0;
00059
00072 virtual void update( const std::vector<unsigned char>& buffer, int offset, int length ) = 0;
00073
00089 virtual void update( const unsigned char* buffer, int size, int offset, int length ) = 0;
00090
00097 virtual void update( int byte ) = 0;
00098
00099 };
00100
00101 }}}
00102
00103 #endif