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/export_interface.hpp"
13 #include "orcus/env.hpp"
14 
15 #include <memory>
16 
17 namespace orcus { namespace spreadsheet {
18 
19 class document;
20 class view;
21 
22 class ORCUS_SPM_DLLPUBLIC import_factory : public iface::import_factory
23 {
24  struct impl;
25  std::unique_ptr<impl> mp_impl;
26 public:
27  import_factory(document& doc, row_t row_size = 1048576, col_t col_size = 16384);
28  import_factory(document& doc, view& view, row_t row_size = 1048576, col_t col_size = 16384);
29  virtual ~import_factory();
30 
31  virtual iface::import_global_settings* get_global_settings() override;
32  virtual iface::import_shared_strings* get_shared_strings() override;
33  virtual iface::import_styles* get_styles() override;
34  virtual iface::import_named_expression* get_named_expression() override;
35  virtual iface::import_reference_resolver* get_reference_resolver() override;
36  virtual iface::import_pivot_cache_definition* create_pivot_cache_definition(
37  orcus::spreadsheet::pivot_cache_id_t cache_id) override;
38  virtual iface::import_pivot_cache_records* create_pivot_cache_records(
39  orcus::spreadsheet::pivot_cache_id_t cache_id) override;
40  virtual iface::import_sheet* append_sheet(sheet_t sheet_index, const char* sheet_name, size_t sheet_name_length) override;
41  virtual iface::import_sheet* get_sheet(const char* sheet_name, size_t sheet_name_length) override;
42  virtual iface::import_sheet* get_sheet(sheet_t sheet_index) override;
43  virtual void finalize() override;
44 
45  void set_default_row_size(row_t row_size);
46  void set_default_column_size(col_t col_size);
47 };
48 
49 struct export_factory_impl;
50 
51 class ORCUS_SPM_DLLPUBLIC export_factory : public iface::export_factory
52 {
53 public:
55  virtual ~export_factory();
56 
57  virtual const iface::export_sheet* get_sheet(const char* sheet_name, size_t sheet_name_length) const;
58 
59 private:
60  export_factory_impl* mp_impl;
61 };
62 
63 }}
64 
65 #endif
66 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: import_interface_pivot.hpp:290
Definition: import_interface.hpp:455
Definition: factory.hpp:22
Definition: import_interface.hpp:84
Definition: import_interface.hpp:199
Definition: document.hpp:47
Definition: import_interface.hpp:693
Definition: export_interface.hpp:26
Definition: import_interface_pivot.hpp:28
Definition: factory.hpp:51
Definition: import_interface.hpp:773
Definition: export_interface.hpp:18
Definition: view.hpp:22
Definition: import_interface.hpp:30
Definition: import_interface.hpp:727
Definition: base64.hpp:15