/usr/include/xapian-1.3/xapian/iterator.h is in libxapian-1.3-dev 1.3.4-0ubuntu6.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | /** @file iterator.h
* @brief Functions to assist creating language-idiomatic iterator wrappers.
*/
/* Copyright (C) 2014 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
* USA
*/
#ifndef XAPIAN_INCLUDED_ITERATOR_H
#define XAPIAN_INCLUDED_ITERATOR_H
/* These functions are not intended to be used from user C++ code - they are
* provided to make implementing language-idiomatic wrappers around Xapian's
* iterator classes easier in bindings for other languages.
*
* If you make use of this API, please let us know on xapian-devel so we can
* coordinate any incompatible changes which might be required in the future.
*
* Currently known users:
*
* * xapian-bindings:
* + PHP
*/
#include <xapian.h>
namespace Xapian {
/** @internal Determine if iterator is valid to dereference. */
bool iterator_valid(const Xapian::ESetIterator & it) {
return it.index != it.eset.size();
}
/** @internal Determine if iterator is valid to dereference. */
bool iterator_valid(const Xapian::MSetIterator & it) {
return it.index != it.mset.size();
}
/** @internal Rewind iterator. */
void iterator_rewind(Xapian::ESetIterator & it) {
it.index = 0;
}
/** @internal Rewind iterator. */
void iterator_rewind(Xapian::MSetIterator & it) {
it.index = 0;
}
/** @internal Determine if iterator is valid to dereference. */
bool iterator_valid(const Xapian::PositionIterator & it) {
return it.internal != NULL;
}
/** @internal Determine if iterator is valid to dereference. */
bool iterator_valid(const Xapian::PostingIterator & it) {
return it.internal != NULL;
}
/** @internal Determine if iterator is valid to dereference. */
bool iterator_valid(const Xapian::TermIterator & it) {
return it.internal != NULL;
}
/** @internal Determine if iterator is valid to dereference. */
bool iterator_valid(const Xapian::ValueIterator & it) {
return it.internal != NULL;
}
}
#endif // XAPIAN_INCLUDED_ITERATOR_H
|