|
pazpar2
1.14.1
|
high-level logic; mostly user sessions and settings More...
#include <time.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <signal.h>#include <ctype.h>#include <assert.h>#include <math.h>#include <yaz/marcdisp.h>#include <yaz/comstack.h>#include <yaz/tcpip.h>#include <yaz/proto.h>#include <yaz/readconf.h>#include <yaz/pquery.h>#include <yaz/otherinfo.h>#include <yaz/yaz-util.h>#include <yaz/nmem.h>#include <yaz/query-charset.h>#include <yaz/querytowrbuf.h>#include <yaz/oid_db.h>#include <yaz/snprintf.h>#include <yaz/xml_get.h>#include "ppmutex.h"#include "parameters.h"#include "session.h"#include "eventl.h"#include "http.h"#include "termlists.h"#include "reclists.h"#include "relevance.h"#include "database.h"#include "client.h"#include "settings.h"#include "normalize7bit.h"#include <libxml/tree.h>Go to the source code of this file.
Data Structures | |
| struct | client_list |
| struct | facet_id |
Macros | |
| #define | USE_TIMING 0 |
| #define | MAX_CHUNK 15 |
| #define | MAX(a, b) ((a)>(b)?(a):(b)) |
| #define | MAX_XSLT_ARGS 16 |
Functions | |
| static int | session_use (int delta) |
| int | sessions_get_count (void) |
| static void | log_xml_doc (xmlDoc *doc) |
| static void | session_enter (struct session *s, const char *caller) |
| static void | session_leave (struct session *s, const char *caller) |
| static int | run_icu (struct session *s, const char *icu_chain_id, const char *value, WRBUF norm_wr, WRBUF disp_wr) |
| static void | session_normalize_facet (struct session *s, const char *type, const char *value, WRBUF display_wrbuf, WRBUF facet_wrbuf) |
| static void | session_add_id_facet (struct session *s, struct client *cl, const char *type, const char *id, size_t id_len, const char *term) |
| const char * | session_lookup_id_facet (struct session *s, struct client *cl, const char *type, const char *term) |
| void | add_facet (struct session *s, const char *type, const char *value, int count, struct client *cl) |
| static xmlDoc * | record_to_xml (struct session *se, struct session_database *sdb, const char *rec) |
| static void | insert_settings_parameters (struct session_database *sdb, struct conf_service *service, char **parms, NMEM nmem) |
| static void | insert_settings_values (struct session_database *sdb, xmlDoc *doc, xmlNode *root, struct conf_service *service) |
| static xmlDoc * | normalize_record (struct session *se, struct session_database *sdb, struct conf_service *service, const char *rec, NMEM nmem) |
| void | session_settings_dump (struct session *se, struct session_database *db, WRBUF w) |
| const char * | session_setting_oneval (struct session_database *db, int offset) |
| static int | prepare_map (struct session *se, struct session_database *sdb) |
| static void | session_watch_cancel (void *data, struct http_channel *c, void *data2) |
| int | session_set_watch (struct session *s, int what, session_watchfun fun, void *data, struct http_channel *chan) |
| void | session_alert_watch (struct session *s, int what) |
| static void | select_targets_callback (struct session *se, struct session_database *db) |
| static void | session_reset_active_clients (struct session *se, struct client_list *new_list) |
| static void | session_remove_cached_clients (struct session *se) |
| static int | select_targets (struct session *se, const char *filter) |
| int | session_active_clients (struct session *s) |
| int | session_is_preferred_clients_ready (struct session *s) |
| static void | session_clear_set (struct session *se, struct reclist_sortparms *sp) |
| void | session_sort (struct session *se, struct reclist_sortparms *sp, const char *mergekey, const char *rank) |
| void | session_stop (struct session *se) |
| enum pazpar2_error_code | session_search (struct session *se, const char *query, const char *startrecs, const char *maxrecs, const char *filter, const char *limit, const char **addinfo, const char **addinfo2, struct reclist_sortparms *sp, const char *mergekey, const char *rank) |
| static void | session_init_databases_fun (void *context, struct database *db) |
| static void | session_database_destroy (struct session_database *sdb) |
| void | session_init_databases (struct session *se) |
| static struct session_database * | load_session_database (struct session *se, const char *id) |
| static struct session_database * | find_session_database (struct session *se, const char *id) |
| void | session_apply_setting (struct session *se, const char *dbname, const char *name, const char *value) |
| void | session_destroy (struct session *se) |
| size_t | session_get_memory_status (struct session *session) |
| struct session * | session_create (NMEM nmem, struct conf_service *service, unsigned session_id) |
| static struct hitsbytarget * | hitsbytarget_nb (struct session *se, int *count, NMEM nmem) |
| struct hitsbytarget * | get_hitsbytarget (struct session *se, int *count, NMEM nmem) |
| static int | cmp_ht (const void *p1, const void *p2) |
| static int | cmp_ht_approx (const void *p1, const void *p2) |
| static int | targets_termlist_nb (WRBUF wrbuf, struct session *se, int num, NMEM nmem, int version) |
| void | perform_termlist (struct http_channel *c, struct session *se, const char *name, int num, int version) |
| struct record_cluster * | show_single_start (struct session *se, const char *id, struct record_cluster **prev_r, struct record_cluster **next_r) |
| void | show_single_stop (struct session *se, struct record_cluster *rec) |
| int | session_fetch_more (struct session *se) |
| struct record_cluster ** | show_range_start (struct session *se, struct reclist_sortparms *sp, int start, int *num, int *total, Odr_int *sumhits, Odr_int *approx_hits, void(*show_records_ready)(void *data), struct http_channel *chan) |
| void | show_range_stop (struct session *se, struct record_cluster **recs) |
| void | statistics (struct session *se, struct statistics *stat) |
| static struct record_metadata * | record_metadata_init (NMEM nmem, const char *value, const char *norm, enum conf_metadata_type type, struct _xmlAttr *attr) |
| static void | mergekey_norm_wr (pp2_charset_fact_t charsets, WRBUF norm_wr, const char *value) |
| static int | get_mergekey_from_doc (xmlDoc *doc, xmlNode *root, const char *name, struct conf_service *service, WRBUF norm_wr) |
| static const char * | get_mergekey (xmlDoc *doc, xmlNode *root, struct client *cl, int record_no, struct conf_service *service, NMEM nmem, const char *session_mergekey) |
| static int | check_record_filter (xmlNode *root, struct session_database *sdb) |
| see if metadata for pz:recordfilter exists More... | |
| static int | ingest_to_cluster (struct client *cl, WRBUF wrbuf_disp, WRBUF wrbuf_norm, xmlDoc *xdoc, xmlNode *root, int record_no, struct record_metadata_attr *mergekey) |
| static int | ingest_sub_record (struct client *cl, xmlDoc *xdoc, xmlNode *root, int record_no, NMEM nmem, struct session_database *sdb, struct record_metadata_attr *mergekeys) |
| int | ingest_record (struct client *cl, const char *rec, int record_no, NMEM nmem) |
| ingest XML record More... | |
| int | ingest_xml_record (struct client *cl, xmlDoc *xdoc, int record_no, NMEM nmem, int cached_copy) |
| static int | match_metadata_local (struct conf_service *service, struct conf_metadata *ser_md, struct record_metadata *rec_md0, char **values, int num_v) |
| int | session_check_cluster_limit (struct session *se, struct record_cluster *rec) |
| static int | check_limit_local (struct client *cl, struct record *record, int record_no) |
| void | session_log (struct session *s, int level, const char *fmt,...) |
Variables | |
| struct parameters | global_parameters |
| static YAZ_MUTEX | g_session_mutex = 0 |
| static int | no_sessions = 0 |
high-level logic; mostly user sessions and settings
Definition in file session.c.
| void add_facet | ( | struct session * | s, |
| const char * | type, | ||
| const char * | value, | ||
| int | count, | ||
| struct client * | cl | ||
| ) |
Definition at line 254 of file session.c.
References named_termlist::next, session::nmem, session_add_id_facet(), session_normalize_facet(), termlist_create(), termlist_insert(), session::termlists, and facet_id::type.
Referenced by client_report_facets(), and ingest_to_cluster().
Definition at line 2083 of file session.c.
References client_get_database(), client_get_facet_limit_local(), client_get_session(), conf_service_metadata_field_id(), match_metadata_local(), conf_service::metadata, record::metadata, name, conf_service::num_metadata, and session::service.
Referenced by ingest_to_cluster().
|
static |
see if metadata for pz:recordfilter exists
| root | xml root element of normalized record |
| sdb | session database for client |
| 0 | if there is no metadata for pz:recordfilter |
| 1 | if there is metadata for pz:recordfilter |
If there is no pz:recordfilter defined, this function returns 1 as well.
Definition at line 1779 of file session.c.
References PZ_RECORDFILTER, session_setting_oneval(), and conf_metadata::type.
Referenced by ingest_sub_record().
|
static |
Definition at line 1194 of file session.c.
References hitsbytarget::hits.
Referenced by targets_termlist_nb().
|
static |
Definition at line 1202 of file session.c.
References hitsbytarget::approximation.
Referenced by targets_termlist_nb().
|
static |
Definition at line 1006 of file session.c.
References session_database::database, session::databases, database::id, load_session_database(), and session_database::next.
Referenced by session_apply_setting().
| struct hitsbytarget* get_hitsbytarget | ( | struct session * | se, |
| int * | count, | ||
| NMEM | nmem | ||
| ) |
Definition at line 1184 of file session.c.
References hitsbytarget_nb(), session_enter(), and session_leave().
Referenced by bytarget_response().
|
static |
Definition at line 1707 of file session.c.
References conf_service::charsets, client_get_id(), get_mergekey_from_doc(), conf_metadata::mergekey, mergekey_norm_wr(), conf_service::metadata, Metadata_mergekey_no, Metadata_mergekey_required, conf_metadata::name, and conf_service::num_metadata.
Referenced by ingest_xml_record().
|
static |
Definition at line 1672 of file session.c.
References conf_service::charsets, mergekey_norm_wr(), name, and record_metadata_attr::value.
Referenced by get_mergekey().
|
static |
Definition at line 1140 of file session.c.
References client::addinfo, hitsbytarget::approximation, client_list::client, client_get_approximation(), client_get_connection(), client_get_database(), client_get_diagnostic(), client_get_hits(), client_get_id(), client_get_num_records(), client_get_query(), client_get_state_str(), client_get_suggestions_xml(), session::clients_active, hitsbytarget::connected, hitsbytarget::diagnostic, client::filtered, hitsbytarget::hits, hitsbytarget::id, client::message, name, hitsbytarget::name, client_list::next, PZ_NAME, hitsbytarget::query_data, hitsbytarget::records, session_setting_oneval(), session_settings_dump(), hitsbytarget::settings_xml, hitsbytarget::state, and hitsbytarget::suggestions_xml.
Referenced by get_hitsbytarget(), and targets_termlist_nb().
| int ingest_record | ( | struct client * | cl, |
| const char * | rec, | ||
| int | record_no, | ||
| NMEM | nmem | ||
| ) |
ingest XML record
| cl | client holds the result set for record |
| rec | record buffer (0 terminated) |
| record_no | record position (1, 2, ..) |
| nmem | working NMEM |
| 0 | OK |
| -1 | failure |
| -2 | Filtered |
Definition at line 1874 of file session.c.
References client_get_database(), client_get_session(), client_store_xdoc(), ingest_xml_record(), conf_service::nmem, normalize_record(), and session::service.
Referenced by client_record_ingest().
|
static |
Definition at line 1837 of file session.c.
References check_record_filter(), client_get_session(), session_database::database, database::id, ingest_to_cluster(), session::relevance, session_enter(), session_leave(), and session_log().
Referenced by ingest_xml_record().
|
static |
Definition at line 2141 of file session.c.
References add_facet(), conf_service::charsets, check_limit_local(), client_get_database(), client_get_hits(), client_get_maxrecs(), client_get_session(), client_has_facet(), conf_service_metadata_field_id(), record_metadata::data, session_database::database, data_types::disp, parameters::dump_records, global_parameters, conf_metadata::icurule, database::id, data_types::max, MAX, conf_metadata::merge, conf_service::metadata, record::metadata, record_cluster::metadata, Metadata_merge_all, Metadata_merge_first, Metadata_merge_longest, Metadata_merge_range, Metadata_merge_unique, Metadata_type_generic, Metadata_type_skiparticle, Metadata_type_year, data_types::min, conf_metadata::name, record_metadata::next, session::nmem, data_types::norm, conf_service::num_metadata, conf_service::num_sortkeys, data_types::number, session::number_of_warnings_unknown_elements, session::number_of_warnings_unknown_metadata, pp2_charset_token_create(), pp2_charset_token_destroy(), pp2_charset_token_first(), pp2_charset_token_next(), pp2_get_sort(), PZ_TERMLIST_TERM_FACTOR, conf_metadata::rank, session::rank, record_cluster::recid, session::reclist, reclist_insert(), record_create(), record_metadata_init(), session::relevance, relevance_countwords(), relevance_donerecord(), relevance_snippet(), run_icu(), session::service, session_log(), session_setting_oneval(), data_types::snippet, data_types::sort, conf_metadata::sortkey_offset, conf_service::sortkeys, record_cluster::sortkeys, conf_metadata::termlist, data_types::text, session::total_merged, session::total_records, conf_metadata::type, and conf_sortkey::type.
Referenced by ingest_sub_record().
| int ingest_xml_record | ( | struct client * | cl, |
| xmlDoc * | xdoc, | ||
| int | record_no, | ||
| NMEM | nmem, | ||
| int | cached_copy | ||
| ) |
Definition at line 1886 of file session.c.
References client_get_database(), client_get_session(), session_database::database, parameters::dump_records, get_mergekey(), global_parameters, database::id, ingest_sub_record(), insert_settings_values(), log_xml_doc(), session::mergekey, record_metadata_attr::name, record_metadata_attr::next, session::service, session_log(), and record_metadata_attr::value.
Referenced by client_record_ingest(), and ingest_record().
|
static |
Definition at line 324 of file session.c.
References MAX_XSLT_ARGS, conf_service::metadata, Metadata_setting_parameter, conf_metadata::name, conf_service::num_metadata, session_setting_oneval(), conf_metadata::setting, and settings_lookup_offset().
Referenced by normalize_record().
|
static |
Definition at line 361 of file session.c.
References conf_service::metadata, Metadata_setting_postproc, conf_metadata::name, conf_service::num_metadata, session_setting_oneval(), conf_metadata::setting, and settings_lookup_offset().
Referenced by ingest_xml_record().
|
static |
Definition at line 995 of file session.c.
References session::databases, new_database_inherit_settings(), session::service, session_init_databases_fun(), session::session_nmem, and conf_service::settings.
Referenced by find_session_database().
|
static |
Definition at line 121 of file session.c.
Referenced by ingest_xml_record(), and record_to_xml().
|
static |
Definition at line 1986 of file session.c.
References conf_service::charsets, record_metadata::data, data_types::disp, data_types::max, mergekey_norm_wr(), Metadata_type_date, Metadata_type_year, data_types::min, record_metadata::next, data_types::number, data_types::text, and conf_metadata::type.
Referenced by check_limit_local(), and session_check_cluster_limit().
|
static |
Definition at line 1652 of file session.c.
References pp2_charset_token_create(), pp2_charset_token_destroy(), pp2_charset_token_first(), pp2_charset_token_next(), and record_metadata_attr::value.
Referenced by get_mergekey(), get_mergekey_from_doc(), and match_metadata_local().
|
static |
Definition at line 386 of file session.c.
References insert_settings_parameters(), session_database::map, MAX_XSLT_ARGS, normalize_record_transform(), record_to_xml(), and session_log().
Referenced by ingest_record().
| void perform_termlist | ( | struct http_channel * | c, |
| struct session * | se, | ||
| const char * | name, | ||
| int | num, | ||
| int | version | ||
| ) |
Definition at line 1259 of file session.c.
References termlist_score::display_term, termlist_score::frequency, name, named_termlist::name, named_termlist::next, http_channel::nmem, session_enter(), session_leave(), targets_termlist_nb(), named_termlist::termlist, termlist_highscore(), session::termlists, and http_channel::wrbuf.
Referenced by termlist_response().
|
static |
Definition at line 445 of file session.c.
References session_database::map, session::normalize_cache, normalize_cache_get(), PZ_REQUESTSYNTAX, PZ_XSLT, session::service, session_log(), session_setting_oneval(), and session_database::settings.
|
static |
Definition at line 1577 of file session.c.
References record_metadata::attributes, record_metadata::data, data_types::disp, extract7bit_dates(), data_types::fnumber, data_types::max, Metadata_type_date, Metadata_type_float, Metadata_type_generic, Metadata_type_position, Metadata_type_relevance, Metadata_type_retrieval, Metadata_type_skiparticle, Metadata_type_year, data_types::min, record_metadata_attr::next, data_types::norm, normalize7bit_generic(), data_types::number, record_metadata_create(), data_types::snippet, data_types::sort, data_types::text, and record_metadata_attr::value.
Referenced by ingest_to_cluster().
|
static |
Definition at line 298 of file session.c.
References session_database::database, parameters::dump_records, global_parameters, database::id, log_xml_doc(), and session_log().
Referenced by normalize_record().
|
static |
Definition at line 153 of file session.c.
References conf_service::charsets, pp2_charset_token_create(), pp2_charset_token_destroy(), pp2_charset_token_first(), pp2_charset_token_next(), pp2_get_display(), session::service, and session_log().
Referenced by ingest_to_cluster(), and session_normalize_facet().
|
static |
Definition at line 632 of file session.c.
References select_targets_callback(), and session_grep_databases().
|
static |
Definition at line 551 of file session.c.
References client_list::client, client_create(), client_get_database(), client_set_database(), client_set_session(), session::clients_active, session::clients_cached, session_database::database, database::id, and client_list::next.
Referenced by select_targets().
| int session_active_clients | ( | struct session * | s | ) |
Definition at line 637 of file session.c.
References client_list::client, client_is_active(), session::clients_active, and client_list::next.
Referenced by client_set_state(), cmd_bytarget(), cmd_show(), cmd_stat(), cmd_termlist(), show_record(), show_records(), and termlist_response().
|
static |
Definition at line 214 of file session.c.
References client_get_id(), facet_id::client_id, session::facet_id_list, facet_id::id, facet_id::next, session::session_nmem, facet_id::term, and facet_id::type.
Referenced by add_facet().
| void session_alert_watch | ( | struct session * | s, |
| int | what | ||
| ) |
Definition at line 521 of file session.c.
References session_watchentry::data, fun, session_watchentry::fun, http_remove_observer(), session_watchentry::obs, session_enter(), session_leave(), session_log(), and session::watchlist.
Referenced by client_got_records(), client_set_state(), and session_search().
| void session_apply_setting | ( | struct session * | se, |
| const char * | dbname, | ||
| const char * | name, | ||
| const char * | value | ||
| ) |
Definition at line 1018 of file session.c.
References expand_settings_array(), find_session_database(), session_database::map, name, setting::name, setting::next, session_database::num_settings, setting::precedence, PZ_XSLT, session::service, session_enter(), session_leave(), session::session_nmem, session_database::settings, settings_create_offset(), session::settings_modified, setting::target, and setting::value.
Referenced by apply_local_setting(), and process_settings().
| int session_check_cluster_limit | ( | struct session * | se, |
| struct record_cluster * | rec | ||
| ) |
Definition at line 2035 of file session.c.
References conf_service_metadata_field_id(), session::facet_limits, facet_limits_get(), conf_metadata::limitcluster, match_metadata_local(), conf_service::metadata, record_cluster::metadata, name, conf_metadata::name, conf_service::num_metadata, and session::service.
Referenced by reclist_limit().
|
static |
Definition at line 661 of file session.c.
References reclist_sortparms::increasing, reclist_sortparms::name, reclist_sortparms::next, session::nmem, session::reclist, reclist_create(), reclist_destroy(), session::relevance, relevance_clear(), session_log(), session::sorted_results, session::termlists, session::total_merged, session::total_records, and reclist_sortparms::type.
Referenced by session_sort().
| struct session* session_create | ( | NMEM | nmem, |
| struct conf_service * | service, | ||
| unsigned | session_id | ||
| ) |
Definition at line 1093 of file session.c.
References session::clients_active, session::clients_cached, session::clients_starting, session_watchentry::data, session::databases, session::facet_id_list, session::facet_limits, session::force_position, session_watchentry::fun, session::mergekey, session::nmem, session::normalize_cache, normalize_cache_create(), session::number_of_warnings_unknown_elements, session::number_of_warnings_unknown_metadata, pazpar2_mutex_create(), session::rank, session::reclist, reclist_create(), session::relevance, session::service, session::session_id, session_log(), session::session_mutex, session::session_nmem, session_use(), SESSION_WATCH_MAX, session::settings_modified, session::sorted_results, session::termlists, session::total_records, and session::watchlist.
Referenced by http_session_create().
|
static |
Definition at line 980 of file session.c.
References session_database::map.
Referenced by session_destroy().
| void session_destroy | ( | struct session * | se | ) |
Definition at line 1053 of file session.c.
References session::databases, session::facet_id_list, session::facet_limits, facet_limits_destroy(), session::mergekey, facet_id::next, session_database::next, session::nmem, session::normalize_cache, normalize_cache_destroy(), session::rank, session::reclist, reclist_destroy(), session::relevance, relevance_destroy(), session::service, service_destroy(), session_database_destroy(), session_log(), session::session_mutex, session::session_nmem, session_remove_cached_clients(), and session_use().
Referenced by http_session_destroy(), and http_sessions_destroy().
|
static |
Definition at line 139 of file session.c.
References session_log(), and session::session_mutex.
Referenced by get_hitsbytarget(), ingest_sub_record(), perform_termlist(), session_alert_watch(), session_apply_setting(), session_get_memory_status(), session_remove_cached_clients(), session_reset_active_clients(), session_search(), session_set_watch(), session_sort(), show_range_start(), and show_single_start().
| int session_fetch_more | ( | struct session * | se | ) |
Definition at line 1384 of file session.c.
References client_list::client, client_fetch_more(), client_get_hits(), client_get_id(), client_get_num_records(), client_get_state(), client_get_state_str(), Client_Idle, session::clients_active, client::filtered, client::ingest_failures, client_list::next, client::record_failures, and session_log().
Referenced by show_range_start().
| size_t session_get_memory_status | ( | struct session * | session | ) |
Definition at line 1082 of file session.c.
References session::nmem, session_enter(), and session_leave().
Referenced by session_status().
| void session_init_databases | ( | struct session * | se | ) |
Definition at line 987 of file session.c.
References session::databases, predef_grep_databases(), session::service, and session_init_databases_fun().
Referenced by cmd_init().
|
static |
Definition at line 957 of file session.c.
References session::databases, setting::next, database::num_settings, session::session_nmem, session_database::settings, and database::settings.
Referenced by load_session_database(), and session_init_databases().
| int session_is_preferred_clients_ready | ( | struct session * | s | ) |
Definition at line 649 of file session.c.
References client_list::client, client_is_active_preferred(), session::clients_active, client_list::next, and session_log().
Referenced by client_got_records(), and cmd_show().
|
static |
Definition at line 146 of file session.c.
References session_log(), and session::session_mutex.
Referenced by get_hitsbytarget(), ingest_sub_record(), perform_termlist(), session_alert_watch(), session_apply_setting(), session_get_memory_status(), session_remove_cached_clients(), session_reset_active_clients(), session_search(), session_set_watch(), session_sort(), show_range_stop(), show_single_start(), and show_single_stop().
| void session_log | ( | struct session * | s, |
| int | level, | ||
| const char * | fmt, | ||
| ... | |||
| ) |
Definition at line 2509 of file session.c.
References session::session_id.
Referenced by bytarget_response(), bytarget_result_ready(), client_parse_query(), client_record_ingest(), client_record_response(), client_search_response(), client_start_search(), cmd_bytarget(), cmd_init(), cmd_record_ready(), cmd_settings(), cmd_show(), cmd_termlist(), connection_connect(), http_session_create(), http_session_destroy(), ingest_sub_record(), ingest_to_cluster(), ingest_xml_record(), non_block_events(), normalize_record(), prepare_map(), record_to_xml(), run_icu(), session_alert_watch(), session_clear_set(), session_create(), session_destroy(), session_enter(), session_fetch_more(), session_is_preferred_clients_ready(), session_leave(), session_sort(), show_range_start(), show_records_ready(), and termlist_result_ready().
| const char* session_lookup_id_facet | ( | struct session * | s, |
| struct client * | cl, | ||
| const char * | type, | ||
| const char * | term | ||
| ) |
Definition at line 234 of file session.c.
References client_get_id(), facet_id::client_id, session::facet_id_list, facet_id::id, facet_id::next, facet_id::term, and facet_id::type.
Referenced by apply_limit().
|
static |
Definition at line 189 of file session.c.
References conf_service::metadata, conf_service::num_metadata, run_icu(), and session::service.
Referenced by add_facet().
|
static |
Definition at line 604 of file session.c.
References client_list::client, client_destroy(), client_lock(), client_mark_dead(), client_set_database(), client_set_session(), client_unlock(), session::clients_cached, client_list::next, session_enter(), session_leave(), and session_reset_active_clients().
Referenced by session_destroy().
|
static |
Definition at line 581 of file session.c.
References client_list::client, client_lock(), client_set_session(), client_unlock(), session::clients_active, client_list::next, session_enter(), and session_leave().
Referenced by session_remove_cached_clients().
| enum pazpar2_error_code session_search | ( | struct session * | se, |
| const char * | query, | ||
| const char * | startrecs, | ||
| const char * | maxrecs, | ||
| const char * | filter, | ||
| const char * | limit, | ||
| const char ** | addinfo, | ||
| const char ** | addinfo2, | ||
| struct reclist_sortparms * | sp, | ||
| const char * | mergekey, | ||
| const char * | rank | ||
| ) |
Definition at line 791 of file session.c.
References client_list::client, client_stop(), session::clients_active, session::clients_starting, client_list::next, session_alert_watch(), session_enter(), session_leave(), SESSION_WATCH_BYTARGET, SESSION_WATCH_SHOW, SESSION_WATCH_SHOW_PREF, and SESSION_WATCH_TERMLIST.
Referenced by cmd_search().
| int session_set_watch | ( | struct session * | s, |
| int | what, | ||
| session_watchfun | fun, | ||
| void * | data, | ||
| struct http_channel * | chan | ||
| ) |
Definition at line 500 of file session.c.
References session_watchentry::data, fun, session_watchentry::fun, http_add_observer(), session_watchentry::obs, session_enter(), session_leave(), session_watch_cancel(), and session::watchlist.
Referenced by cmd_bytarget(), cmd_show(), cmd_termlist(), show_range_start(), and show_record().
| const char* session_setting_oneval | ( | struct session_database * | db, |
| int | offset | ||
| ) |
Definition at line 433 of file session.c.
References session_database::num_settings, session_database::settings, and setting::value.
Referenced by check_record_filter(), client_fetch_more(), client_parse_query(), client_prep_connection(), client_record_ingest(), client_send_raw_present(), client_show_raw_begin(), client_start_search(), connection_connect(), findnorm(), hitsbytarget_nb(), ingest_to_cluster(), insert_settings_parameters(), insert_settings_values(), prepare_map(), and write_subrecord().
| void session_settings_dump | ( | struct session * | se, |
| struct session_database * | db, | ||
| WRBUF | w | ||
| ) |
Definition at line 407 of file session.c.
References setting::name, setting::next, session_database::num_settings, session_database::settings, and setting::value.
Referenced by hitsbytarget_nb().
| void session_sort | ( | struct session * | se, |
| struct reclist_sortparms * | sp, | ||
| const char * | mergekey, | ||
| const char * | rank | ||
| ) |
Definition at line 685 of file session.c.
References client_list::client, Client_Connecting, client_get_id(), client_get_state(), Client_Idle, client_parse_init(), client_parse_sort(), client_start_search(), Client_Working, session::clients_active, session::clients_starting, session::force_position, reclist_sortparms::increasing, session::mergekey, reclist_sortparms::name, reclist_sortparms::next, client_list::next, session::nmem, session::rank, reclist_sortparms_cmp(), session_clear_set(), session_enter(), session_leave(), session_log(), session::sorted_results, and reclist_sortparms::type.
Referenced by cmd_show().
| void session_stop | ( | struct session * | se | ) |
Definition at line 791 of file session.c.
Referenced by cmd_stop().
|
static |
Definition at line 102 of file session.c.
References g_session_mutex, and no_sessions.
Referenced by session_create(), session_destroy(), and sessions_get_count().
|
static |
Definition at line 489 of file session.c.
References session_watchentry::data, session_watchentry::fun, and session_watchentry::obs.
Referenced by session_set_watch().
| int sessions_get_count | ( | void | ) |
| struct record_cluster** show_range_start | ( | struct session * | se, |
| struct reclist_sortparms * | sp, | ||
| int | start, | ||
| int * | num, | ||
| int * | total, | ||
| Odr_int * | sumhits, | ||
| Odr_int * | approx_hits, | ||
| void(*)(void *data) | show_records_ready, | ||
| struct http_channel * | chan | ||
| ) |
Definition at line 1432 of file session.c.
References record::client, client_list::client, client_get_approximation(), client_get_hits(), client_update_show_stat(), session::clients_active, session::force_position, Metadata_type_relevance, reclist_sortparms::next, record::next, client_list::next, session::nmem, session::reclist, reclist_enter(), reclist_get_num_records(), reclist_leave(), reclist_limit(), reclist_parse_sortparms(), reclist_read_record(), reclist_sort(), record_cluster::records, session::relevance, relevance_prepare_read(), session_enter(), session_fetch_more(), session_log(), session_set_watch(), SESSION_WATCH_SHOW, show_range_stop(), show_records_ready(), and reclist_sortparms::type.
Referenced by show_records().
| void show_range_stop | ( | struct session * | se, |
| struct record_cluster ** | recs | ||
| ) |
Definition at line 1543 of file session.c.
References session_leave().
Referenced by show_range_start(), and show_records().
| struct record_cluster* show_single_start | ( | struct session * | se, |
| const char * | id, | ||
| struct record_cluster ** | prev_r, | ||
| struct record_cluster ** | next_r | ||
| ) |
Definition at line 1351 of file session.c.
References record_cluster::recid, session::reclist, reclist_enter(), reclist_leave(), reclist_limit(), reclist_read_record(), session_enter(), and session_leave().
Referenced by show_record().
| void show_single_stop | ( | struct session * | se, |
| struct record_cluster * | rec | ||
| ) |
| void statistics | ( | struct session * | se, |
| struct statistics * | stat | ||
| ) |
Definition at line 1548 of file session.c.
References client_list::client, Client_Connecting, Client_Error, Client_Failed, client_get_connection(), client_get_hits(), client_get_state(), Client_Idle, Client_Working, session::clients_active, client_list::next, statistics::num_clients, statistics::num_connecting, statistics::num_error, statistics::num_failed, statistics::num_hits, statistics::num_idle, statistics::num_no_connection, statistics::num_records, statistics::num_working, and session::total_records.
Referenced by cmd_stat().
|
static |
Definition at line 1209 of file session.c.
References hitsbytarget::approximation, cmp_ht(), cmp_ht_approx(), hitsbytarget::diagnostic, hitsbytarget::filtered, hitsbytarget::hits, hitsbytarget_nb(), name, hitsbytarget::records, and hitsbytarget::state.
Referenced by perform_termlist().
|
static |
Definition at line 99 of file session.c.
Referenced by session_use().
| struct parameters global_parameters |
Definition at line 1 of file session.c.
Referenced by cmd_exit(), http_serialize_response(), ingest_to_cluster(), ingest_xml_record(), make_sessionid(), record_to_xml(), and sc_main().
|
static |
Definition at line 100 of file session.c.
Referenced by session_use().