/* This file is part of Pazpar2.
- Copyright (C) 2006-2009 Index Data
+ Copyright (C) 2006-2013 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
#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_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_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_MAX_EOF 37
struct setting
{
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_offset(struct conf_service *service, const char *name);
-int settings_offset_cprefix(struct conf_service *service, const char *name);
+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);
+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);
#endif