1/*
2 * This file is part of the KDE Baloo Project
3 * Copyright (C) 2013 Vishesh Handa <me@vhanda.in>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) version 3, or any
9 * later version accepted by the membership of KDE e.V. (or its
10 * successor approved by the membership of KDE e.V.), which shall
11 * act as a proxy defined in Section 6 of version 3 of the license.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
20 *
21 */
22
23#ifndef _BALOO_CORE_RESULT_ITERATOR_H
24#define _BALOO_CORE_RESULT_ITERATOR_H
25
26#include "core_export.h"
27#include "searchstore.h"
28
29#include <QExplicitlySharedDataPointer>
30
31namespace Baloo {
32
33class SearchStore;
34class Result;
35
36// TODO: Move this to another file?
37class ResultIteratorPrivate : public QSharedData {
38public:
39 ResultIteratorPrivate();
40 ~ResultIteratorPrivate() {
41 if (store)
42 store->close(queryId);
43 }
44
45 int queryId;
46 SearchStore* store;
47};
48
49class BALOO_CORE_EXPORT ResultIterator
50{
51public:
52 ResultIterator();
53 // internal
54 ResultIterator(int id, SearchStore* store);
55
56 bool next();
57
58 QByteArray id() const;
59 QUrl url() const;
60
61 QString text() const;
62 QString icon() const;
63
64 Result result() const;
65private:
66 QExplicitlySharedDataPointer<ResultIteratorPrivate> d;
67};
68
69}
70#endif // _BALOO_CORE_RESULT_ITERATOR_H
71