1// SuperTux
2// Copyright (C) 2015 Ingo Ruhnke <grumbel@gmail.com>
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program 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
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17#ifndef HEADER_SUPERTUX_UTIL_READER_COLLECTION_HPP
18#define HEADER_SUPERTUX_UTIL_READER_COLLECTION_HPP
19
20#include <vector>
21
22#include "util/reader_object.hpp"
23
24namespace sexp {
25class Value;
26} // namespace sexp
27
28class ReaderDocument;
29
30class ReaderCollection final
31{
32public:
33 /** sx should point to (section (objname (name value)...)...) */
34 ReaderCollection(const ReaderDocument& doc, const sexp::Value& sx);
35
36 std::vector<ReaderObject> get_objects() const;
37
38 const ReaderDocument& get_doc() const { return m_doc; }
39 const sexp::Value& get_sexp() const { return m_sx; }
40
41private:
42 const ReaderDocument& m_doc;
43 const sexp::Value& m_sx;
44};
45
46#endif
47
48/* EOF */
49