X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsettings.h;h=6378a8a204a4779056831033a8f93a73eaa297ea;hb=c1de9c944c1383e173558b15bc693bd0eae2fba5;hp=e6e70f45d7409529e536752f2b5503f112ce5096;hpb=aeb802e28a6a6450e1bafd95efa828c0165411a4;p=pazpar2-moved-to-github.git diff --git a/src/settings.h b/src/settings.h index e6e70f4..6378a8a 100644 --- a/src/settings.h +++ b/src/settings.h @@ -1,5 +1,5 @@ /* This file is part of Pazpar2. - Copyright (C) 2006-2011 Index Data + Copyright (C) Index Data Pazpar2 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free @@ -32,49 +32,71 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #define PZ_ID 9 #define PZ_NAME 10 #define PZ_QUERYENCODING 11 -#define PZ_IP 12 -#define PZ_ZPROXY 13 -#define PZ_APDULOG 14 -#define PZ_SRU 15 -#define PZ_SRU_VERSION 16 -#define PZ_PQF_PREFIX 17 -#define PZ_SORT 18 -#define PZ_RECORDFILTER 19 -#define PZ_PQF_STRFTIME 20 -#define PZ_NEGOTIATION_CHARSET 21 -#define PZ_MAX_CONNECTIONS 22 -#define PZ_REUSE_CONNECTIONS 23 -#define PZ_TERMLIST_TERM_FACTOR 24 +#define PZ_ZPROXY 12 +#define PZ_APDULOG 13 +#define PZ_SRU 14 +#define PZ_SRU_VERSION 15 +#define PZ_PQF_PREFIX 16 +#define PZ_SORT 17 +#define PZ_RECORDFILTER 18 +#define PZ_PQF_STRFTIME 19 +#define PZ_NEGOTIATION_CHARSET 20 +#define PZ_MAX_CONNECTIONS 21 +#define PZ_REUSE_CONNECTIONS 22 +#define PZ_TERMLIST_TERM_FACTOR 23 +#define PZ_TERMLIST_TERM_COUNT 24 #define PZ_PREFERRED 25 #define PZ_EXTRA_ARGS 26 #define PZ_QUERY_SYNTAX 27 -#define PZ_OPTION_RECORDFILTER 28 -#define PZ_FACETMAP 29 -#define PZ_LIMITMAP 30 -#define PZ_MAX_EOF 31 +#define PZ_FACETMAP 28 +#define PZ_LIMITMAP 29 +#define PZ_URL 30 +#define PZ_SORTMAP 31 +#define PZ_PRESENT_CHUNK 32 +#define PZ_BLOCK_TIMEOUT 33 +#define PZ_EXTENDRECS 34 +#define PZ_AUTHENTICATION_MODE 35 +#define PZ_NATIVE_SCORE 36 +#define PZ_MEMCACHED 37 +#define PZ_REDIS 38 +#define PZ_TIMEOUT 39 +#define PZ_MAX_EOF 40 struct setting { int precedence; - char *target; - char *name; - char *value; + const char *target; + const char *name; + const char *value; struct setting *next; }; -void settings_read_file(struct conf_service *service, const char *path, - int pass); -void settings_read_node(struct conf_service *service, xmlNode *n, - int pass); +// Represents a database +struct database { + char *id; + int num_settings; + struct setting **settings; + struct database *next; +}; + +struct settings_array +{ + // Array of pointer setting, index is looked up in setting_dictionary + struct setting **settings; + int num_settings; +}; + +int settings_read_file(struct conf_service *service, const char *path, + int pass); +int settings_read_node(struct conf_service *service, xmlNode *n, int pass); int settings_num(struct conf_service *service); int settings_create_offset(struct conf_service *service, const char *name); int settings_lookup_offset(struct conf_service *service, const char *name); void init_settings(struct conf_service *service); -void resolve_databases(struct conf_service *service); -void settings_read_node_x(xmlNode *n, - void *client_data, - void (*fun)(void *client_data, - struct setting *set)); +int settings_read_node_x(xmlNode *n, + void *client_data, + void (*fun)(void *client_data, + struct setting *set)); void expand_settings_array(struct setting ***set_ar, int *num, int offset, NMEM nmem);