diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-11-18 10:47:59 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-11-18 10:47:59 +0000 |
commit | 8798fae30450a88c339c8f23d7e0c75f5df2ef1c (patch) | |
tree | 53d271e89ee3d04490a94a7ea82cf2dc3bbc3c30 /src/libutil/hash.hh | |
parent | 45610ae675f6f8d6ecbd48c495cb7012b143d531 (diff) |
* Source tree refactoring.
Diffstat (limited to 'src/libutil/hash.hh')
-rw-r--r-- | src/libutil/hash.hh | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/libutil/hash.hh b/src/libutil/hash.hh new file mode 100644 index 000000000..0062f987c --- /dev/null +++ b/src/libutil/hash.hh @@ -0,0 +1,51 @@ +#ifndef __HASH_H +#define __HASH_H + +#include <string> + +#include "util.hh" + +using namespace std; + + +struct Hash +{ + static const unsigned int hashSize = 16; + unsigned char hash[hashSize]; + + /* Create a zeroed hash object. */ + Hash(); + + /* Check whether two hash are equal. */ + bool operator == (const Hash & h2) const; + + /* Check whether two hash are not equal. */ + bool operator != (const Hash & h2) const; + + /* For sorting. */ + bool operator < (const Hash & h) const; + + /* Convert a hash code into a hexadecimal representation. */ + operator string() const; +}; + + +/* Parse a hexadecimal representation of a hash code. */ +Hash parseHash(const string & s); + +/* Verify that the given string is a valid hash code. */ +bool isHash(const string & s); + +/* Compute the hash of the given string. */ +Hash hashString(const string & s); + +/* Compute the hash of the given file. */ +Hash hashFile(const Path & path); + +/* Compute the hash of the given path. The hash is defined as + md5(dump(path)). +*/ +Hash hashPath(const Path & path); + + +#endif /* !__HASH_H */ |