diff options
author | Mattias Andrée <maandree@kth.se> | 2024-08-28 16:42:05 +0200 |
---|---|---|
committer | Mattias Andrée <maandree@kth.se> | 2024-08-28 16:42:05 +0200 |
commit | a24071ae913b223487df78859c8d830f9e69f580 (patch) | |
tree | e2ec712cc29461c82cfdd477e8b1ba961b50018d /calculate.c | |
parent | First commit (diff) | |
download | anysum-a24071ae913b223487df78859c8d830f9e69f580.tar.gz anysum-a24071ae913b223487df78859c8d830f9e69f580.tar.bz2 anysum-a24071ae913b223487df78859c8d830f9e69f580.tar.xz |
Second commit
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to '')
-rw-r--r-- | calculate.c | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/calculate.c b/calculate.c deleted file mode 100644 index 69181dd..0000000 --- a/calculate.c +++ /dev/null @@ -1,55 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include "common.h" - - -static void -process(struct algorithm *algorithm, struct global_data *global) -{ - size_t r; - r = algorithm->hasher.process(&algorithm->hasher, - &global->buffer->buf[algorithm->offset], - global->buffer->length - algorithm->offset); - algorithm->offset += r; -} - - -static void -finalise(struct algorithm *algorithm, struct global_data *global) -{ - if (algorithm->hasher.finalise_const(&algorithm->hasher, &global->buffer->buf[algorithm->offset], - global->buffer->length - algorithm->offset, 0)) - abort(); - format_result(algorithm, global->file, global->format); -} - - -int -calculate(const char *file, struct barrier_group *group, struct global_data *global) -{ - int fd, is_new_fd, r, ret = -1; - const char *fname; - - global->nalgorithms = inithashers(global->algorithms, global->nalgorithms); - if (!global->nalgorithms) - return 0; - - fd = openfile(file, &is_new_fd, &fname); - if (fd < 0) - return -1; - - global->buffer->length = 0; - while (!(r = feedbuffer(fd, global->buffer, fname))) { - barriersend(group, global, &process); - shiftbuffer(global->algorithms, global->nalgorithms, global->buffer); - } - if (r < 0) - goto fail; - - barriersend(group, global, &finalise); - ret = 0; -fail: - destroyhashers(global->algorithms, global->nalgorithms); - if (is_new_fd) - close(fd); - return ret; -} |