YAZ
5.34.0
|
Implements ZOOM record caching. More...
#include <assert.h>
#include <string.h>
#include <errno.h>
#include "zoom-p.h"
#include <yaz/diagbib1.h>
#include <yaz/record_render.h>
#include <yaz/shptr.h>
Go to the source code of this file.
Data Structures | |
struct | ZOOM_record_p |
struct | ZOOM_record_cache_p |
Functions | |
static size_t | record_hash (int pos) |
static ZOOM_record | record_cache_add (ZOOM_resultset r, Z_NamePlusRecord *npr, int pos, const char *syntax, const char *elementSetName, const char *schema, Z_SRW_diagnostic *diag) |
void | ZOOM_record_cache_add (ZOOM_resultset r, Z_NamePlusRecord *npr, int pos, const char *syntax, const char *elementSetName, const char *schema, Z_SRW_diagnostic *diag) |
ZOOM_record | ZOOM_record_cache_lookup_i (ZOOM_resultset r, int pos, const char *syntax, const char *elementSetName, const char *schema) |
ZOOM_record | ZOOM_record_cache_lookup (ZOOM_resultset r, int pos, const char *syntax, const char *elementSetName, const char *schema) |
ZOOM_record_clone (ZOOM_record srec) | |
static void | ZOOM_record_release (ZOOM_record rec) |
ZOOM_resultset_cache_reset (ZOOM_resultset r) | |
ZOOM_record_get (ZOOM_record rec, const char *type_spec, int *len) | |
ZOOM_record_error (ZOOM_record rec, const char **cp, const char **addinfo, const char **diagset) | |
ZOOM_record_destroy (ZOOM_record rec) | |
Implements ZOOM record caching.
Definition in file zoom-record-cache.c.
|
static |
Definition at line 59 of file zoom-record-cache.c.
References ZOOM_resultset_p::connection, Z_SRW_diagnostic::details, ZOOM_record_p::diag_details, ZOOM_record_p::diag_message, ZOOM_record_p::diag_set, ZOOM_record_p::diag_uri, ZOOM_record_cache_p::elementSetName, Z_SRW_diagnostic::message, ZOOM_record_cache_p::next, ZOOM_record_p::npr, ZOOM_resultset_p::odr, ZOOM_record_p::odr, odr_malloc(), odr_strdup(), odr_strdup_null(), ZOOM_record_cache_p::pos, ZOOM_record_cache_p::rec, record_hash(), ZOOM_resultset_p::record_hash, ZOOM_resultset_p::record_wrbuf, ZOOM_record_p::record_wrbuf, ZOOM_record_p::schema, ZOOM_record_cache_p::schema, ZOOM_record_cache_p::syntax, Z_SRW_diagnostic::uri, YAZ_SHPTR_INC, yaz_strcmp_null(), ZOOM_connection_put_event(), ZOOM_Event_create(), and ZOOM_EVENT_RECV_RECORD.
Referenced by ZOOM_record_cache_add(), and ZOOM_record_cache_lookup().
|
static |
Definition at line 52 of file zoom-record-cache.c.
References RECORD_HASH_SIZE.
Referenced by record_cache_add(), and ZOOM_record_cache_lookup_i().
void ZOOM_record_cache_add | ( | ZOOM_resultset | r, |
Z_NamePlusRecord * | npr, | ||
int | pos, | ||
const char * | syntax, | ||
const char * | elementSetName, | ||
const char * | schema, | ||
Z_SRW_diagnostic * | diag | ||
) |
Definition at line 124 of file zoom-record-cache.c.
References ZOOM_record_p::npr, record_cache_add(), ZOOM_record_p::schema, and ZOOM_memcached_add().
Referenced by handle_srw_response(), and handle_Z3950_records().
ZOOM_record ZOOM_record_cache_lookup | ( | ZOOM_resultset | r, |
int | pos, | ||
const char * | syntax, | ||
const char * | elementSetName, | ||
const char * | schema | ||
) |
Definition at line 157 of file zoom-record-cache.c.
References ZOOM_resultset_p::connection, ZOOM_record_p::npr, record_cache_add(), ZOOM_record_p::schema, ZOOM_connection_put_event(), ZOOM_Event_create(), ZOOM_EVENT_RECV_RECORD, ZOOM_memcached_lookup(), and ZOOM_record_cache_lookup_i().
Referenced by handle_srw_response(), ZOOM_connection_srw_send_search(), and ZOOM_connection_Z3950_search().
ZOOM_record ZOOM_record_cache_lookup_i | ( | ZOOM_resultset | r, |
int | pos, | ||
const char * | syntax, | ||
const char * | elementSetName, | ||
const char * | schema | ||
) |
Definition at line 134 of file zoom-record-cache.c.
References ZOOM_record_cache_p::elementSetName, ZOOM_record_cache_p::next, ZOOM_record_cache_p::pos, ZOOM_record_cache_p::rec, record_hash(), ZOOM_resultset_p::record_hash, ZOOM_record_p::schema, ZOOM_record_cache_p::schema, ZOOM_record_cache_p::syntax, and yaz_strcmp_null().
Referenced by ZOOM_record_cache_lookup(), and ZOOM_resultset_record_immediate().
ZOOM_record_clone | ( | ZOOM_record | srec | ) |
Definition at line 179 of file zoom-record-cache.c.
References ZOOM_record_p::diag_details, ZOOM_record_p::diag_message, ZOOM_record_p::diag_set, ZOOM_record_p::diag_uri, ZOOM_record_p::npr, ZOOM_record_p::odr, odr_createmem(), ODR_DECODE, odr_destroy(), ODR_ENCODE, odr_getbuf(), odr_setbuf(), odr_strdup_null(), ZOOM_record_p::record_wrbuf, ZOOM_record_p::schema, xmalloc, and z_NamePlusRecord().
ZOOM_record_destroy | ( | ZOOM_record | rec | ) |
Definition at line 330 of file zoom-record-cache.c.
References xfree, and ZOOM_record_release().
ZOOM_record_error | ( | ZOOM_record | rec, |
const char ** | cp, | ||
const char ** | addinfo, | ||
const char ** | diagset | ||
) |
Definition at line 270 of file zoom-record-cache.c.
References Z_DefaultDiagFormat::condition, Z_DiagRec::defaultFormat, diagbib1_str(), Z_DefaultDiagFormat::diagnosticSetId, ZOOM_record_p::npr, Z_NamePlusRecord::surrogateDiagnostic, Z_NamePlusRecord::u, Z_DiagRec::u, Z_DefaultDiagFormat::u, Z_DefaultDiagFormat::v2Addinfo, Z_DefaultDiagFormat::v3Addinfo, Z_NamePlusRecord::which, Z_DiagRec::which, Z_DefaultDiagFormat::which, YAZ_BIB1_UNSPECIFIED_ERROR, yaz_oid_std(), yaz_oid_to_string(), Z_DefaultDiagFormat_v2Addinfo, Z_DefaultDiagFormat_v3Addinfo, Z_DiagRec_defaultFormat, Z_NamePlusRecord_surrogateDiagnostic, and ZOOM_uri_to_code().
ZOOM_record_get | ( | ZOOM_record | rec, |
const char * | type_spec, | ||
int * | len | ||
) |
Definition at line 244 of file zoom-record-cache.c.
References wrbuf_alloc(), yaz_record_render(), and YAZ_SHPTR_INIT.
|
static |
Definition at line 210 of file zoom-record-cache.c.
References ZOOM_record_p::odr, odr_destroy(), ZOOM_record_p::record_wrbuf, wrbuf_destroy(), and YAZ_SHPTR_DEC.
Referenced by ZOOM_record_destroy(), and ZOOM_resultset_cache_reset().
ZOOM_resultset_cache_reset | ( | ZOOM_resultset | r | ) |
Definition at line 228 of file zoom-record-cache.c.
References ZOOM_record_cache_p::next, ZOOM_record_cache_p::rec, RECORD_HASH_SIZE, and ZOOM_record_release().
Referenced by resultset_destroy(), and ZOOM_resultset_sort1().