3 #ifndef __ARC_CHECKSUM_H__ 4 #define __ARC_CHECKSUM_H__ 11 #include <sys/types.h> 41 virtual void start(
void) = 0;
51 virtual void add(
void *buf,
unsigned long long int len) = 0;
58 virtual void end(
void) = 0;
61 virtual void result(
unsigned char*& res,
unsigned int& len)
const = 0;
76 virtual int print(
char *buf,
int len)
const {
91 virtual void scan(
const char *buf) = 0;
94 virtual operator bool(
void)
const {
115 unsigned long long count;
120 virtual void start(
void);
121 virtual void add(
void *buf,
unsigned long long int len);
122 virtual void end(
void);
123 virtual void result(
unsigned char*& res,
unsigned int& len)
const {
124 res = (
unsigned char*)&r;
127 virtual int print(
char *buf,
int len)
const;
128 virtual void scan(
const char *buf);
129 virtual operator bool(
void)
const {
135 uint32_t crc(
void)
const {
162 virtual void start(
void);
163 virtual void add(
void *buf,
unsigned long long int len);
164 virtual void end(
void);
165 virtual void result(
unsigned char*& res,
unsigned int& len)
const {
166 res = (
unsigned char*)&A;
169 virtual int print(
char *buf,
int len)
const;
170 virtual void scan(
const char *buf);
171 virtual operator bool(
void)
const {
196 adler = adler32(0L, Z_NULL, 0);
198 virtual void add(
void* buf,
unsigned long long int len) {
199 adler = adler32(adler, (
const Bytef *)buf, len);
204 virtual void result(
unsigned char*& res,
unsigned int& len)
const {
205 res=(
unsigned char*)&adler;
208 virtual int print(
char* buf,
int len)
const {
215 return snprintf(buf,len,
"adler32:%08lx",adler);
217 virtual void scan(
const char* ) { };
218 virtual operator bool(
void)
const {
265 virtual void add(
void *buf,
unsigned long long int len) {
273 virtual void result(
unsigned char*& res,
unsigned int& len)
const {
280 virtual int print(
char *buf,
int len)
const {
282 return cs->
print(buf, len);
287 virtual void scan(
const char *buf) {
291 virtual operator bool(
void)
const {
304 static type Type(
const char *crc);
305 type Type(
void)
const {
308 void operator=(
const char *
type);
309 bool operator==(
const char *s);
324 static std::string
FileChecksum(
const std::string& filepath,
type tp =
md5,
bool decimalbase =
false);
329 #endif // __ARC_CHECKSUM_H__ Arc namespace contains all core ARC classes.
Definition: ArcConfig.h:11
virtual bool operator!(void) const
Indicates whether the checksum has not been calculated.
Definition: CheckSum.h:132
virtual void end(void)
Finalize the checksumming.
virtual void start(void)
Initiate the checksum algorithm.
Definition: CheckSum.h:261
virtual void add(void *buf, unsigned long long int len)
Add data to be checksummed.
Definition: CheckSum.h:265
virtual void add(void *buf, unsigned long long int len)
Add data to be checksummed.
virtual void scan(const char *buf)
Set internal checksum state.
Definition: CheckSum.h:287
CheckSumAny(CheckSum *c=NULL)
Construct a new CheckSumAny from the given CheckSum.
Definition: CheckSum.h:250
virtual void end(void)
Finalize the checksumming.
Definition: CheckSum.h:269
virtual void end(void)
Finalize the checksumming.
Definition: CheckSum.h:201
Implementation of Adler32 checksum.
Definition: CheckSum.h:186
virtual bool operator!(void) const
Indicates whether the checksum has not been calculated.
Definition: CheckSum.h:174
CheckSum(void)
Default constructor.
Definition: CheckSum.h:33
virtual void end(void)
Finalize the checksumming.
virtual bool operator!(void) const
Indicates whether the checksum has not been calculated.
Definition: CheckSum.h:221
virtual void add(void *buf, unsigned long long int len)
Add data to be checksummed.
virtual void add(void *buf, unsigned long long int len)=0
Add data to be checksummed.
virtual int print(char *buf, int len) const
Retrieve result of checksum into a string.
static std::string FileChecksum(const std::string &filepath, type tp=md5, bool decimalbase=false)
Get checksum of a file.
virtual void scan(const char *buf)=0
Set internal checksum state.
virtual void start(void)
Initiate the checksum algorithm.
No checksum.
Definition: CheckSum.h:238
virtual void end(void)=0
Finalize the checksumming.
MD5 checksum.
Definition: CheckSum.h:242
virtual void start(void)
Initiate the checksum algorithm.
Implementation of CRC32 checksum.
Definition: CheckSum.h:111
virtual void scan(const char *)
Set internal checksum state.
Definition: CheckSum.h:217
ADLER32 checksum.
Definition: CheckSum.h:243
virtual void result(unsigned char *&res, unsigned int &len) const
Retrieve result of checksum as binary blob.
Definition: CheckSum.h:123
Interface for checksum manipulations.
Definition: CheckSum.h:30
Unknown checksum.
Definition: CheckSum.h:239
Undefined checksum.
Definition: CheckSum.h:240
virtual int print(char *buf, int len) const
Retrieve result of checksum into a string.
Definition: CheckSum.h:280
virtual void result(unsigned char *&res, unsigned int &len) const
Retrieve result of checksum as binary blob.
Definition: CheckSum.h:273
virtual void add(void *buf, unsigned long long int len)
Add data to be checksummed.
Definition: CheckSum.h:198
type
Type of checksum.
Definition: CheckSum.h:237
virtual int print(char *buf, int len) const
Retrieve result of checksum into a string.
Definition: CheckSum.h:76
virtual void scan(const char *buf)
Set internal checksum state.
virtual void result(unsigned char *&res, unsigned int &len) const
Retrieve result of checksum as binary blob.
Definition: CheckSum.h:204
Wrapper for CheckSum class.
Definition: CheckSum.h:233
virtual void result(unsigned char *&res, unsigned int &len) const =0
Retrieve result of checksum as binary blob.
Implementation of MD5 checksum.
Definition: CheckSum.h:148
virtual bool operator!(void) const
Indicates whether the checksum has not been calculated.
Definition: CheckSum.h:296
CRC32 checksum.
Definition: CheckSum.h:241
virtual int print(char *buf, int len) const
Retrieve result of checksum into a string.
virtual void start(void)=0
Initiate the checksum algorithm.
virtual void result(unsigned char *&res, unsigned int &len) const
Retrieve result of checksum as binary blob.
Definition: CheckSum.h:165
virtual void start(void)
Initiate the checksum algorithm.
Definition: CheckSum.h:195
virtual bool operator!(void) const
Indicates whether the checksum has not been calculated.
Definition: CheckSum.h:99
virtual void scan(const char *buf)
Set internal checksum state.
virtual int print(char *buf, int len) const
Retrieve result of checksum into a string.
Definition: CheckSum.h:208