xapian-core  2.0.0
xapian.h
Go to the documentation of this file.
1 
4 // Copyright (C) 2003,2004,2005,2007,2008,2009,2010,2012,2013,2015,2016,2019 Olly Betts
5 //
6 // This program is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2 of the License, or
9 // (at your option) any later version.
10 //
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, see
18 // <https://www.gnu.org/licenses/>.
19 
20 #ifndef XAPIAN_INCLUDED_XAPIAN_H
21 #define XAPIAN_INCLUDED_XAPIAN_H
22 
23 #ifdef slots
24 # ifdef Q_OBJECT
25 // Qt headers '#define slots' by default, which clashes with us using it as a
26 // class member name. Including <xapian.h> first is a simple workaround, or
27 // you can use 'no_keywords' to stop Qt polluting the global macro namespace,
28 // as described here:
29 //
30 // https://doc.qt.io/qt-5/signalsandslots.html#using-qt-with-3rd-party-signals-and-slots
31 # error Include <xapian.h> before Qt headers, or put 'CONFIG += no_keywords' in your .pro file and use Q_SLOTS instead of slots, etc
32 # endif
33 # ifdef WT_API
34 // Argh, copycat polluters!
35 # error Include <xapian.h> before Wt headers, or define WT_NO_SLOT_MACROS to stop Wt from defining the macros 'slots' and 'SLOT()'
36 # endif
37 #endif
38 
39 // Define so that deprecation warnings are given to API users, but not
40 // while building the library.
41 #define XAPIAN_IN_XAPIAN_H
42 
43 // Set defines for library version and check C++ ABI versions match.
44 #include <xapian/version.h>
45 
46 // Types
47 #include <xapian/types.h>
48 
49 // Function attributes
50 #include <xapian/attributes.h>
51 
52 // Constants
53 #include <xapian/constants.h>
54 
55 // Exceptions
56 #include <xapian/error.h>
57 
58 // Access to databases, documents, etc.
59 #include <xapian/database.h>
60 #include <xapian/dbfactory.h>
61 #include <xapian/document.h>
63 #include <xapian/postingiterator.h>
64 #include <xapian/termiterator.h>
65 #include <xapian/valueiterator.h>
66 
67 // Indexing
68 #include <xapian/termgenerator.h>
69 
70 // Searching
71 #include <xapian/enquire.h>
72 #include <xapian/eset.h>
73 #include <xapian/mset.h>
74 #include <xapian/expanddecider.h>
75 #include <xapian/keymaker.h>
76 #include <xapian/matchdecider.h>
77 #include <xapian/matchspy.h>
78 #include <xapian/postingsource.h>
79 #include <xapian/query.h>
80 #include <xapian/queryparser.h>
81 #include <xapian/rset.h>
83 #include <xapian/weight.h>
84 
85 // Clustering
86 #include <xapian/cluster.h>
87 
88 // Stemming
89 #include <xapian/stem.h>
90 
91 // Subclass registry
92 #include <xapian/registry.h>
93 
94 // Unicode support
95 #include <xapian/unicode.h>
96 
97 // Geospatial
98 #include <xapian/geospatial.h>
99 
100 // Database compaction and merging
101 #include <xapian/compactor.h>
102 
103 // ELF visibility annotations for GCC.
104 #include <xapian/visibility.h>
105 
106 // Mechanism for accessing a struct of constant information
107 #include <xapian/constinfo.h>
108 
110 namespace Xapian {
111 
112 // Functions returning library version:
113 
119 inline const char* version_string() {
120  return Internal::get_constinfo_()->str;
121 }
122 
128 inline int major_version() {
130 }
131 
137 inline int minor_version() {
139 }
140 
146 inline int revision() {
148 }
149 
150 }
151 
152 #undef XAPIAN_IN_XAPIAN_H
153 
154 #endif /* XAPIAN_INCLUDED_XAPIAN_H */
Compiler attribute macros.
Cluster API.
Compact a database, or merge and compact several.
Constants in the Xapian namespace.
Mechanism for accessing a struct of constant information.
An indexed database of documents.
Factory functions for constructing Database and WritableDatabase objects.
Class representing a document.
Querying session.
Hierarchy of classes which Xapian can throw as exceptions.
Class representing a list of query expansion terms.
Allow rejection of terms during ESet generation.
Geospatial search support routines.
Build key strings for MSet ordering or collapsing.
Abstract base class for match deciders.
MatchSpy implementation.
Class representing a list of search results.
const struct constinfo * get_constinfo_() noexcept
Definition: constinfo.cc:43
The Xapian namespace contains public interfaces for the Xapian library.
Definition: compactor.cc:82
int major_version()
Report the major version of the library which the program is linked with.
Definition: xapian.h:128
int revision()
Report the revision of the library which the program is linked with.
Definition: xapian.h:146
const char * version_string()
Report the version string of the library which the program is linked with.
Definition: xapian.h:119
int minor_version()
Report the minor version of the library which the program is linked with.
Definition: xapian.h:137
Class for iterating over term positions.
Class for iterating over a list of document ids.
External sources of posting information.
Xapian::Query API class.
parsing a user query string to build a Xapian::Query object
Class for looking up user subclasses during unserialisation.
Set of documents judged as relevant.
stemming algorithms
parse free text and generate terms
Class for iterating over a list of terms.
typedefs for Xapian
Unicode and UTF-8 related classes and functions.
Class for iterating over document values.
MatchDecider subclass for filtering results by value.
Define preprocessor symbols for the library version.
Define XAPIAN_VISIBILITY_* macros.
Weighting scheme API.