Factor out record normalization
[pazpar2-moved-to-github.git] / src / pazpar2_config.h
index f56ea7f..1fd5d55 100644 (file)
@@ -20,9 +20,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #ifndef PAZPAR2_CONFIG_H
 #define PAZPAR2_CONFIG_H
 
-#include <libxslt/xslt.h>
-#include <libxslt/transform.h>
-#include <libxslt/xsltutils.h>
+#include "normalize_record.h"
 
 #include <yaz/nmem.h>
 #include "charsets.h"
@@ -58,7 +56,8 @@ enum conf_setting_type {
 
 enum conf_metadata_mergekey {
     Metadata_mergekey_no,
-    Metadata_mergekey_yes
+    Metadata_mergekey_optional,
+    Metadata_mergekey_required
 };
 
 // Describes known metadata elements and how they are to be manipulated
@@ -109,8 +108,9 @@ struct conf_service
     NMEM nmem;
     int session_timeout;
     int z3950_session_timeout;
-    int z3950_connect_timeout;
-    
+    int z3950_operation_timeout;
+
+    int ref_count;
     /* duplicated from conf_server */
     pp2_charset_t relevance_pct;
     pp2_charset_t sort_pct;
@@ -154,20 +154,23 @@ struct conf_targetprofiles
 
 struct conf_config *config_create(const char *fname, int verbose);
 void config_destroy(struct conf_config *config);
-xsltStylesheet *conf_load_stylesheet(struct conf_service *service,
-                                     const char *fname);
-
 void config_start_databases(struct conf_config *config);
 
 struct conf_service *locate_service(struct conf_server *server,
                                     const char *service_id);
 
+struct conf_service *service_create(struct conf_server *server,
+                                    xmlNode *node);
+void service_incref(struct conf_service *service);
+void service_destroy(struct conf_service *service);
 
 int config_start_listeners(struct conf_config *conf,
                            const char *listener_override);
 
 void config_stop_listeners(struct conf_config *conf);
 
+WRBUF conf_get_fname(struct conf_service *service, const char *fname);
+
 #endif
 
 /*