From 5f637f97c3427dc6e1a68678aefee1f62ca34d62 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Mon, 14 Sep 2020 16:17:15 +0200 Subject: Implement ostream compressor wrapper Signed-off-by: David Oberhollenzer --- lib/fstream/compressor.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 lib/fstream/compressor.c (limited to 'lib/fstream/compressor.c') diff --git a/lib/fstream/compressor.c b/lib/fstream/compressor.c new file mode 100644 index 0000000..b8f9c6b --- /dev/null +++ b/lib/fstream/compressor.c @@ -0,0 +1,47 @@ +/* SPDX-License-Identifier: GPL-3.0-or-later */ +/* + * compressor.c + * + * Copyright (C) 2019 David Oberhollenzer + */ +#include "internal.h" + +int fstream_compressor_id_from_name(const char *name) +{ + if (strcmp(name, "gzip") == 0) + return FSTREAM_COMPRESSOR_GZIP; + + if (strcmp(name, "xz") == 0) + return FSTREAM_COMPRESSOR_XZ; + + return -1; +} + +const char *fstream_compressor_name_from_id(int id) +{ + if (id == FSTREAM_COMPRESSOR_GZIP) + return "gzip"; + + if (id == FSTREAM_COMPRESSOR_XZ) + return "xz"; + + return NULL; +} + +bool fstream_compressor_exists(int id) +{ + switch (id) { +#ifdef WITH_GZIP + case FSTREAM_COMPRESSOR_GZIP: + return true; +#endif +#ifdef WITH_XZ + case FSTREAM_COMPRESSOR_XZ: + return true; +#endif + default: + break; + } + + return false; +} -- cgit v1.2.3