mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-12-27 08:49:16 +08:00
53 lines
1.9 KiB
C
53 lines
1.9 KiB
C
|
/* 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*/
|