00001 #include <QByteArray>
00002 #include <QDebug>
00003 #include "datahash.h"
00004
00005
00006 #define HASH_PRIME 12211009
00007
00008 void DataHash::hash(const QString& string, unsigned int &startValue)
00009 {
00010 QByteArray stringData = string.toUtf8();
00011
00012 for(int i = 0; i < stringData.size(); i++)
00013 {
00014 startValue = ((startValue << 8) + ((unsigned int)stringData[i])) % HASH_PRIME;
00015 }
00016 }
00017
00018 void DataHash::hash(const void* data, unsigned int size, unsigned int &startValue)
00019 {
00020 for(unsigned int i = 0; i < size; i++)
00021 {
00022 startValue = ((startValue << 8) + ((unsigned char *)data)[i]) % HASH_PRIME;
00023 }
00024 }