50 assert(rnew->
rset==rs);
51 yaz_log(
log_level,
"rfd_create_base (fl): rfd=%p rs=%p fl=%p priv=%p",
56 rnew = nmem_malloc(rs->
nmem,
sizeof(*rnew));
60 yaz_log(
log_level,
"rfd_create_base (new): rfd=%p rs=%p fl=%p priv=%p",
74 yaz_log(
log_level,
"rfd_delete_base: rfd=%p rs=%p priv=%p fl=%p",
84 yaz_log(YLOG_WARN,
"rset_close handle not found. type=%s",
123 double ratio = cur/tot;
125 yaz_log(
log_level,
"Estimating hits (%s) "
167 int no_children,
RSET *children)
173 log_level = yaz_log_module_level(
"rset");
192 (*kcontrol->
inc)(kcontrol);
221 yaz_log(
log_level,
"rs_delete(%s), rs=%p, refcount=%d",
227 yaz_log(YLOG_WARN,
"rs_delete(%s) still has RFDs in use",
258 yaz_log(
log_level,
"rs_dup(%s), rs=%p, refcount=%d",
295 if (*curterm < maxterms)
296 terms[*curterm] = ct->
term;
309 struct ord_list *n = nmem_malloc(nmem,
sizeof(*n));
318 for (; list; list = list->
next)
325 for (; list; list = list->
next)
326 yaz_log(YLOG_LOG,
"ord_list %d", list->
ord);
341 int type, NMEM nmem,
struct ord_list *ol,
343 zint hits_limit,
const char *ref_id)
351 t->
name = nmem_strdup(nmem, name);
353 t->
name = nmem_strdupn(nmem, name, length);
357 t->
ref_id = nmem_strdup(nmem, ref_id);
361 t->
flags = nmem_strdup(nmem, flags);
385 yaz_log(YLOG_LOG,
"rset_scope=%d got_scope=%d",
rset->
scope, got_scope);
397 const void *untilbuf)
409 while ((more =
rset_read(rfd, buf, term)) > 0)
415 yaz_log(
log_level,
"rset_default_forward exiting rfd=%p scope=%d m=%d c=%d",
433 yaz_log(YLOG_FATAL,
"%s set type is read-only", rfd->
rset->
control->
desc);
void key_logdump_txt(int logmask, const void *p, const char *txt)
int rfd_is_last(RSFD rfd)
Test for last use of RFD.
RSET rset_create_base(const struct rset_control *sel, NMEM nmem, struct rset_key_control *kcontrol, int scope, TERMID term, int no_children, RSET *children)
Common constuctor for RSETs.
struct ord_list * ord_list_dup(NMEM nmem, struct ord_list *list)
void rset_delete(RSET rs)
Destructor RSETs.
void rset_set_hits_limit(RSET rs, zint l)
void ord_list_print(struct ord_list *list)
static void rset_close_int(RSET rs, RSFD rfd)
int rset_default_read(RSFD rfd, void *buf, TERMID *term)
RSET rset_dup(RSET rs)
Duplicate an RSET.
void rset_visit(RSET rset, int level)
int rset_default_forward(RSFD rfd, void *buf, TERMID *term, const void *untilbuf)
struct ord_list * ord_list_append(NMEM nmem, struct ord_list *list, int ord)
int rset_no_write(RSFD rfd, const void *buf)
struct ord_list * ord_list_create(NMEM nmem)
RSFD rfd_create_base(RSET rs)
Common constuctor for RFDs.
zint rset_count(RSET rs)
Estimates hit count for result set.
TERMID rset_term_create(const char *name, int length, const char *flags, int type, NMEM nmem, struct ord_list *ol, int reg_type, zint hits_limit, const char *ref_id)
Creates a TERMID entry.
void rset_get_one_term(RSET ct, TERMID *terms, int maxterms, int *curterm)
is a getterms function for those that don't have any
void rset_close(RSFD rfd)
Closes a result set RFD handle.
static int log_level_initialized
#define rset_read(rfd, buf, term)
struct rset_term * TERMID
#define rset_pos(rfd, cur, tot)
#define rset_open(rs, wflag)
int(* f_read)(RSFD rfd, void *buf, TERMID *term)
void(* f_close)(RSFD rfd)
void(* f_delete)(RSET ct)
int(* f_forward)(RSFD rfd, void *buf, TERMID *term, const void *untilbuf)
void(* dec)(struct rset_key_control *kc)
int(* cmp)(const void *p1, const void *p2)
void(* inc)(struct rset_key_control *kc)
const struct rset_control * control
struct rset_key_control * keycontrol