Orcus
Loading...
Searching...
No Matches
factory.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_SPREADSHEET_IMPORT_FACTORY_HPP
9#define INCLUDED_ORCUS_SPREADSHEET_IMPORT_FACTORY_HPP
10
11#include <orcus/spreadsheet/import_interface.hpp>
12#include <orcus/spreadsheet/import_interface_styles.hpp>
13#include <orcus/spreadsheet/export_interface.hpp>
14#include <orcus/env.hpp>
15
16#include <memory>
17
18namespace orcus {
19
20class string_pool;
21
22namespace spreadsheet {
23
24class document;
25class view;
26class styles;
27
28struct ORCUS_SPM_DLLPUBLIC import_factory_config
29{
38 bool enable_font_cache = true;
39
40 import_factory_config();
41 import_factory_config(const import_factory_config& other);
42 ~import_factory_config();
43
44 import_factory_config& operator=(const import_factory_config& other);
45};
46
51class ORCUS_SPM_DLLPUBLIC import_factory : public iface::import_factory
52{
53 struct impl;
54 std::unique_ptr<impl> mp_impl;
55public:
56 import_factory(document& doc);
57 import_factory(document& doc, view& view_store);
58 virtual ~import_factory();
59
62 virtual iface::import_styles* get_styles() override;
64 virtual iface::import_reference_resolver* get_reference_resolver(formula_ref_context_t cxt) override;
66 orcus::spreadsheet::pivot_cache_id_t cache_id) override;
68 orcus::spreadsheet::pivot_cache_id_t cache_id) override;
69 virtual iface::import_sheet* append_sheet(sheet_t sheet_index, std::string_view name) override;
70 virtual iface::import_sheet* get_sheet(std::string_view name) override;
71 virtual iface::import_sheet* get_sheet(sheet_t sheet_index) override;
72 virtual void finalize() override;
73
74 void set_config(const import_factory_config& config);
75
76 void set_default_row_size(row_t row_size);
77 void set_default_column_size(col_t col_size);
78
79 void set_character_set(character_set_t charset);
80 character_set_t get_character_set() const;
81
90
91 void set_formula_error_policy(formula_error_policy_t policy);
92};
93
98class ORCUS_SPM_DLLPUBLIC import_styles : public iface::import_styles
99{
100 struct impl;
101 std::unique_ptr<impl> mp_impl;
102public:
103 import_styles(styles& styles_store, string_pool& sp);
104 import_styles(std::shared_ptr<import_factory_config> config, styles& styles_store, string_pool& sp);
105 virtual ~import_styles() override;
106
112 virtual iface::import_xf* start_xf(xf_category_t cat) override;
114
115 virtual void set_font_count(size_t n) override;
116 virtual void set_fill_count(size_t n) override;
117 virtual void set_border_count(size_t n) override;
118 virtual void set_number_format_count(size_t n) override;
119 virtual void set_xf_count(xf_category_t cat, size_t n) override;
120 virtual void set_cell_style_count(size_t n) override;
121};
122
129class ORCUS_SPM_DLLPUBLIC export_factory : public iface::export_factory
130{
131 struct impl;
132 std::unique_ptr<impl> mp_impl;
133public:
134 export_factory(const document& doc);
135 virtual ~export_factory();
136
137 virtual const iface::export_sheet* get_sheet(std::string_view sheet_name) const override;
138};
139
140}}
141
142#endif
143/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition document.hpp:54
virtual const iface::export_sheet * get_sheet(std::string_view sheet_name) const override
Definition export_interface.hpp:40
Definition export_interface.hpp:22
Definition import_interface_styles.hpp:445
Definition import_interface_styles.hpp:491
Definition import_interface_styles.hpp:711
Definition import_interface.hpp:1199
Definition import_interface_styles.hpp:397
Definition import_interface_styles.hpp:210
Definition import_interface.hpp:1101
Definition import_interface.hpp:266
Definition import_interface_styles.hpp:542
Definition import_interface_pivot.hpp:29
Definition import_interface_pivot.hpp:293
Definition import_interface.hpp:1157
Definition import_interface.hpp:72
Definition import_interface.hpp:879
Definition import_interface_styles.hpp:53
Definition import_interface_styles.hpp:597
virtual iface::import_sheet * get_sheet(std::string_view name) override
virtual iface::import_reference_resolver * get_reference_resolver(formula_ref_context_t cxt) override
virtual iface::import_global_settings * get_global_settings() override
virtual void finalize() override
virtual iface::import_styles * get_styles() override
virtual iface::import_sheet * get_sheet(sheet_t sheet_index) override
virtual iface::import_pivot_cache_definition * create_pivot_cache_definition(orcus::spreadsheet::pivot_cache_id_t cache_id) override
virtual iface::import_shared_strings * get_shared_strings() override
virtual iface::import_named_expression * get_named_expression() override
virtual iface::import_pivot_cache_records * create_pivot_cache_records(orcus::spreadsheet::pivot_cache_id_t cache_id) override
virtual iface::import_sheet * append_sheet(sheet_t sheet_index, std::string_view name) override
virtual iface::import_font_style * start_font_style() override
virtual void set_cell_style_count(size_t n) override
virtual iface::import_xf * start_xf(xf_category_t cat) override
virtual iface::import_cell_style * start_cell_style() override
virtual void set_number_format_count(size_t n) override
virtual iface::import_fill_style * start_fill_style() override
virtual iface::import_number_format * start_number_format() override
virtual void set_font_count(size_t n) override
virtual iface::import_border_style * start_border_style() override
virtual void set_xf_count(xf_category_t cat, size_t n) override
virtual void set_fill_count(size_t n) override
virtual void set_border_count(size_t n) override
virtual iface::import_cell_protection * start_cell_protection() override
Definition styles.hpp:202
Definition view.hpp:23
Definition string_pool.hpp:26
Definition config.hpp:20
bool enable_font_cache
Definition factory.hpp:38