Private info (buf) moved from struct rset_control to struct rset.
[idzebra-moved-to-github.git] / rset / rsnull.c
1 /*
2  * Copyright (C) 1994-1995, Index Data I/S 
3  * All rights reserved.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: rsnull.c,v $
7  * Revision 1.6  1995-10-12 12:41:57  adam
8  * Private info (buf) moved from struct rset_control to struct rset.
9  * Bug fixes in relevance.
10  *
11  * Revision 1.5  1995/10/10  14:00:04  adam
12  * Function rset_open changed its wflag parameter to general flags.
13  *
14  * Revision 1.4  1995/10/06  14:38:06  adam
15  * New result set method: r_score.
16  * Local no (sysno) and score is transferred to retrieveCtrl.
17  *
18  * Revision 1.3  1995/09/08  14:52:42  adam
19  * Work on relevance feedback.
20  *
21  * Revision 1.2  1995/09/07  13:58:43  adam
22  * New parameter: result-set file descriptor (RSFD) to support multiple
23  * positions within the same result-set.
24  * Boolean operators: and, or, not implemented.
25  *
26  * Revision 1.1  1995/09/06  10:35:44  adam
27  * Null set implemented.
28  *
29  */
30
31 #include <stdio.h>
32 #include <rsnull.h>
33 #include <alexutil.h>
34
35 static void *r_create(const struct rset_control *sel, void *parms);
36 static RSFD r_open (RSET ct, int flag);
37 static void r_close (RSFD rfd);
38 static void r_delete (RSET ct);
39 static void r_rewind (RSFD rfd);
40 static int r_count (RSET ct);
41 static int r_read (RSFD rfd, void *buf);
42 static int r_write (RSFD rfd, const void *buf);
43 static int r_score (RSFD rfd, int *score);
44
45 static const rset_control control = 
46 {
47     "NULL set type",
48     r_create,
49     r_open,
50     r_close,
51     r_delete,
52     r_rewind,
53     r_count,
54     r_read,
55     r_write,
56     r_score
57 };
58
59 const rset_control *rset_kind_null = &control;
60
61 static void *r_create(const struct rset_control *sel, void *parms)
62 {
63     return NULL;
64 }
65
66 static RSFD r_open (RSET ct, int flag)
67 {
68     if (flag & RSETF_WRITE)
69     {
70         logf (LOG_FATAL, "NULL set type is read-only");
71         return NULL;
72     }
73     return "";
74 }
75
76 static void r_close (RSFD rfd)
77 {
78 }
79
80 static void r_delete (RSET ct)
81 {
82 }
83
84 static void r_rewind (RSFD rfd)
85 {
86     logf (LOG_DEBUG, "rsnull_rewind");
87 }
88
89 static int r_count (RSET ct)
90 {
91     return 0;
92 }
93
94 static int r_read (RSFD rfd, void *buf)
95 {
96     return 0;
97 }
98
99 static int r_write (RSFD rfd, const void *buf)
100 {
101     logf (LOG_FATAL, "NULL set type is read-only");
102     return -1;
103 }
104
105 static int r_score (RSFD rfd, int *score)
106 {
107     *score = -1;
108     return -1;
109 }
110