1/* -*- c-basic-offset: 2 -*- */
2/*
3 Copyright(C) 2011-2016 Brazil
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 version 2.1 as published by the Free Software Foundation.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with this library; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17*/
18
19#pragma once
20
21#include "key.hpp"
22
23namespace grn {
24namespace dat {
25
26class GRN_DAT_API Cursor {
27 public:
28 Cursor() {}
29 virtual ~Cursor() {}
30
31 virtual void close() = 0;
32
33 virtual const Key &next() = 0;
34
35 virtual UInt32 offset() const = 0;
36 virtual UInt32 limit() const = 0;
37 virtual UInt32 flags() const = 0;
38
39 private:
40 // Disallows copy and assignment.
41 Cursor(const Cursor &);
42 Cursor &operator=(const Cursor &);
43};
44
45} // namespace dat
46} // namespace grn
47