class Poco::Checksum

Overview

This class calculates CRC-32 or Adler-32 checksums for arbitrary data. Moreā€¦

#include <Checksum.h>

class Checksum
{
public:
    // enums

    enum Type;

    // construction

    Checksum();
    Checksum(Type t);

    // methods

    void
    update(
        const char* data,
        unsigned length
        );

    void
    update(const std::string& data);

    void
    update(char data);

    Poco::UInt32
    checksum() const;

    Type
    type() const;
};

Detailed Documentation

This class calculates CRC-32 or Adler-32 checksums for arbitrary data.

A cyclic redundancy check (CRC) is a type of hash function, which is used to produce a small, fixed-size checksum of a larger block of data, such as a packet of network traffic or a computer file. CRC-32 is one of the most commonly used CRC algorithms.

Adler-32 is a checksum algorithm which was invented by Mark Adler. It is almost as reliable as a 32-bit cyclic redundancy check for protecting against accidental modification of data, such as distortions occurring during a transmission, but is significantly faster to calculate in software.

Construction

Checksum()

Creates a CRC-32 checksum initialized to 0.

Checksum(Type t)

Creates the Checksum, using the given type.

Methods

void
update(
    const char* data,
    unsigned length
    )

Updates the checksum with the given data.

void
update(const std::string& data)

Updates the checksum with the given data.

void
update(char data)

Updates the checksum with the given data.

Poco::UInt32
checksum() const

Returns the calculated checksum.

Type
type() const

Which type of checksum are we calulcating.