1 /** @file
2  * @brief Custom Lua exception handling.
3  */
4 /* Warning: This file is generated by ./generate-lua-exceptions
5  * - do not modify directly!
6  *
7  * Copyright (C) 2003,2004,2006,2007,2008,2011,2012 Olly Betts
8  * Copyright (C) 2007 Lemur Consulting Ltd
9  * Copyright (C) 2007 Richard Boulton
10  * Copyright (C) 2011 Xiaona Han
11  *
12  * This program is free software; you can redistribute it and/or
13  * modify it under the terms of the GNU General Public License as
14  * published by the Free Software Foundation; either version 2 of the
15  * License, or (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program; if not, write to the Free Software
24  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
25  */
26 
27 %ignore Xapian::Error::Error(const Error&);
28 %include "xapian/error.h"
29 
30 %{
31 namespace Xapian {
32 void handle_exception(lua_State* L) {
33     try {
34 	throw;
35     } catch (const Xapian::DatabaseClosedError &e) {
36 	SWIG_NewPointerObj(L, (void *)new DatabaseClosedError(e), SWIGTYPE_p_Xapian__DatabaseClosedError, 1);
37     } catch (const Xapian::DatabaseNotFoundError &e) {
38 	SWIG_NewPointerObj(L, (void *)new DatabaseNotFoundError(e), SWIGTYPE_p_Xapian__DatabaseNotFoundError, 1);
39     } catch (const Xapian::WildcardError &e) {
40 	SWIG_NewPointerObj(L, (void *)new WildcardError(e), SWIGTYPE_p_Xapian__WildcardError, 1);
41     } catch (const Xapian::RangeError &e) {
42 	SWIG_NewPointerObj(L, (void *)new RangeError(e), SWIGTYPE_p_Xapian__RangeError, 1);
43     } catch (const Xapian::SerialisationError &e) {
44 	SWIG_NewPointerObj(L, (void *)new SerialisationError(e), SWIGTYPE_p_Xapian__SerialisationError, 1);
45     } catch (const Xapian::QueryParserError &e) {
46 	SWIG_NewPointerObj(L, (void *)new QueryParserError(e), SWIGTYPE_p_Xapian__QueryParserError, 1);
47     } catch (const Xapian::NetworkTimeoutError &e) {
48 	SWIG_NewPointerObj(L, (void *)new NetworkTimeoutError(e), SWIGTYPE_p_Xapian__NetworkTimeoutError, 1);
49     } catch (const Xapian::NetworkError &e) {
50 	SWIG_NewPointerObj(L, (void *)new NetworkError(e), SWIGTYPE_p_Xapian__NetworkError, 1);
51     } catch (const Xapian::InternalError &e) {
52 	SWIG_NewPointerObj(L, (void *)new InternalError(e), SWIGTYPE_p_Xapian__InternalError, 1);
53     } catch (const Xapian::FeatureUnavailableError &e) {
54 	SWIG_NewPointerObj(L, (void *)new FeatureUnavailableError(e), SWIGTYPE_p_Xapian__FeatureUnavailableError, 1);
55     } catch (const Xapian::DocNotFoundError &e) {
56 	SWIG_NewPointerObj(L, (void *)new DocNotFoundError(e), SWIGTYPE_p_Xapian__DocNotFoundError, 1);
57     } catch (const Xapian::DatabaseVersionError &e) {
58 	SWIG_NewPointerObj(L, (void *)new DatabaseVersionError(e), SWIGTYPE_p_Xapian__DatabaseVersionError, 1);
59     } catch (const Xapian::DatabaseOpeningError &e) {
60 	SWIG_NewPointerObj(L, (void *)new DatabaseOpeningError(e), SWIGTYPE_p_Xapian__DatabaseOpeningError, 1);
61     } catch (const Xapian::DatabaseModifiedError &e) {
62 	SWIG_NewPointerObj(L, (void *)new DatabaseModifiedError(e), SWIGTYPE_p_Xapian__DatabaseModifiedError, 1);
63     } catch (const Xapian::DatabaseLockError &e) {
64 	SWIG_NewPointerObj(L, (void *)new DatabaseLockError(e), SWIGTYPE_p_Xapian__DatabaseLockError, 1);
65     } catch (const Xapian::DatabaseCreateError &e) {
66 	SWIG_NewPointerObj(L, (void *)new DatabaseCreateError(e), SWIGTYPE_p_Xapian__DatabaseCreateError, 1);
67     } catch (const Xapian::DatabaseCorruptError &e) {
68 	SWIG_NewPointerObj(L, (void *)new DatabaseCorruptError(e), SWIGTYPE_p_Xapian__DatabaseCorruptError, 1);
69     } catch (const Xapian::DatabaseError &e) {
70 	SWIG_NewPointerObj(L, (void *)new DatabaseError(e), SWIGTYPE_p_Xapian__DatabaseError, 1);
71     } catch (const Xapian::UnimplementedError &e) {
72 	SWIG_NewPointerObj(L, (void *)new UnimplementedError(e), SWIGTYPE_p_Xapian__UnimplementedError, 1);
73     } catch (const Xapian::InvalidOperationError &e) {
74 	SWIG_NewPointerObj(L, (void *)new InvalidOperationError(e), SWIGTYPE_p_Xapian__InvalidOperationError, 1);
75     } catch (const Xapian::InvalidArgumentError &e) {
76 	SWIG_NewPointerObj(L, (void *)new InvalidArgumentError(e), SWIGTYPE_p_Xapian__InvalidArgumentError, 1);
77     } catch (const Xapian::AssertionError &e) {
78 	SWIG_NewPointerObj(L, (void *)new AssertionError(e), SWIGTYPE_p_Xapian__AssertionError, 1);
79     } catch (const Xapian::RuntimeError &e) {
80 	SWIG_NewPointerObj(L, (void *)new RuntimeError(e), SWIGTYPE_p_Xapian__RuntimeError, 1);
81     } catch (const Xapian::LogicError &e) {
82 	SWIG_NewPointerObj(L, (void *)new LogicError(e), SWIGTYPE_p_Xapian__LogicError, 1);
83     } catch (const std::exception& e) {
84 	lua_pushfstring(L, "std::exception: %s", e.what());
85     } catch (...) {
86 	lua_pushstring(L, "Unknown exception");
87     }
88 }
89 }
90 %}
91 
92 /* Functions and methods which are marked as "nothrow": */
93 %exception Xapian::Compactor::~Compactor;
94 %exception Xapian::Compactor::get_constinfo_();
95 %exception Xapian::Database::~Database;
96 %exception Xapian::Database::postlist_end(const std::string &) const;
97 %exception Xapian::Database::termlist_end(Xapian::docid) const;
98 %exception Xapian::Database::positionlist_end(Xapian::docid, const std::string &) const;
99 %exception Xapian::Database::allterms_end(const std::string & = std::string()) const;
100 %exception Xapian::Database::valuestream_end(Xapian::valueno) const;
101 %exception Xapian::Database::spellings_end() const;
102 %exception Xapian::Database::synonyms_end(const std::string &) const;
103 %exception Xapian::Database::synonym_keys_end(const std::string & = std::string()) const;
104 %exception Xapian::Database::metadata_keys_end(const std::string & = std::string()) const;
105 %exception Xapian::WritableDatabase::~WritableDatabase;
106 %exception Xapian::Document::~Document;
107 %exception Xapian::Document::termlist_end() const;
108 %exception Xapian::Document::values_end() const;
109 %exception Xapian::RSet::~RSet;
110 %exception Xapian::MatchDecider::~MatchDecider;
111 %exception Xapian::Enquire::~Enquire;
112 %exception Xapian::Enquire::get_matching_terms_end(Xapian::docid  ) const;
113 %exception Xapian::Enquire::get_matching_terms_end(const MSetIterator & ) const;
114 %exception Xapian::Error::~Error;
115 %exception Xapian::Error::get_type() const;
116 %exception Xapian::Error::get_msg() const;
117 %exception Xapian::Error::get_context() const;
118 %exception Xapian::LogicError::~LogicError;
119 %exception Xapian::RuntimeError::~RuntimeError;
120 %exception Xapian::AssertionError::~AssertionError;
121 %exception Xapian::InvalidArgumentError::~InvalidArgumentError;
122 %exception Xapian::InvalidOperationError::~InvalidOperationError;
123 %exception Xapian::UnimplementedError::~UnimplementedError;
124 %exception Xapian::DatabaseError::~DatabaseError;
125 %exception Xapian::DatabaseCorruptError::~DatabaseCorruptError;
126 %exception Xapian::DatabaseCreateError::~DatabaseCreateError;
127 %exception Xapian::DatabaseLockError::~DatabaseLockError;
128 %exception Xapian::DatabaseModifiedError::~DatabaseModifiedError;
129 %exception Xapian::DatabaseOpeningError::~DatabaseOpeningError;
130 %exception Xapian::DatabaseVersionError::~DatabaseVersionError;
131 %exception Xapian::DocNotFoundError::~DocNotFoundError;
132 %exception Xapian::FeatureUnavailableError::~FeatureUnavailableError;
133 %exception Xapian::InternalError::~InternalError;
134 %exception Xapian::NetworkError::~NetworkError;
135 %exception Xapian::NetworkTimeoutError::~NetworkTimeoutError;
136 %exception Xapian::QueryParserError::~QueryParserError;
137 %exception Xapian::SerialisationError::~SerialisationError;
138 %exception Xapian::RangeError::~RangeError;
139 %exception Xapian::WildcardError::~WildcardError;
140 %exception Xapian::DatabaseNotFoundError::~DatabaseNotFoundError;
141 %exception Xapian::DatabaseClosedError::~DatabaseClosedError;
142 %exception Xapian::ErrorHandler::~ErrorHandler;
143 %exception Xapian::ErrorHandler::ErrorHandler();
144 %exception Xapian::ESet::~ESet;
145 %exception Xapian::ESetIterator::~ESetIterator;
146 %exception Xapian::ESetIterator::operator==(const ESetIterator &a, const ESetIterator &b);
147 %exception Xapian::ESetIterator::operator!=(const ESetIterator &a, const ESetIterator &b);
148 %exception Xapian::ESetIterator::operator<(const ESetIterator &a, const ESetIterator &b);
149 %exception Xapian::ESetIterator::operator>(const ESetIterator &a, const ESetIterator &b);
150 %exception Xapian::ESetIterator::operator>=(const ESetIterator &a, const ESetIterator &b);
151 %exception Xapian::ESetIterator::operator<=(const ESetIterator &a, const ESetIterator &b);
152 %exception Xapian::ExpandDecider::~ExpandDecider;
153 %exception Xapian::ExpandDeciderAnd::~ExpandDeciderAnd;
154 %exception Xapian::ExpandDeciderFilterTerms::~ExpandDeciderFilterTerms;
155 %exception Xapian::ExpandDeciderFilterPrefix::~ExpandDeciderFilterPrefix;
156 %exception Xapian::ExpandDeciderFilterPrefix::miles_to_metres(double miles);
157 %exception Xapian::ExpandDeciderFilterPrefix::metres_to_miles(double metres);
158 %exception Xapian::ExpandDeciderFilterPrefix::LatLongCoord();
159 %exception Xapian::ExpandDeciderFilterPrefix::operator<(const LatLongCoord & other) const;
160 %exception Xapian::LatLongCoordsIterator::~LatLongCoordsIterator;
161 %exception Xapian::LatLongCoords::~LatLongCoords;
162 %exception Xapian::LatLongMetric::~LatLongMetric;
163 %exception Xapian::GreatCircleMetric::~GreatCircleMetric;
164 %exception Xapian::LatLongDistancePostingSource::~LatLongDistancePostingSource;
165 %exception Xapian::LatLongDistanceKeyMaker::~LatLongDistanceKeyMaker;
166 %exception Xapian::opt_intrusive_base::~opt_intrusive_base;
167 %exception Xapian::KeyMaker::~KeyMaker;
168 %exception Xapian::MultiValueKeyMaker::~MultiValueKeyMaker;
169 %exception Xapian::MatchSpy::~MatchSpy;
170 %exception Xapian::MatchSpy::MatchSpy();
171 %exception Xapian::ValueCountMatchSpy::~ValueCountMatchSpy;
172 %exception Xapian::ValueCountMatchSpy::get_total() const;
173 %exception Xapian::ValueCountMatchSpy::values_end() const;
174 %exception Xapian::ValueCountMatchSpy::top_values_end(size_t) const;
175 %exception Xapian::MSet::~MSet;
176 %exception Xapian::MSetIterator::~MSetIterator;
177 %exception Xapian::MSetIterator::operator==(const MSetIterator &a, const MSetIterator &b);
178 %exception Xapian::MSetIterator::operator!=(const MSetIterator &a, const MSetIterator &b);
179 %exception Xapian::MSetIterator::operator<(const MSetIterator &a, const MSetIterator &b);
180 %exception Xapian::MSetIterator::operator>(const MSetIterator &a, const MSetIterator &b);
181 %exception Xapian::MSetIterator::operator>=(const MSetIterator &a, const MSetIterator &b);
182 %exception Xapian::MSetIterator::operator<=(const MSetIterator &a, const MSetIterator &b);
183 %exception Xapian::PositionIterator::~PositionIterator;
184 %exception Xapian::PositionIterator::PositionIterator();
185 %exception Xapian::PositionIterator::operator==(const PositionIterator &a, const PositionIterator &b);
186 %exception Xapian::PositionIterator::operator!=(const PositionIterator &a, const PositionIterator &b);
187 %exception Xapian::PostingIterator::~PostingIterator;
188 %exception Xapian::PostingIterator::PostingIterator();
189 %exception Xapian::PostingIterator::positionlist_end() const;
190 %exception Xapian::PostingIterator::operator==(const PostingIterator &a, const PostingIterator &b);
191 %exception Xapian::PostingIterator::operator!=(const PostingIterator &a, const PostingIterator &b);
192 %exception Xapian::PostingSource::~PostingSource;
193 %exception Xapian::PostingSource::PostingSource();
194 %exception Xapian::PostingSource::get_maxweight() const;
195 %exception Xapian::ValuePostingSource::~ValuePostingSource;
196 %exception Xapian::ValueWeightPostingSource::~ValueWeightPostingSource;
197 %exception Xapian::DecreasingValueWeightPostingSource::~DecreasingValueWeightPostingSource;
198 %exception Xapian::ValueMapPostingSource::~ValueMapPostingSource;
199 %exception Xapian::FixedWeightPostingSource::~FixedWeightPostingSource;
200 %exception Xapian::Query::~Query;
201 %exception Xapian::Query::Query();
202 %exception Xapian::Query::get_terms_end() const;
203 %exception Xapian::Query::get_unique_terms_end() const;
204 %exception Xapian::Query::get_length() const;
205 %exception Xapian::Query::empty() const;
206 %exception Xapian::Query::get_type() const;
207 %exception Xapian::Query::get_num_subqueries() const;
208 %exception Xapian::Query::Internal();
209 %exception Xapian::Query::get_length() const;
210 %exception Xapian::Query::get_type() const;
211 %exception Xapian::Query::get_num_subqueries() const;
212 %exception Xapian::Stopper::~Stopper;
213 %exception Xapian::SimpleStopper::~SimpleStopper;
214 %exception Xapian::RangeProcessor::~RangeProcessor;
215 %exception Xapian::DateRangeProcessor::~DateRangeProcessor;
216 %exception Xapian::NumberRangeProcessor::~NumberRangeProcessor;
217 %exception Xapian::ValueRangeProcessor::~ValueRangeProcessor;
218 %exception Xapian::FieldProcessor::~FieldProcessor;
219 %exception Xapian::QueryParser::~QueryParser;
220 %exception Xapian::QueryParser::stoplist_end() const;
221 %exception Xapian::QueryParser::unstem_end(const std::string &) const;
222 %exception Xapian::QueryParser::sortable_serialise_(double value, char * buf);
223 %exception Xapian::QueryParser::sortable_unserialise(const std::string & serialised);
224 %exception Xapian::Registry::~Registry;
225 %exception Xapian::StemImplementation::~StemImplementation;
226 %exception Xapian::Stem::~Stem;
227 %exception Xapian::TermGenerator::~TermGenerator;
228 %exception Xapian::TermIterator::~TermIterator;
229 %exception Xapian::TermIterator::TermIterator();
230 %exception Xapian::TermIterator::positionlist_end() const;
231 %exception Xapian::TermIterator::operator==(const TermIterator &a, const TermIterator &b);
232 %exception Xapian::TermIterator::operator!=(const TermIterator &a, const TermIterator &b);
233 %exception Xapian::Utf8Iterator::~Utf8Iterator;
234 %exception Xapian::Utf8Iterator::calculate_sequence_length() const;
235 %exception Xapian::Utf8Iterator::Utf8Iterator();
236 %exception Xapian::Utf8Iterator::operator*() const;
237 %exception Xapian::Utf8Iterator::strict_deref() const;
238 %exception Xapian::Utf8Iterator::operator==(const Utf8Iterator& other) const;
239 %exception Xapian::Utf8Iterator::operator!=(const Utf8Iterator& other) const;
240 %exception Xapian::Utf8Iterator::get_character_info(unsigned ch);
241 %exception Xapian::ValueIterator::~ValueIterator;
242 %exception Xapian::ValueIterator::ValueIterator();
243 %exception Xapian::ValueIterator::operator==(const ValueIterator &a, const ValueIterator &b);
244 %exception Xapian::ValueIterator::operator!=(const ValueIterator &a, const ValueIterator &b);
245 %exception Xapian::ValueSetMatchDecider::~ValueSetMatchDecider;
246 %exception Xapian::Weight::~Weight;
247 %exception Xapian::BoolWeight::~BoolWeight;
248 %exception Xapian::TfIdfWeight::~TfIdfWeight;
249 %exception Xapian::BM25Weight::~BM25Weight;
250 %exception Xapian::BM25PlusWeight::~BM25PlusWeight;
251 %exception Xapian::TradWeight::~TradWeight;
252 %exception Xapian::InL2Weight::~InL2Weight;
253 %exception Xapian::IfB2Weight::~IfB2Weight;
254 %exception Xapian::IneB2Weight::~IneB2Weight;
255 %exception Xapian::BB2Weight::~BB2Weight;
256 %exception Xapian::DLHWeight::~DLHWeight;
257 %exception Xapian::PL2Weight::~PL2Weight;
258 %exception Xapian::PL2PlusWeight::~PL2PlusWeight;
259 %exception Xapian::DPHWeight::~DPHWeight;
260 %exception Xapian::LMWeight::~LMWeight;
261 %exception Xapian::CoordWeight::~CoordWeight;
262 
263 %exception {
264     try {
265 	$action
266     } catch (...) {
267 	Xapian::handle_exception(L);
268 	SWIG_fail;
269     }
270 }
271