refactored optionsfrom as in an object-oriented way using the options_t class. Eliminated all memory leaks

This commit is contained in:
Andreas Steffen
2008-02-04 14:44:14 +00:00
parent 3b1692c058
commit 0730fec464
2 changed files with 151 additions and 42 deletions
+41 -9
View File
@@ -6,8 +6,9 @@
*/
/*
* Copyright (C) 1998, 1999 Henry Spencer.
* Copyright (C) 2007 Andreas Steffen, Hochschule fuer Technik Rapperswil
* Copyright (C) 2007-2008 Andreas Steffen
*
* Hochschule fuer Technik Rapperswil
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -18,20 +19,51 @@
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* RCSID $Id$
*/
#ifndef OPTIONSFROM_H_
#define OPTIONSFROM_H_
typedef struct options_t options_t;
/**
* @brief Pick up more options from a file, in the middle of an option scan
* @brief options object.
*
* @param filename file containing the options
* @param argcp pointer to argc
* @param argvp pointer to argv[]
* @param optind current optind, number of next argument
* @return TRUE if optionsfrom parsing successful
* @b Constructors:
* - options_create()
*
* @ingroup utils
*/
bool optionsfrom(const char *filename, int *argcp, char **argvp[], int optind);
struct options_t {
/**
* @brief Check if the PKCS#7 contentType is data
*
* @param this calling object
* @param filename file containing the options
* @param argcp pointer to argc
* @param argvp pointer to argv[]
* @param optind current optind, number of next argument
* @return TRUE if optionsfrom parsing successful
*/
bool (*from) (options_t * this, char *filename, int *argcp, char **argvp[], int optind);
/**
* @brief Destroys the options_t object.
*
* @param this options_t object to destroy
*/
void (*destroy) (options_t *this);
};
/**
* @brief Create an options object.
*
* @return created options_t object
*
* @ingroup utils
*/
options_t *options_create(void);
#endif /*OPTIONSFROM_H_*/