Branch data Line data Source code
1 : : /** @file const_database_wrapper.cc
2 : : * @brief Wrapper which exposes only the const methods of database internals.
3 : : */
4 : : /* Copyright 2009 Lemur Consulting Ltd
5 : : * Copyright 2009 Olly Betts
6 : : *
7 : : * This program is free software; you can redistribute it and/or
8 : : * modify it under the terms of the GNU General Public License as
9 : : * published by the Free Software Foundation; either version 2 of the
10 : : * License, or (at your option) any later version.
11 : : *
12 : : * This program is distributed in the hope that it will be useful,
13 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 : : * GNU General Public License for more details.
16 : : *
17 : : * You should have received a copy of the GNU General Public License
18 : : * along with this program; if not, write to the Free Software
19 : : * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
20 : : * USA
21 : : */
22 : :
23 : : #include <config.h>
24 : :
25 : : #include "const_database_wrapper.h"
26 : :
27 : : #include "xapian/error.h"
28 : :
29 : : void
30 : 0 : ConstDatabaseWrapper::nonconst_access() const
31 : : {
32 : : throw Xapian::UnimplementedError("Access to non-const method of database "
33 : 0 : "not supported in this context");
34 : : }
35 : :
36 : 754 : ConstDatabaseWrapper::ConstDatabaseWrapper(
37 : : Xapian::Internal::RefCntPtr<const Xapian::Database::Internal> realdb_)
38 : 754 : : realdb(realdb_)
39 : : {
40 : 754 : }
41 : :
42 : : Xapian::doccount
43 : 186 : ConstDatabaseWrapper::get_doccount() const
44 : : {
45 : 186 : return realdb->get_doccount();
46 : : }
47 : :
48 : : Xapian::docid
49 : 20 : ConstDatabaseWrapper::get_lastdocid() const
50 : : {
51 : 20 : return realdb->get_lastdocid();
52 : : }
53 : :
54 : : totlen_t
55 : 0 : ConstDatabaseWrapper::get_total_length() const
56 : : {
57 : 0 : return realdb->get_total_length();
58 : : }
59 : :
60 : : Xapian::doclength
61 : 0 : ConstDatabaseWrapper::get_avlength() const
62 : : {
63 : 0 : return realdb->get_avlength();
64 : : }
65 : :
66 : : Xapian::termcount
67 : 0 : ConstDatabaseWrapper::get_doclength(Xapian::docid did) const
68 : : {
69 : 0 : return realdb->get_doclength(did);
70 : : }
71 : :
72 : : Xapian::doccount
73 : 0 : ConstDatabaseWrapper::get_termfreq(const string & tname) const
74 : : {
75 : 0 : return realdb->get_termfreq(tname);
76 : : }
77 : :
78 : : Xapian::termcount
79 : 0 : ConstDatabaseWrapper::get_collection_freq(const string & tname) const
80 : : {
81 : 0 : return realdb->get_collection_freq(tname);
82 : : }
83 : :
84 : : Xapian::doccount
85 : 206 : ConstDatabaseWrapper::get_value_freq(Xapian::valueno valno) const
86 : : {
87 : 206 : return realdb->get_value_freq(valno);
88 : : }
89 : :
90 : : std::string
91 : 0 : ConstDatabaseWrapper::get_value_lower_bound(Xapian::valueno valno) const
92 : : {
93 : 0 : return realdb->get_value_lower_bound(valno);
94 : : }
95 : :
96 : : std::string
97 : 174 : ConstDatabaseWrapper::get_value_upper_bound(Xapian::valueno valno) const
98 : : {
99 : 174 : return realdb->get_value_upper_bound(valno);
100 : : }
101 : :
102 : : bool
103 : 0 : ConstDatabaseWrapper::term_exists(const string & tname) const
104 : : {
105 : 0 : return realdb->term_exists(tname);
106 : : }
107 : :
108 : : bool
109 : 0 : ConstDatabaseWrapper::has_positions() const
110 : : {
111 : 0 : return realdb->has_positions();
112 : : }
113 : :
114 : : LeafPostList *
115 : 16 : ConstDatabaseWrapper::open_post_list(const string & tname) const
116 : : {
117 : 16 : return realdb->open_post_list(tname);
118 : : }
119 : :
120 : : ValueList *
121 : 206 : ConstDatabaseWrapper::open_value_list(Xapian::valueno slot) const
122 : : {
123 : 206 : return realdb->open_value_list(slot);
124 : : }
125 : :
126 : : TermList *
127 : 0 : ConstDatabaseWrapper::open_term_list(Xapian::docid did) const
128 : : {
129 : 0 : return realdb->open_term_list(did);
130 : : }
131 : :
132 : : TermList *
133 : 0 : ConstDatabaseWrapper::open_allterms(const string & prefix) const
134 : : {
135 : 0 : return realdb->open_allterms(prefix);
136 : : }
137 : :
138 : : PositionList *
139 : 0 : ConstDatabaseWrapper::open_position_list(Xapian::docid did,
140 : : const string & tname) const
141 : : {
142 : 0 : return realdb->open_position_list(did, tname);
143 : : }
144 : :
145 : : Xapian::Document::Internal *
146 : 0 : ConstDatabaseWrapper::open_document(Xapian::docid did, bool lazy) const
147 : : {
148 : 0 : return realdb->open_document(did, lazy);
149 : : }
150 : :
151 : : TermList *
152 : 0 : ConstDatabaseWrapper::open_spelling_termlist(const string & word) const
153 : : {
154 : 0 : return realdb->open_spelling_termlist(word);
155 : : }
156 : :
157 : : TermList *
158 : 0 : ConstDatabaseWrapper::open_spelling_wordlist() const
159 : : {
160 : 0 : return realdb->open_spelling_wordlist();
161 : : }
162 : :
163 : : Xapian::doccount
164 : 0 : ConstDatabaseWrapper::get_spelling_frequency(const string & word) const
165 : : {
166 : 0 : return realdb->get_spelling_frequency(word);
167 : : }
168 : :
169 : : TermList *
170 : 0 : ConstDatabaseWrapper::open_synonym_termlist(const string & term) const
171 : : {
172 : 0 : return realdb->open_synonym_termlist(term);
173 : : }
174 : :
175 : : TermList *
176 : 0 : ConstDatabaseWrapper::open_synonym_keylist(const string & prefix) const
177 : : {
178 : 0 : return realdb->open_synonym_keylist(prefix);
179 : : }
180 : :
181 : : string
182 : 0 : ConstDatabaseWrapper::get_metadata(const string & key) const
183 : : {
184 : 0 : return realdb->get_metadata(key);
185 : : }
186 : :
187 : : TermList *
188 : 0 : ConstDatabaseWrapper::open_metadata_keylist(const std::string &prefix) const
189 : : {
190 : 0 : return realdb->open_metadata_keylist(prefix);
191 : : }
192 : :
193 : : void
194 : 0 : ConstDatabaseWrapper::request_document(Xapian::docid did) const
195 : : {
196 : 0 : return realdb->request_document(did);
197 : : }
198 : :
199 : : Xapian::Document::Internal *
200 : 0 : ConstDatabaseWrapper::collect_document(Xapian::docid did) const
201 : : {
202 : 0 : return realdb->collect_document(did);
203 : : }
204 : :
205 : : string
206 : 0 : ConstDatabaseWrapper::get_revision_info() const
207 : : {
208 : 0 : return realdb->get_revision_info();
209 : : }
210 : :
211 : : string
212 : 0 : ConstDatabaseWrapper::get_uuid() const
213 : : {
214 : 0 : return realdb->get_uuid();
215 : : }
216 : :
217 : : void
218 : 0 : ConstDatabaseWrapper::invalidate_doc_object(Xapian::Document::Internal * obj) const
219 : : {
220 : 0 : return realdb->invalidate_doc_object(obj);
221 : : }
222 : :
223 : : // Non-const methods: these raise Xapian::InvalidOperationError
224 : : void
225 : 0 : ConstDatabaseWrapper::add_spelling(const string &, Xapian::termcount) const
226 : : {
227 : 0 : nonconst_access();
228 : : }
229 : :
230 : : void
231 : 0 : ConstDatabaseWrapper::remove_spelling(const string &, Xapian::termcount) const
232 : : {
233 : 0 : nonconst_access();
234 : : }
235 : :
236 : : void
237 : 0 : ConstDatabaseWrapper::add_synonym(const string &, const string &) const
238 : : {
239 : 0 : nonconst_access();
240 : : }
241 : :
242 : : void
243 : 0 : ConstDatabaseWrapper::remove_synonym(const string &, const string &) const
244 : : {
245 : 0 : nonconst_access();
246 : : }
247 : :
248 : : void
249 : 0 : ConstDatabaseWrapper::clear_synonyms(const string &) const
250 : : {
251 : 0 : nonconst_access();
252 : : }
253 : :
254 : : void
255 : 0 : ConstDatabaseWrapper::set_metadata(const string &, const string &)
256 : : {
257 : 0 : nonconst_access();
258 : : }
259 : :
260 : : void
261 : 0 : ConstDatabaseWrapper::reopen()
262 : : {
263 : 0 : nonconst_access();
264 : : }
265 : :
266 : : void
267 : 0 : ConstDatabaseWrapper::close()
268 : : {
269 : 0 : nonconst_access();
270 : : }
271 : :
272 : : void
273 : 0 : ConstDatabaseWrapper::commit()
274 : : {
275 : 0 : nonconst_access();
276 : : }
277 : :
278 : : void
279 : 0 : ConstDatabaseWrapper::cancel()
280 : : {
281 : 0 : nonconst_access();
282 : : }
283 : :
284 : : void
285 : 0 : ConstDatabaseWrapper::begin_transaction(bool)
286 : : {
287 : 0 : nonconst_access();
288 : : }
289 : :
290 : : void
291 : 0 : ConstDatabaseWrapper::commit_transaction()
292 : : {
293 : 0 : nonconst_access();
294 : : }
295 : :
296 : : void
297 : 0 : ConstDatabaseWrapper::cancel_transaction()
298 : : {
299 : 0 : nonconst_access();
300 : : }
301 : :
302 : : Xapian::docid
303 : 0 : ConstDatabaseWrapper::add_document(const Xapian::Document &)
304 : : {
305 : 0 : nonconst_access();
306 : : return 0;
307 : : }
308 : :
309 : : void
310 : 0 : ConstDatabaseWrapper::delete_document(Xapian::docid)
311 : : {
312 : 0 : nonconst_access();
313 : : }
314 : :
315 : : void
316 : 0 : ConstDatabaseWrapper::delete_document(const string &)
317 : : {
318 : 0 : nonconst_access();
319 : : }
320 : :
321 : : void
322 : 0 : ConstDatabaseWrapper::replace_document(Xapian::docid, const Xapian::Document &)
323 : : {
324 : 0 : nonconst_access();
325 : : }
326 : :
327 : : Xapian::docid
328 : 0 : ConstDatabaseWrapper::replace_document(const string &,
329 : : const Xapian::Document &)
330 : : {
331 : 0 : nonconst_access();
332 : : return 0;
333 : : }
334 : :
335 : : void
336 : 0 : ConstDatabaseWrapper::write_changesets_to_fd(int, const std::string &, bool,
337 : : Xapian::ReplicationInfo *)
338 : : {
339 : 0 : nonconst_access();
340 : : }
341 : :
342 : : RemoteDatabase *
343 : 0 : ConstDatabaseWrapper::as_remotedatabase()
344 : : {
345 : 0 : nonconst_access();
346 : : return NULL;
347 : : }
|