http://www.isthe.com/chongo/tech/comp/fnv/index.html
*/
-UInt32 hash32(const void *data, unsigned size, unsigned bits)
+uint32_t hash32(const void *data, unsigned size, unsigned bits)
{
if(bits==0 || bits>32)
throw invalid_argument("hash32");
return result;
}
-UInt64 hash64(const void *data, unsigned size, unsigned bits)
+uint64_t hash64(const void *data, unsigned size, unsigned bits)
{
if(bits==0 || bits>64)
throw invalid_argument("hash64");
- static const UInt64 prime = 1099511628211ULL;
- static const UInt64 offset = 14695981039346656037ULL;
+ static const uint64_t prime = 1099511628211ULL;
+ static const uint64_t offset = 14695981039346656037ULL;
- UInt64 result = offset;
+ uint64_t result = offset;
for(unsigned i=0; i<size; ++i)
result = (result^*(reinterpret_cast<const unsigned char *>(data)+i))*prime;
#ifndef MSP_CORE_HASH_H_
#define MSP_CORE_HASH_H_
+#include <cstdint>
#include <string>
-#include "inttypes.h"
namespace Msp {
limited to less than 32, in which case XOR-folding is used to reduce the hash
size.
*/
-UInt32 hash32(const void *, unsigned, unsigned = 32);
+std::uint32_t hash32(const void *, unsigned, unsigned = 32);
/**
Convenience function to compute a 32-bit hash of a string.
Computes a 64-bit Fowler-Noll-Vo (FNV-1a) hash. Note that even if bits is
limited to 32 or less, this does not produce the same result as hash32.
*/
-UInt64 hash64(const void *, unsigned, unsigned = 64);
+std::uint64_t hash64(const void *, unsigned, unsigned = 64);
/**
Convenience function to compute a 64-bit hash of a string.
*/
-inline UInt64 hash64(const std::string &s, unsigned b = 64)
+inline std::uint64_t hash64(const std::string &s, unsigned b = 64)
{ return hash64(s.data(), s.size(), b); }
-inline UInt32 fold32(UInt64 hash)
+inline std::uint32_t fold32(std::uint64_t hash)
{ return hash^(hash>>32); }
-inline UInt16 fold16(UInt64 hash)
+inline std::uint16_t fold16(std::uint64_t hash)
{ return hash^(hash>>16)^(hash>>32)^(hash>>48); }
} // namespace Msp
#ifndef MSP_FS_STAT_H_
#define MSP_FS_STAT_H_
+#include <cstdint>
#include <string>
-#include <msp/core/inttypes.h>
#include <msp/time/timestamp.h>
#include "path.h"
SYMLINK
};
-typedef UInt64 FileSize;
+typedef uint64_t FileSize;
/**
Holds file information.
#ifndef MSP_IO_SEEKABLE_H_
#define MSP_IO_SEEKABLE_H_
+#include <cstdint>
#include <stdexcept>
-#include <msp/core/inttypes.h>
#include "base.h"
namespace Msp {
class Handle;
-typedef Int64 SeekOffset;
+typedef std::int64_t SeekOffset;
enum SeekType
{
#include <cmath>
+#include <cstdint>
#include <limits>
-#include <msp/core/inttypes.h>
#include "format.h"
#include "lexicalcast.h"
{ c.result(str_to_str(s, c.get_fmt())); }
void operator<<(LexicalConverter &c, const void *p)
-{ c.result(int_to_str(reinterpret_cast<IntPtr>(p), c.get_fmt())); }
+{ c.result(int_to_str(reinterpret_cast<intptr_t>(p), c.get_fmt())); }
/*** operator>> ***/
#ifndef MSP_TIME_RAWTIME_H_
#define MSP_TIME_RAWTIME_H_
-#include <msp/core/inttypes.h>
+#include <cstdint>
namespace Msp {
namespace Time {
-typedef Int64 RawTime;
+typedef std::int64_t RawTime;
} // namespace Time
} // namespace Msp