pazpar2
1.14.1
|
#include <string.h>
#include <assert.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <libxml/xinclude.h>
#include <yaz/yaz-util.h>
#include <yaz/nmem.h>
#include <yaz/snprintf.h>
#include <yaz/tpath.h>
#include <yaz/xml_include.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "ppmutex.h"
#include "incref.h"
#include "pazpar2_config.h"
#include "service_xslt.h"
#include "settings.h"
#include "eventl.h"
#include "http.h"
Go to the source code of this file.
Data Structures | |
struct | conf_config |
struct | service_xslt |
Functions | |
static char * | xml_context (const xmlNode *ptr, char *res, size_t len) |
struct conf_service * | service_init (struct conf_server *server, int num_metadata, int num_sortkeys, const char *service_id) |
static struct conf_metadata * | conf_service_add_metadata (struct conf_service *service, int field_id, const char *name, enum conf_metadata_type type, enum conf_metadata_merge merge, enum conf_setting_type setting, int brief, int termlist, const char *rank, int sortkey_offset, enum conf_metadata_mergekey mt, const char *facetrule, const char *limitmap, const char *limitcluster, const char *icurule) |
static struct conf_sortkey * | conf_service_add_sortkey (struct conf_service *service, int field_id, const char *name, enum conf_metadata_type type) |
int | conf_service_metadata_field_id (struct conf_service *service, const char *name) |
int | conf_service_sortkey_field_id (struct conf_service *service, const char *name) |
static void | conf_dir_path (struct conf_config *config, WRBUF w, const char *src) |
void | service_destroy (struct conf_service *service) |
void | service_incref (struct conf_service *service) |
static int | parse_metadata (struct conf_service *service, xmlNode *n, int *md_node, int *sk_node) |
static void | count_metadata (xmlNode *n, int *num_metadata, int *num_sortkeys) |
static struct conf_service * | service_create_static (struct conf_server *server, xmlNode *node, const char *service_id) |
static int | inherit_server_settings (struct conf_service *s) |
struct conf_service * | service_create (struct conf_server *server, xmlNode *node) |
static struct conf_server * | server_create (struct conf_config *config, NMEM nmem, xmlNode *node) |
WRBUF | conf_get_fname (struct conf_config *config, const char *fname) |
struct conf_service * | locate_service (struct conf_server *server, const char *service_id) |
static void | info_service_metadata (struct conf_service *service, WRBUF w) |
static void | info_service_databases (struct conf_service *service, WRBUF w) |
void | info_services (struct conf_server *server, WRBUF w) |
static int | parse_config (struct conf_config *config, xmlNode *root) |
struct conf_config * | config_create (const char *fname) |
void | server_destroy (struct conf_server *server) |
void | config_destroy (struct conf_config *config) |
void | config_stop_listeners (struct conf_config *conf) |
void | config_process_events (struct conf_config *conf) |
int | config_start_listeners (struct conf_config *conf, const char *listener_override, const char *record_fname) |
|
static |
Definition at line 260 of file pazpar2_config.c.
References conf_config::confdir, and conf_config::path.
Referenced by conf_get_fname(), and server_create().
WRBUF conf_get_fname | ( | struct conf_config * | config, |
const char * | fname | ||
) |
Definition at line 1023 of file pazpar2_config.c.
References conf_dir_path().
Referenced by normalize_record_create().
|
static |
Definition at line 159 of file pazpar2_config.c.
References conf_metadata::brief, conf_metadata::facetrule, conf_metadata::icurule, conf_metadata::limitcluster, conf_metadata::limitmap, conf_metadata::merge, conf_metadata::mergekey, conf_service::metadata, Metadata_merge_range, Metadata_type_year, name, conf_metadata::name, conf_service::nmem, conf_service::num_metadata, conf_metadata::rank, conf_metadata::setting, conf_metadata::sortkey_offset, conf_metadata::termlist, and conf_metadata::type.
Referenced by parse_metadata().
|
static |
Definition at line 210 of file pazpar2_config.c.
References name, conf_sortkey::name, conf_service::nmem, conf_service::num_sortkeys, conf_service::sortkeys, and conf_sortkey::type.
Referenced by parse_metadata().
int conf_service_metadata_field_id | ( | struct conf_service * | service, |
const char * | name | ||
) |
Definition at line 232 of file pazpar2_config.c.
References conf_service::metadata, name, and conf_service::num_metadata.
Referenced by check_limit_local(), findnorm(), ingest_to_cluster(), and session_check_cluster_limit().
int conf_service_sortkey_field_id | ( | struct conf_service * | service, |
const char * | name | ||
) |
Definition at line 246 of file pazpar2_config.c.
References name, conf_service::num_sortkeys, and conf_service::sortkeys.
struct conf_config* config_create | ( | const char * | fname | ) |
Definition at line 1289 of file pazpar2_config.c.
References conf_config::confdir, config_destroy(), conf_config::iochan_man, conf_config::max_sockets, conf_config::nmem, conf_config::no_threads, parse_config(), conf_config::path, and conf_config::servers.
Referenced by sc_main().
void config_destroy | ( | struct conf_config * | config | ) |
Definition at line 1375 of file pazpar2_config.c.
References conf_config::confdir, conf_server::config, conf_config::iochan_man, iochan_man_destroy(), conf_server::next, conf_config::nmem, server_destroy(), and conf_config::servers.
Referenced by child_handler(), config_create(), and sc_main().
void config_process_events | ( | struct conf_config * | conf | ) |
Definition at line 1399 of file pazpar2_config.c.
References http_mutex_init(), conf_config::iochan_man, iochan_man_events(), conf_service::mutex, conf_service::next, conf_server::next, pazpar2_mutex_create(), conf_config::servers, and conf_server::service.
Referenced by child_handler().
int config_start_listeners | ( | struct conf_config * | conf, |
const char * | listener_override, | ||
const char * | record_fname | ||
) |
Definition at line 1417 of file pazpar2_config.c.
References conf_server::host, http_init(), http_set_proxyaddr(), conf_config::iochan_man, conf_server::iochan_man, iochan_man_create(), conf_config::max_sockets, conf_server::next, conf_config::nmem, conf_config::no_threads, conf_server::port, conf_server::proxy_host, conf_server::proxy_port, and conf_config::servers.
Referenced by sc_main().
void config_stop_listeners | ( | struct conf_config * | conf | ) |
Definition at line 1392 of file pazpar2_config.c.
References http_close_server(), conf_server::next, and conf_config::servers.
Referenced by sc_stop().
|
static |
Definition at line 532 of file pazpar2_config.c.
Referenced by service_create_static().
|
static |
Definition at line 1147 of file pazpar2_config.c.
References conf_service::databases, database::id, setting::name, setting::next, database::next, database::num_settings, database::settings, and setting::value.
Referenced by info_services().
|
static |
Definition at line 1045 of file pazpar2_config.c.
References conf_metadata::brief, conf_metadata::merge, conf_metadata::mergekey, conf_service::metadata, Metadata_merge_all, Metadata_merge_first, Metadata_merge_longest, Metadata_merge_no, Metadata_merge_range, Metadata_merge_unique, Metadata_mergekey_no, Metadata_mergekey_optional, Metadata_mergekey_required, Metadata_type_date, Metadata_type_float, Metadata_type_generic, Metadata_type_position, Metadata_type_relevance, Metadata_type_retrieval, Metadata_type_skiparticle, Metadata_type_year, conf_metadata::name, conf_service::num_metadata, conf_metadata::rank, conf_metadata::sortkey_offset, conf_service::sortkeys, conf_metadata::termlist, conf_metadata::type, and conf_sortkey::type.
Referenced by info_services().
void info_services | ( | struct conf_server * | server, |
WRBUF | w | ||
) |
Definition at line 1185 of file pazpar2_config.c.
References conf_service::id, info_service_databases(), info_service_metadata(), setting::name, conf_service::next, setting::next, settings_array::num_settings, conf_service::server, conf_server::service, conf_service::settings, settings_array::settings, setting::target, and setting::value.
Referenced by cmd_info().
|
static |
Definition at line 813 of file pazpar2_config.c.
References conf_service::charsets, conf_server::charsets, conf_service::dictionary, conf_service::id, init_settings(), pp2_charset_fact_create(), pp2_charset_fact_incref(), conf_service::server, conf_server::settings_fname, and settings_read_file().
Referenced by server_create(), and service_create().
struct conf_service* locate_service | ( | struct conf_server * | server, |
const char * | service_id | ||
) |
Definition at line 1031 of file pazpar2_config.c.
References conf_service::id, conf_service::next, conf_service::server, conf_server::service, and service_incref().
Referenced by cmd_init().
|
static |
Definition at line 1231 of file pazpar2_config.c.
References conf_server::config, conf_config::max_sockets, conf_server::next, conf_config::nmem, conf_config::no_threads, conf_config::path, server_create(), and conf_config::servers.
Referenced by config_create().
|
static |
Definition at line 298 of file pazpar2_config.c.
References conf_service_add_metadata(), conf_service_add_sortkey(), Metadata_merge_all, Metadata_merge_first, Metadata_merge_longest, Metadata_merge_no, Metadata_merge_range, Metadata_merge_unique, Metadata_mergekey_no, Metadata_mergekey_optional, Metadata_mergekey_required, Metadata_setting_no, Metadata_setting_parameter, Metadata_setting_postproc, Metadata_type_date, Metadata_type_float, Metadata_type_generic, Metadata_type_skiparticle, Metadata_type_year, and conf_sortkey::type.
Referenced by service_create_static().
|
static |
Definition at line 865 of file pazpar2_config.c.
References conf_server::charsets, conf_dir_path(), conf_server::config, conf_server::host, conf_server::http_server, inherit_server_settings(), conf_server::iochan_man, conf_server::myurl, conf_service::next, conf_server::next, conf_server::port, pp2_charset_fact_create(), pp2_charset_fact_define(), conf_server::proxy_host, conf_server::proxy_port, conf_service::server, conf_server::server_id, conf_server::service, service_create_static(), and conf_server::settings_fname.
Referenced by parse_config().
void server_destroy | ( | struct conf_server * | server | ) |
Definition at line 1362 of file pazpar2_config.c.
References conf_server::charsets, conf_server::http_server, http_server_destroy(), conf_service::next, pp2_charset_fact_destroy(), conf_service::server, conf_server::service, and service_destroy().
Referenced by config_destroy().
struct conf_service* service_create | ( | struct conf_server * | server, |
xmlNode * | node | ||
) |
Definition at line 852 of file pazpar2_config.c.
References inherit_server_settings(), conf_service::mutex, pazpar2_mutex_create(), conf_service::server, and service_create_static().
Referenced by cmd_init().
|
static |
Definition at line 543 of file pazpar2_config.c.
References conf_service::ccl_bibset, conf_service::charsets, count_metadata(), name, conf_service::num_metadata, conf_service::num_sortkeys, parse_metadata(), pp2_charset_fact_create(), pp2_charset_fact_define(), conf_service::rank_cluster, conf_service::rank_debug, conf_service::rank_follow, conf_service::rank_lead, conf_service::rank_length, conf_service::server, service_init(), service_xslt_config(), conf_service::session_timeout, conf_service::z3950_operation_timeout, and conf_service::z3950_session_timeout.
Referenced by server_create(), and service_create().
void service_destroy | ( | struct conf_service * | service | ) |
Definition at line 278 of file pazpar2_config.c.
References conf_service::ccl_bibset, conf_service::charsets, conf_service::mutex, conf_service::nmem, pazpar2_decref(), pp2_charset_fact_destroy(), conf_service::ref_count, and service_xslt_destroy().
Referenced by server_destroy(), and session_destroy().
void service_incref | ( | struct conf_service * | service | ) |
Definition at line 293 of file pazpar2_config.c.
References conf_service::mutex, pazpar2_incref(), and conf_service::ref_count.
Referenced by locate_service().
struct conf_service* service_init | ( | struct conf_server * | server, |
int | num_metadata, | ||
int | num_sortkeys, | ||
const char * | service_id | ||
) |
Definition at line 99 of file pazpar2_config.c.
References conf_service::ccl_bibset, conf_service::charsets, conf_service::databases, conf_service::default_sort, conf_service::dictionary, conf_service::id, conf_service::metadata, conf_service::mutex, conf_service::next, conf_service::nmem, conf_service::num_metadata, settings_array::num_settings, conf_service::num_sortkeys, PZ_MAX_EOF, conf_service::rank_cluster, conf_service::rank_debug, conf_service::rank_follow, conf_service::rank_lead, conf_service::rank_length, conf_service::ref_count, conf_service::server, conf_service::session_timeout, conf_service::settings, settings_array::settings, conf_service::sortkeys, conf_service::xml_node, conf_service::xslt_list, conf_service::z3950_operation_timeout, and conf_service::z3950_session_timeout.
Referenced by service_create_static().
|
static |
Definition at line 69 of file pazpar2_config.c.