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().