// Copyright (C) 2005 Davis E. King ([email protected]) | |
// License: Boost Software License See LICENSE.txt for the full license. | |
namespace dlib | |
{ | |
class crc32 | |
{ | |
/*! | |
INITIAL VALUE | |
The current checksum covers zero bytes. | |
get_checksum() == 0x00000000 | |
WHAT THIS OBJECT REPRESENTS | |
This object represents the CRC32 algorithm for calculating | |
checksums. | |
!*/ | |
public: | |
crc32 ( | |
); | |
/*! | |
ensures | |
- #*this is properly initialized | |
!*/ | |
crc32 ( | |
const std::string& item | |
); | |
/*! | |
ensures | |
- #*this is properly initialized | |
- calls this->add(item). | |
(i.e. Using this constructor is the same as using the default | |
constructor and then calling add() on item) | |
!*/ | |
crc32 ( | |
const std::vector<char>& item | |
); | |
/*! | |
ensures | |
- #*this is properly initialized | |
- calls this->add(item). | |
(i.e. Using this constructor is the same as using the default | |
constructor and then calling add() on item) | |
!*/ | |
virtual ~crc32 ( | |
); | |
/*! | |
ensures | |
- any resources associated with *this have been released | |
!*/ | |
void clear( | |
); | |
/*! | |
ensures | |
- #*this has its initial value | |
!*/ | |
void add ( | |
unsigned char item | |
); | |
/*! | |
ensures | |
- #get_checksum() == The checksum of all items added to *this previously | |
concatenated with item. | |
!*/ | |
void add ( | |
const std::string& item | |
); | |
/*! | |
ensures | |
- #get_checksum() == The checksum of all items added to *this previously | |
concatenated with item. | |
!*/ | |
void add ( | |
const std::vector<char>& item | |
); | |
/*! | |
ensures | |
- #get_checksum() == The checksum of all items added to *this previously | |
concatenated with item. | |
!*/ | |
unsigned long get_checksum ( | |
) const; | |
/*! | |
ensures | |
- returns the current checksum | |
!*/ | |
operator unsigned long ( | |
) const; | |
/*! | |
ensures | |
- returns get_checksum() | |
!*/ | |
void swap ( | |
crc32& item | |
); | |
/*! | |
ensures | |
- swaps *this and item | |
!*/ | |
}; | |
void swap ( | |
crc32& a, | |
crc32& b | |
) { a.swap(b); } | |
/*! | |
provides a global swap function | |
!*/ | |
} | |