Orcus
orcus_json.hpp
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 */
7
8#ifndef INCLUDED_ORCUS_ORCUS_JSON_HPP
9#define INCLUDED_ORCUS_ORCUS_JSON_HPP
10
11#include "orcus/env.hpp"
12#include "orcus/spreadsheet/types.hpp"
13
14#include <memory>
15
16namespace orcus {
17
18class pstring;
19
20namespace spreadsheet { namespace iface {
21
22class import_factory;
23
24}}
25
26class ORCUS_DLLPUBLIC orcus_json
27{
28 struct impl;
29 std::unique_ptr<impl> mp_impl;
30
31public:
32
33 orcus_json(const orcus_json&) = delete;
34 orcus_json& operator= (const orcus_json&) = delete;
35
38
39 void set_cell_link(const pstring& path, const pstring& sheet, spreadsheet::row_t row, spreadsheet::col_t col);
40
41 void start_range(
42 const pstring& sheet, spreadsheet::row_t row, spreadsheet::col_t col, bool row_header);
43
44 void append_field_link(const pstring& path, const pstring& label);
45 void set_range_row_group(const pstring& path);
46 void commit_range();
47
48 void append_sheet(const pstring& name);
49
50 void read_stream(const char* p, size_t n);
51
60 void read_map_definition(const char* p, size_t n);
61
69 void detect_map_definition(const char* p, size_t n);
70};
71
72}
73
74#endif
75
76/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: orcus_json.hpp:27
void detect_map_definition(const char *p, size_t n)
void read_map_definition(const char *p, size_t n)
Definition: pstring.hpp:28
Definition: import_interface.hpp:882