/*
- * $Id: zoom-c.c,v 1.5 2001-11-13 22:57:03 adam Exp $
+ * $Id: zoom-c.c,v 1.9 2001-11-16 09:52:39 adam Exp $
*
* ZOOM layer for C, connections, result sets, queries.
*/
else
c->host_port = xstrdup(host);
+ Z3950_options_set(c->options, "host", c->host_port);
+
c->async = Z3950_options_get_bool (c->options, "async", 0);
task = Z3950_connection_add_task (c, Z3950_TASK_CONNECT);
return s;
}
-const char *Z3950_connection_host (Z3950_connection c)
-{
- return c->host_port;
-}
-
void Z3950_query_destroy(Z3950_query s)
{
if (!s)
}
}
-int Z3950_resultset_size (Z3950_resultset r)
+size_t Z3950_resultset_size (Z3950_resultset r)
{
return r->size;
}
c = r->connection;
if (!c)
return;
+ if (start >= r->size)
+ return;
+
+ if (start + count > r->size)
+ count = r->size - start;
+
task = Z3950_connection_add_task (c, Z3950_TASK_RETRIEVE);
task->u.resultset = r;
Z3950_resultset_addref (r);
c->error = *r->condition;
}
-Z3950_record Z3950_record_dup (Z3950_record srec)
+Z3950_record Z3950_record_dup (const Z3950_record srec)
{
char *buf;
int size;
Z3950_record Z3950_resultset_record_immediate (Z3950_resultset s,size_t pos)
{
- Z3950_record rec = record_cache_lookup (s, pos, 0);
- if (!rec)
- return 0;
- return Z3950_record_dup (rec);
+ return record_cache_lookup (s, pos, 0);
}
Z3950_record Z3950_resultset_record (Z3950_resultset r, size_t pos)
return 0;
}
-void *Z3950_resultset_get (Z3950_resultset s, size_t pos, const char *type,
- size_t *len)
-{
- Z3950_record rec = record_cache_lookup (s, pos, 0);
- return Z3950_record_get (rec, type, len);
-}
-
static void record_cache_add (Z3950_resultset r,
Z_NamePlusRecord *npr,
int pos,
return do_write_ex (c, c->buf_out, c->len_out);
}
-const char *Z3950_connection_option (Z3950_connection c, const char *key,
- const char *val)
+
+const char *Z3950_connection_option_get (Z3950_connection c, const char *key)
{
- if (val)
- {
- Z3950_options_set (c->options, key, val);
- return val;
- }
return Z3950_options_get (c->options, key);
}
-const char *Z3950_resultset_option (Z3950_resultset r, const char *key,
- const char *val)
+void Z3950_connection_option_set (Z3950_connection c, const char *key,
+ const char *val)
+{
+ Z3950_options_set (c->options, key, val);
+}
+
+const char *Z3950_resultset_option_get (Z3950_resultset r, const char *key)
{
- if (val)
- {
- Z3950_options_set (r->options, key, val);
- return val;
- }
return Z3950_options_get (r->options, key);
}
+void Z3950_resultset_option_set (Z3950_resultset r, const char *key,
+ const char *val)
+{
+ Z3950_options_set (r->options, key, val);
+}
+
int Z3950_connection_errcode (Z3950_connection c)
{