1/* 2 Unix SMB/CIFS implementation. 3 Generic parameter parsing interface 4 Copyright (C) Jelmer Vernooij 2009 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 3 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. 18*/ 19 20#ifndef _PARMLIST_H /* _PARMLIST_H */ 21#define _PARMLIST_H 22 23struct parmlist_entry { 24 struct parmlist_entry *prev, *next; 25 char *key; 26 char *value; 27 int priority; 28}; 29 30struct parmlist { 31 struct parmlist_entry *entries; 32}; 33 34/** Retrieve an integer from a parameter list. If not found, return default_v. */ 35int parmlist_get_int(struct parmlist *ctx, const char *name, int default_v); 36 37/** Retrieve a string from a parameter list. If not found, return default_v. */ 38const char *parmlist_get_string(struct parmlist *ctx, const char *name, 39 const char *default_v); 40 41/** Retrieve the struct for an entry in a parmlist. */ 42struct parmlist_entry *parmlist_get(struct parmlist *ctx, const char *name); 43 44/** Retrieve a string list from a parameter list. 45 * separator can contain characters to consider separators or can be 46 * NULL for the default set. */ 47const char **parmlist_get_string_list(struct parmlist *ctx, const char *name, 48 const char *separator); 49 50/** Retrieve boolean from a parameter list. If not set, return default_v. */ 51bool parmlist_get_bool(struct parmlist *ctx, const char *name, bool default_v); 52 53/** Set a parameter. */ 54int parmlist_set_string(struct parmlist *ctx, const char *name, const char *value); 55 56#endif /* _PARMLIST_H */ 57