/** @file
* @brief Public interfaces for the Xapian library.
*/
// Copyright (C) 2003,2004,2005,2007,2008,2009,2010,2012,2013,2015,2016,2019 Olly Betts
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, see
// .
#ifndef XAPIAN_INCLUDED_XAPIAN_H
#define XAPIAN_INCLUDED_XAPIAN_H
#ifdef slots
# ifdef Q_OBJECT
// Qt headers '#define slots' by default, which clashes with us using it as a
// class member name. Including first is a simple workaround, or
// you can use 'no_keywords' to stop Qt polluting the global macro namespace,
// as described here:
//
// https://doc.qt.io/qt-5/signalsandslots.html#using-qt-with-3rd-party-signals-and-slots
# error Include before Qt headers, or put 'CONFIG += no_keywords' in your .pro file and use Q_SLOTS instead of slots, etc
# endif
# ifdef WT_API
// Argh, copycat polluters!
# error Include before Wt headers, or define WT_NO_SLOT_MACROS to stop Wt from defining the macros 'slots' and 'SLOT()'
# endif
#endif
// Define so that deprecation warnings are given to API users, but not
// while building the library.
#define XAPIAN_IN_XAPIAN_H
// Set defines for library version and check C++ ABI versions match.
#include
// Types
#include
// Function attributes
#include
// Constants
#include
// Exceptions
#include
// Access to databases, documents, etc.
#include
#include
#include
#include
#include
#include
#include
// Indexing
#include
// Searching
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
// Clustering
#include
// Stemming
#include
// Subclass registry
#include
// Unicode support
#include
// Geospatial
#include
// Database compaction and merging
#include
// ELF visibility annotations for GCC.
#include
// Mechanism for accessing a struct of constant information
#include
/// The Xapian namespace contains public interfaces for the Xapian library.
namespace Xapian {
// Functions returning library version:
/** Report the version string of the library which the program is linked with.
*
* This may be different to the version compiled against (given by
* XAPIAN_VERSION) if shared libraries are being used.
*/
inline const char* version_string() {
return Internal::get_constinfo_()->str;
}
/** Report the major version of the library which the program is linked with.
*
* This may be different to the version compiled against (given by
* XAPIAN_MAJOR_VERSION) if shared libraries are being used.
*/
inline int major_version() {
return Internal::get_constinfo_()->major;
}
/** Report the minor version of the library which the program is linked with.
*
* This may be different to the version compiled against (given by
* XAPIAN_MINOR_VERSION) if shared libraries are being used.
*/
inline int minor_version() {
return Internal::get_constinfo_()->minor;
}
/** Report the revision of the library which the program is linked with.
*
* This may be different to the version compiled against (given by
* XAPIAN_REVISION) if shared libraries are being used.
*/
inline int revision() {
return Internal::get_constinfo_()->revision;
}
}
#undef XAPIAN_IN_XAPIAN_H
#endif /* XAPIAN_INCLUDED_XAPIAN_H */