+
+#if HAVE_LIBMEMCACHED_MEMCACHED_H
+ r->mc_key = wrbuf_alloc();
+ wrbuf_puts(r->mc_key, c->host_port);
+ wrbuf_puts(r->mc_key, ";");
+ wrbuf_puts(r->mc_key, ZOOM_query_get_query_string(q));
+ if (c->mc_st)
+ {
+ size_t v_len;
+ uint32_t flags;
+ memcached_return_t rc;
+ char *v = memcached_get(c->mc_st, wrbuf_buf(r->mc_key),
+ wrbuf_len(r->mc_key), &v_len, &flags, &rc);
+ if (v)
+ {
+ ZOOM_Event event;
+ WRBUF w = wrbuf_alloc();
+
+ wrbuf_write(w, v, v_len);
+ free(v);
+ r->size = odr_atoi(wrbuf_cstr(w));
+
+ yaz_log(YLOG_LOG, "For key %s got value %s",
+ wrbuf_cstr(r->mc_key), wrbuf_cstr(w));
+
+ wrbuf_destroy(w);
+ event = ZOOM_Event_create(ZOOM_EVENT_RECV_SEARCH);
+ ZOOM_connection_put_event(c, event);
+ return r;
+ }
+ else
+ {
+ yaz_log(YLOG_LOG, "For key %s got NO value", wrbuf_cstr(r->mc_key));
+ }
+ }