forked from Unidata/netcdf-c
/
zfilter.h
52 lines (43 loc) · 1.86 KB
/
zfilter.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/* Copyright 2018-2018 University Corporation for Atmospheric
Research/Unidata. */
/**
* @file This header file containsfilter related macros, types, and prototypes for
* the filter code in libnczarr. This header should not be included in
* code outside libnczarr.
*
* @author Dennis Heimbigner
*/
#ifndef ZFILTER_H
#define ZFILTER_H
/* zfilter.c */
/* Dispatch functions are also in zfilter.c */
/* Filterlist management */
/*Mnemonic*/
#define ENCODING 1
/* list of environment variables to check for plugin roots */
#define plugin_env "HDF5_PLUGIN_PATH"
#define plugin_dir_unix "/usr/local/hdf5/plugin"
#define plugin_dir_win "%s/hdf5/lib/plugin"
#define win32_root_env "ALLUSERSPROFILE"
/*
Return a NULL terminated vector of pointers to instances of ''NCZ_codec_t''.
The value returned is actually of type ''NCZ_codec_t**'',
but is of type ''void*'' to allow for extensions.
The list of returned items are used to try to provide defaults
for any HDF5 filters that have no corresponding Codec.
This is for internal use only.
*/
typedef void* (*NCZ_codec_info_defaults_proto)(void);
/* Opaque */
struct NCZ_Filter;
int NCZ_filter_initialize(void);
int NCZ_filter_finalize(void);
int NCZ_addfilter(NC_FILE_INFO_T*, NC_VAR_INFO_T* var, unsigned int id, size_t nparams, const unsigned int* params);
int NCZ_filter_setup(NC_VAR_INFO_T* var);
int NCZ_filter_freelist(NC_VAR_INFO_T* var);
int NCZ_codec_freelist(NCZ_VAR_INFO_T* zvar);
int NCZ_applyfilterchain(const NC_FILE_INFO_T*, NC_VAR_INFO_T*, NClist* chain, size_t insize, void* indata, size_t* outlen, void** outdata, int encode);
int NCZ_filter_jsonize(const NC_FILE_INFO_T*, const NC_VAR_INFO_T*, struct NCZ_Filter* filter, struct NCjson**);
int NCZ_filter_build(const NC_FILE_INFO_T*, NC_VAR_INFO_T* var, const NCjson* jfilter);
int NCZ_codec_attr(const NC_VAR_INFO_T* var, size_t* lenp, void* data);
#endif /*ZFILTER_H*/