// Larbin // Sebastien Ailleret // 27-08-01 -> 15-11-01 #include "config.h" #include #include #include #include #include #include #include #include "types.h" #include "utils/hashDup.h" #include "utils/connexion.h" /* constructor */ hashDup::hashDup (ssize_t size, char *init, bool scratch) { this->size = size; file = init; table = new char[size / 8]; if (init == NULL || scratch) { for (ssize_t i=0; i'A' && c<'z') code = (code*23 + c) % size; } unsigned int pos = code / 8; unsigned int bits = 1 << (code % 8); int res = table[pos] & bits; table[pos] |= bits; return !res; } /* save in a file */ void hashDup::save () { int fds = creat(file, 00600); if (fds >= 0) { ecrireBuff(fds, table, size/8); close(fds); } }