diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2011-05-20 17:09:57 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2011-05-20 17:09:57 (GMT) |
commit | 3f11adaec28a55a5772d702752b433aa0289adaf (patch) | |
tree | 2b30e23adcc5e32c43c2dc9d2f4039bf45a34c8a /tools/h5import/h5import.h | |
parent | 2de5fa986fc4e8588af5df33ed5c6500a7fa5a96 (diff) | |
download | hdf5-3f11adaec28a55a5772d702752b433aa0289adaf.zip hdf5-3f11adaec28a55a5772d702752b433aa0289adaf.tar.gz hdf5-3f11adaec28a55a5772d702752b433aa0289adaf.tar.bz2 |
[svn-r20875] Refactor h5import to close files and free allocations. Also corrected test dependencies so that memcheck would process tests in correct order.
Tested: local linux - confirmed with valgrind
Diffstat (limited to 'tools/h5import/h5import.h')
-rwxr-xr-x | tools/h5import/h5import.h | 177 |
1 files changed, 88 insertions, 89 deletions
diff --git a/tools/h5import/h5import.h b/tools/h5import/h5import.h index 9e4f6e8..05de476 100755 --- a/tools/h5import/h5import.h +++ b/tools/h5import/h5import.h @@ -74,111 +74,110 @@ struct path_info { - char group[MAX_GROUPS_IN_PATH][MAX_PATH_NAME_LENGTH]; - int count; + char group[MAX_GROUPS_IN_PATH][MAX_PATH_NAME_LENGTH]; + int count; }; struct Input { - struct path_info path; - int inputClass; - int inputSize; - int rank; - hsize_t* sizeOfDimension; - int outputClass; - int outputSize; - int outputArchitecture; - int outputByteOrder; - hsize_t* sizeOfChunk; - hsize_t* maxsizeOfDimension; - int compressionType; - int compressionParam; - char *externFilename; - VOIDP data; - int configOptionVector[NUM_KEYS]; + struct path_info path; + int inputClass; + int inputSize; + int rank; + hsize_t* sizeOfDimension; + int outputClass; + int outputSize; + int outputArchitecture; + int outputByteOrder; + hsize_t* sizeOfChunk; + hsize_t* maxsizeOfDimension; + int compressionType; + int compressionParam; + char *externFilename; + VOIDP data; + int configOptionVector[NUM_KEYS]; }; struct infilesformat { - char datafile[255]; - char configfile[255]; - struct Input in; - int config; /* Configfile present? No - 0. Yes - 1 */ + char datafile[255]; + char configfile[255]; + struct Input in; + int config; /* Configfile present? No - 0. Yes - 1 */ }; struct Options { - struct infilesformat infiles[30]; /* structure to hold the list of input file names. Limited to 30*/ - char outfile[256]; /* output file name */ - int fcount; /* number of input files */ + struct infilesformat infiles[30]; /* structure to hold the list of input file names. Limited to 30*/ + char outfile[256]; /* output file name */ + int fcount; /* number of input files */ }; char keytable[NUM_KEYS][30] = { - "PATH", - "INPUT-CLASS", - "INPUT-SIZE", - "RANK", - "DIMENSION-SIZES", - "OUTPUT-CLASS", - "OUTPUT-SIZE", - "OUTPUT-ARCHITECTURE", - "OUTPUT-BYTE-ORDER", - "CHUNKED-DIMENSION-SIZES", - "COMPRESSION-TYPE", - "COMPRESSION-PARAM", - "EXTERNAL-STORAGE", - "MAXIMUM-DIMENSIONS" + "PATH", + "INPUT-CLASS", + "INPUT-SIZE", + "RANK", + "DIMENSION-SIZES", + "OUTPUT-CLASS", + "OUTPUT-SIZE", + "OUTPUT-ARCHITECTURE", + "OUTPUT-BYTE-ORDER", + "CHUNKED-DIMENSION-SIZES", + "COMPRESSION-TYPE", + "COMPRESSION-PARAM", + "EXTERNAL-STORAGE", + "MAXIMUM-DIMENSIONS" }; static int state_table[15][8] = { - /* token ordering: - FILNAME OPT_o OPT_c OPT_h OPT_d OPT_p OPT_t OPT_s */ + /* token ordering: FILNAME OPT_o OPT_c OPT_h OPT_d OPT_p OPT_t OPT_s */ - /* state 0: start */ - {1, ERR, ERR, 6, ERR, ERR, ERR, ERR}, + /* state 0: start */ + {1, ERR, ERR, 6, ERR, ERR, ERR, ERR}, - /* state 1: input files */ - {ERR, ERR, 2, ERR, 7, ERR, ERR, ERR}, + /* state 1: input files */ + {ERR, ERR, 2, ERR, 7, ERR, ERR, ERR}, - /* state 2: -c[onfigfile] */ - {3, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, + /* state 2: -c[onfigfile] */ + {3, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, - /* state 3: configfile */ - {1, 4, ERR, ERR, ERR, ERR, ERR, ERR}, + /* state 3: configfile */ + {1, 4, ERR, ERR, ERR, ERR, ERR, ERR}, - /* state 4: -o[utfile] */ - {5, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, + /* state 4: -o[utfile] */ + {5, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, - /* state 5: outfile */ - {ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, + /* state 5: outfile */ + {ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, - /* state 6: -h[elp] */ - {ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, + /* state 6: -h[elp] */ + {ERR, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, - /* state 7: -d[ims] */ - {8, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, + /* state 7: -d[ims] */ + {8, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, - /* state 8: dimensions */ - {1, 4, ERR, ERR, ERR, 9, 11, 13}, + /* state 8: dimensions */ + {1, 4, ERR, ERR, ERR, 9, 11, 13}, - /* state 9: -p[ath] */ - {10, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, + /* state 9: -p[ath] */ + {10, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, - /* state 10: path name */ - {1, 4, ERR, ERR, ERR, ERR, 11, 13}, + /* state 10: path name */ + {1, 4, ERR, ERR, ERR, ERR, 11, 13}, - /* state 11: -t[ype] */ - {12, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, + /* state 11: -t[ype] */ + {12, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, - /* state 12: data type */ - {1, 4, ERR, ERR, ERR, ERR, ERR, 13}, + /* state 12: data type */ + {1, 4, ERR, ERR, ERR, ERR, ERR, 13}, - /* state 13: -s[ize] */ - {14, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, + /* state 13: -s[ize] */ + {14, ERR, ERR, ERR, ERR, ERR, ERR, ERR}, - /* state 14: data size */ - {1, 4, ERR, ERR, ERR, ERR, ERR, ERR} + /* state 14: data size */ + {1, 4, ERR, ERR, ERR, ERR, ERR, ERR} }; @@ -193,39 +192,39 @@ void help(char *); static int gtoken(char *s); static int process(struct Options *opt); -static int processConfigurationFile(char *infile, struct Input *in, FILE **strm); +static int processConfigurationFile(char *infile, struct Input *in); static int mapKeywordToIndex(char *key); static int parsePathInfo(struct path_info *path, char *strm); static int parseDimensions(struct Input *in, char *strm); static int getInputSize(struct Input *in, int ival); static int getInputClass(struct Input *in, char * strm); static int InputClassStrToInt(char *temp); -static int getRank(struct Input *in, FILE** strm); -static int getDimensionSizes(struct Input *in, FILE** strm); -static int getOutputSize(struct Input *in, FILE** strm); -static int getOutputClass(struct Input *in, FILE** strm); +static int getRank(struct Input *in, FILE *strm); +static int getDimensionSizes(struct Input *in, FILE *strm); +static int getOutputSize(struct Input *in, FILE *strm); +static int getOutputClass(struct Input *in, FILE *strm); static int OutputClassStrToInt(char *temp); -static int getOutputArchitecture(struct Input *in, FILE** strm); +static int getOutputArchitecture(struct Input *in, FILE *strm); static int OutputArchStrToInt(char *temp); -static int getOutputByteOrder(struct Input *in, FILE** strm); +static int getOutputByteOrder(struct Input *in, FILE *strm); static int OutputByteOrderStrToInt(char *temp); -static int getChunkedDimensionSizes(struct Input *in, FILE **strm); -static int getCompressionType(struct Input *in, FILE** strm); +static int getChunkedDimensionSizes(struct Input *in, FILE *strm); +static int getCompressionType(struct Input *in, FILE *strm); static int CompressionTypeStrToInt(char *temp); -static int getCompressionParameter(struct Input *in, FILE** strm); -static int getExternalFilename(struct Input *in, FILE** strm); -static int getMaximumDimensionSizes(struct Input *in, FILE **strm); -static int processDataFile(char *infile, struct Input *in, FILE **strm, hid_t file_id); -static int readIntegerData(FILE **strm, struct Input *in); -static int readFloatData(FILE **strm, struct Input *in); +static int getCompressionParameter(struct Input *in, FILE *strm); +static int getExternalFilename(struct Input *in, FILE *strm); +static int getMaximumDimensionSizes(struct Input *in, FILE *strm); +static int processDataFile(char *infile, struct Input *in, hid_t file_id); +static int readIntegerData(FILE *strm, struct Input *in); +static int readFloatData(FILE *strm, struct Input *in); static int allocateIntegerStorage(struct Input *in); static int allocateFloatStorage(struct Input *in); hid_t createOutputDataType(struct Input *in); hid_t createInputDataType(struct Input *in); -static int readUIntegerData(FILE **strm, struct Input *in); +static int readUIntegerData(FILE *strm, struct Input *in); static int allocateUIntegerStorage(struct Input *in); -static int validateConfigurationParameters(struct Input * in); -static int processStrData(FILE **strm, struct Input *in, hid_t file_id); +static int validateConfigurationParameters(struct Input *in); +static int processStrData(FILE *strm, struct Input *in, hid_t file_id); #endif /* H5IMPORT_H__ */ |