+ return &r;
+}
+
+bend_fetchresult *bend_fetch (void *handle, bend_fetchrequest *q, int *num)
+{
+ static bend_fetchresult r;
+ int positions[2];
+ ZServerRecord *records;
+
+ r.errstring = 0;
+ r.last_in_set = 0;
+ r.basename = "base";
+
+ positions[0] = q->number;
+ records = resultSetRecordGet (&server_info, q->setname, 1, positions);
+ if (!records)
+ {
+ logf (LOG_DEBUG, "resultSetRecordGet, error");
+ r.errcode = 13;
+ return &r;
+ }
+ r.len = records[0].size;
+ r.record = malloc (r.len+1);
+ strcpy (r.record, records[0].buf);
+ resultSetRecordDel (&server_info, records, 1);
+ r.format = VAL_SUTRS;
+ r.errcode = 0;
+ return &r;
+}
+
+bend_deleteresult *bend_delete (void *handle, bend_deleterequest *q, int *num)
+{
+ return 0;
+}
+
+bend_scanresult *bend_scan (void *handle, bend_scanrequest *q, int *num)
+{
+ static struct scan_entry list[200];
+ static char buf[200][200];
+ static bend_scanresult r;
+ int i;
+
+ r.term_position = q->term_position;
+ r.num_entries = q->num_entries;
+ r.entries = list;
+ for (i = 0; i < r.num_entries; i++)
+ {
+ list[i].term = buf[i];
+ sprintf(list[i].term, "term-%d", i+1);
+ list[i].occurrences = rand() % 100000;
+ }
+ r.errcode = 0;
+ r.errstring = 0;
+ return &r;
+}
+
+void bend_close (void *handle)
+{
+ dict_close (server_info.fileDict);
+ dict_close (server_info.wordDict);
+ is_close (server_info.wordIsam);
+ close (server_info.sys_idx_fd);
+ return;
+}
+
+int main (int argc, char **argv)
+{
+ char *base_name = "base";
+
+ if (!(common_resource = res_open (base_name)))