Orcus
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 
18 namespace orcus {
19 
20 class string_pool;
21 
22 namespace spreadsheet {
23 
24 class document;
25 class view;
26 class styles;
27 
32 class ORCUS_SPM_DLLPUBLIC import_factory : public iface::import_factory
33 {
34  struct impl;
35  std::unique_ptr<impl> mp_impl;
36 public:
38  import_factory(document& doc, view& view_store);
39  virtual ~import_factory();
40 
43  virtual iface::import_styles* get_styles() override;
45  virtual iface::import_reference_resolver* get_reference_resolver(formula_ref_context_t cxt) override;
47  orcus::spreadsheet::pivot_cache_id_t cache_id) override;
49  orcus::spreadsheet::pivot_cache_id_t cache_id) override;
50  virtual iface::import_sheet* append_sheet(sheet_t sheet_index, std::string_view name) override;
51  virtual iface::import_sheet* get_sheet(std::string_view name) override;
52  virtual iface::import_sheet* get_sheet(sheet_t sheet_index) override;
53  virtual void finalize() override;
54 
55  void set_default_row_size(row_t row_size);
56  void set_default_column_size(col_t col_size);
57 
58  void set_character_set(character_set_t charset);
59  character_set_t get_character_set() const;
60 
69 
70  void set_formula_error_policy(formula_error_policy_t policy);
71 };
72 
77 class ORCUS_SPM_DLLPUBLIC import_styles : public iface::import_styles
78 {
79  struct impl;
80  std::unique_ptr<impl> mp_impl;
81 public:
82  import_styles(styles& styles_store, string_pool& sp);
83  virtual ~import_styles() override;
84 
90  virtual iface::import_xf* start_xf(xf_category_t cat) override;
92 
93  virtual void set_font_count(size_t n) override;
94  virtual void set_fill_count(size_t n) override;
95  virtual void set_border_count(size_t n) override;
96  virtual void set_number_format_count(size_t n) override;
97  virtual void set_xf_count(xf_category_t cat, size_t n) override;
98  virtual void set_cell_style_count(size_t n) override;
99 };
100 
107 class ORCUS_SPM_DLLPUBLIC export_factory : public iface::export_factory
108 {
109  struct impl;
110  std::unique_ptr<impl> mp_impl;
111 public:
112  export_factory(const document& doc);
113  virtual ~export_factory();
114 
115  virtual const iface::export_sheet* get_sheet(std::string_view sheet_name) const override;
116 };
117 
118 }}
119 
120 #endif
121 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: document.hpp:54
Definition: factory.hpp:108
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:1193
Definition: import_interface_styles.hpp:397
Definition: import_interface_styles.hpp:210
Definition: import_interface.hpp:1095
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:1151
Definition: import_interface.hpp:72
Definition: import_interface.hpp:873
Definition: import_interface_styles.hpp:53
Definition: import_interface_styles.hpp:597
Definition: factory.hpp:33
virtual iface::import_shared_strings * get_shared_strings() override
virtual iface::import_pivot_cache_definition * create_pivot_cache_definition(orcus::spreadsheet::pivot_cache_id_t cache_id) override
virtual iface::import_sheet * get_sheet(std::string_view name) override
virtual void finalize() override
virtual iface::import_sheet * get_sheet(sheet_t sheet_index) override
virtual iface::import_styles * get_styles() override
virtual iface::import_sheet * append_sheet(sheet_t sheet_index, std::string_view name) override
virtual iface::import_pivot_cache_records * create_pivot_cache_records(orcus::spreadsheet::pivot_cache_id_t cache_id) override
virtual iface::import_global_settings * get_global_settings() override
virtual iface::import_named_expression * get_named_expression() override
virtual iface::import_reference_resolver * get_reference_resolver(formula_ref_context_t cxt) override
Definition: factory.hpp:78
virtual iface::import_cell_style * start_cell_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_number_format * start_number_format() override
virtual iface::import_font_style * start_font_style() override
virtual iface::import_cell_protection * start_cell_protection() override
virtual void set_number_format_count(size_t n) 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_fill_style * start_fill_style() override
Definition: styles.hpp:189
Definition: view.hpp:23
Definition: string_pool.hpp:26