ewmscp  ..
adler32.h
Go to the documentation of this file.
1 #ifndef __adler32_h__
2 #define __adler32_h__
3 #include <mutex>
4 
5 
6 #include "checksumBase.h"
7 namespace checksum {
8 
12  class adler32: public base, public parallel {
13  private:
14  static factoryTemplate<adler32> factory;
15  protected:
16  uint32_t adler;
17  std::mutex partialSumsMutex;
18  std::map<size_t, std::pair<uint32_t, size_t>> partialSums;
19  public:
20  adler32(const std::string& name);
21  void update(void *data, size_t size) override;
22  void update(size_t size) override;
23  void finish() override;
24 
25  bool parallelizable() const override;
26  void update(void *data, size_t size, size_t offset) override;
27  void update(size_t size, size_t offset) override;
28  void parallelFinish() override;
29  };
30 
32  class adler32noOpt: public adler32 {
33  private:
34  static factoryTemplate<adler32noOpt> factory;
35  public:
36  adler32noOpt(const std::string& name);
37  void update(void *data, size_t size) override;
38  void update(size_t size) override;
39 
40  void update(void *data, size_t size, size_t offset) override;
41  void update(size_t size, size_t offset) override;
42  };
43 
44  class crc32: public base, public parallel {
45  private:
47  protected:
48  uint32_t crc;
49  std::mutex partialSumsMutex;
50  std::map<size_t, std::pair<uint32_t, size_t>> partialSums;
51  public:
52  crc32(const std::string& name);
53  void update(void *data, size_t size) override;
54  void update(size_t size) override;
55  void finish() override;
56 
57  bool parallelizable() const override;
58  void update(void *data, size_t size, size_t offset) override;
59  void update(size_t size, size_t offset) override;
60  void parallelFinish() override;
61  };
62 
63 }; // end namespace checksum
64 
65 #endif
checksum::crc32::update
void update(void *data, size_t size) override
proces size bytes in the block at data
Definition: adler32.cpp:101
checksumBase.h
checksum::crc32::parallelFinish
void parallelFinish() override
Definition: adler32.cpp:144
checksum::adler32noOpt::factory
static factoryTemplate< adler32noOpt > factory
Definition: adler32.h:34
checksum::adler32::partialSumsMutex
std::mutex partialSumsMutex
Definition: adler32.h:17
checksum::adler32noOpt::update
void update(void *data, size_t size) override
proces size bytes in the block at data
Definition: adler32.cpp:62
checksum::adler32::adler32
adler32(const std::string &name)
Definition: adler32.cpp:11
checksum::adler32::parallelFinish
void parallelFinish() override
Definition: adler32.cpp:49
checksum::adler32
class to calculate adler32 sum.
Definition: adler32.h:12
checksum::adler32noOpt
derived from adler32, without optimisation for hole blocks
Definition: adler32.h:32
checksum::base::name
const std::string & name
Definition: checksumBase.h:37
checksum::crc32::crc32
crc32(const std::string &name)
Definition: adler32.cpp:98
checksum::base
Definition: checksumBase.h:8
checksum::crc32::crc
uint32_t crc
Definition: adler32.h:48
checksum::adler32::update
void update(void *data, size_t size) override
proces size bytes in the block at data
Definition: adler32.cpp:14
checksum::adler32::factory
static factoryTemplate< adler32 > factory
Definition: adler32.h:14
checksum::crc32::partialSumsMutex
std::mutex partialSumsMutex
Definition: adler32.h:49
checksum::crc32::parallelizable
bool parallelizable() const override
Definition: adler32.cpp:121
checksum::base::factoryTemplate
Definition: checksumBase.h:28
checksum::crc32::partialSums
std::map< size_t, std::pair< uint32_t, size_t > > partialSums
Definition: adler32.h:50
checksum::parallel
Definition: checksumBase.h:82
checksum::crc32::finish
void finish() override
finish calculation ad write to result
Definition: adler32.cpp:115
checksum::adler32::adler
uint32_t adler
Definition: adler32.h:16
checksum::adler32::finish
void finish() override
finish calculation ad write to result
Definition: adler32.cpp:25
checksum::adler32noOpt::adler32noOpt
adler32noOpt(const std::string &name)
Definition: adler32.cpp:60
checksum::adler32::parallelizable
bool parallelizable() const override
Definition: adler32.cpp:32
checksum::crc32
Definition: adler32.h:44
checksum::adler32::partialSums
std::map< size_t, std::pair< uint32_t, size_t > > partialSums
Definition: adler32.h:18
checksum::crc32::factory
static factoryTemplate< crc32 > factory
Definition: adler32.h:46
checksum
Definition: adler32.cpp:9