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/import_interface_strikethrough.hpp>
14#include <orcus/spreadsheet/export_interface.hpp>
15#include <orcus/env.hpp>
16
17#include <memory>
18
19namespace orcus {
20
21class string_pool;
22
23namespace spreadsheet {
24
25class document;
26class view;
27class styles;
28
29struct ORCUS_SPM_DLLPUBLIC import_factory_config
30{
39 bool enable_font_cache = true;
40
41 import_factory_config();
42 import_factory_config(const import_factory_config& other);
43 ~import_factory_config();
44
45 import_factory_config& operator=(const import_factory_config& other);
46};
47
52class ORCUS_SPM_DLLPUBLIC import_factory : public iface::import_factory
53{
54 struct impl;
55 std::unique_ptr<impl> mp_impl;
56public:
57 import_factory(document& doc);
58 import_factory(document& doc, view& view_store);
59 virtual ~import_factory();
60
63 virtual iface::import_styles* get_styles() override;
65 virtual iface::import_reference_resolver* get_reference_resolver(formula_ref_context_t cxt) override;
67 orcus::spreadsheet::pivot_cache_id_t cache_id) override;
69 orcus::spreadsheet::pivot_cache_id_t cache_id) override;
70 virtual iface::import_pivot_table_definition* create_pivot_table_definition() override;
71 virtual iface::import_sheet* append_sheet(sheet_t sheet_index, std::string_view name) override;
72 virtual iface::import_sheet* get_sheet(std::string_view name) override;
73 virtual iface::import_sheet* get_sheet(sheet_t sheet_index) override;
74 virtual void finalize() override;
75
76 void set_config(const import_factory_config& config);
77
78 void set_default_row_size(row_t row_size);
79 void set_default_column_size(col_t col_size);
80
81 void set_character_set(character_set_t charset);
82 character_set_t get_character_set() const;
83
92
93 void set_formula_error_policy(formula_error_policy_t policy);
94};
95
100class ORCUS_SPM_DLLPUBLIC import_styles : public iface::import_styles
101{
102 struct impl;
103 std::unique_ptr<impl> mp_impl;
104public:
105 import_styles(styles& styles_store, string_pool& sp);
106 import_styles(std::shared_ptr<import_factory_config> config, styles& styles_store, string_pool& sp);
107 virtual ~import_styles() override;
108
114 virtual iface::import_xf* start_xf(xf_category_t cat) override;
116
117 virtual void set_font_count(size_t n) override;
118 virtual void set_fill_count(size_t n) override;
119 virtual void set_border_count(size_t n) override;
120 virtual void set_number_format_count(size_t n) override;
121 virtual void set_xf_count(xf_category_t cat, size_t n) override;
122 virtual void set_cell_style_count(size_t n) override;
123};
124
131class ORCUS_SPM_DLLPUBLIC export_factory : public iface::export_factory
132{
133 struct impl;
134 std::unique_ptr<impl> mp_impl;
135public:
136 export_factory(const document& doc);
137 virtual ~export_factory();
138
139 virtual const iface::export_sheet* get_sheet(std::string_view sheet_name) const override;
140};
141
142}}
143
144#endif
145/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition document.hpp:55
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:391
Definition import_interface_styles.hpp:437
Definition import_interface_styles.hpp:657
Definition import_interface.hpp:1169
Definition import_interface_styles.hpp:343
Definition import_interface_styles.hpp:212
Definition import_interface.hpp:1071
Definition import_interface.hpp:306
Definition import_interface_styles.hpp:488
Definition import_interface_pivot.hpp:29
Definition import_interface_pivot.hpp:293
Definition import_interface_pivot_table_def.hpp:201
Definition import_interface.hpp:1127
Definition import_interface.hpp:76
Definition import_interface.hpp:843
Definition import_interface_styles.hpp:55
Definition import_interface_styles.hpp:543
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:196
Definition view.hpp:23
Definition string_pool.hpp:26
Definition config.hpp:20
bool enable_font_cache
Definition factory.hpp:39