diff options
Diffstat (limited to 'support/dktools/dk3strmg.ctr')
-rw-r--r-- | support/dktools/dk3strmg.ctr | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/support/dktools/dk3strmg.ctr b/support/dktools/dk3strmg.ctr deleted file mode 100644 index 4fb3706e75..0000000000 --- a/support/dktools/dk3strmg.ctr +++ /dev/null @@ -1,126 +0,0 @@ -%% options - -copyright owner = Dirk Krause -copyright year = 2011-xxxx -SPDX-License-Identifier: BSD-3-Clause - - - -%% module - -#include "dk3all.h" - - - -$(trace-include) - - -/** Low-level stream function to deal with gzip compression. - Closing the stream also closes the gzip-file. - @param api API structure. -*/ -static -void -dk3stream_gz_fct(dk3_stream_api_t *api) -{ -#if DK3_HAVE_ZLIB_H - int res = 0; /* Operation result. */ - gzFile g = NULL; /* Low-level I/O object. */ -#endif - api->suc = 0; - (api->res).sz = 0; - (api->res).ec = DK3_ERROR_NOT_SUPPORTED; -#if DK3_HAVE_ZLIB_H - (api->res).ec = 0; - g = (gzFile)((api->arg).d); - switch(api->cmd) { - case DK3_STREAM_API_READ: { - if(((api->arg).b) && ((api->arg).sz) && ((api->arg).d)) { - res = gzread(g, (api->arg).b, (int)((api->arg).sz)); - if(res > 0) { - api->suc = 1; (api->res).ec = 0; (api->res).sz = (size_t)res; - } - } - } break; - case DK3_STREAM_API_WRITE: { - if(((api->arg).b) && ((api->arg).sz) && ((api->arg).d)) { - res = gzwrite(g, (api->arg).b, (int)((api->arg).sz)); - (api->res).sz = (size_t)res; - if((size_t)res == (api->arg).sz) { - api->suc = 1; (api->res).ec = 0; - } - } - } break; - case DK3_STREAM_API_FLUSH: { - if((api->arg).d) { - if(gzflush(g, Z_FULL_FLUSH) == Z_OK) { - api->suc = 1; (api->res).ec = 0; - } - } - } break; - case DK3_STREAM_API_AT_END: { - if((api->arg).d) { - if(gzeof(g) == 1) { - api->suc = 1; - } - } - } break; - case DK3_STREAM_API_CLOSE: { - if((api->arg).d) { - if(gzclose(g) == Z_OK) { - api->suc = 1; - } - } - } break; - case DK3_STREAM_API_ZERO_IS_END: { - api->suc = 0; - } break; - case DK3_STREAM_API_ERROR: { - api->suc = 0; - } break; - } -#endif -} - - - -/** Low-level stream function to deal with gzip compression. - Closing the stream does not close the gzip-file. - @param api API structure. -*/ -static -void -dk3stream_gz_fct_no_close(dk3_stream_api_t *api) -{ - if(api->cmd != DK3_STREAM_API_CLOSE) { - dk3stream_gz_fct(api); - } else { - api->suc = 1; (api->res).ec = 0; - } -} - - -#if DK3_HAVE_ZLIB_H - -/** Open stream for existing gzFile. - @param g gzFile already opened. - @param fl Read/write flags. - @param app Application structure for diagnostics, may be NULL. - @return Pointer to new stream on success, NULL on error. -*/ -dk3_stream_t * -dk3stream_open_gz_app(gzFile g, int fl, dk3_app_t *app) -{ - dk3_stream_t *back = NULL; - if(g) { - back = dk3stream_open_app((void *)g, dk3stream_gz_fct_no_close, fl, app); - } - return back; -} - -#endif - - - -/* vim: set ai sw=2 : */ - |