Orcus
import_interface_pivot.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_INTERFACE_PIVOT_HPP
9 #define INCLUDED_ORCUS_SPREADSHEET_IMPORT_INTERFACE_PIVOT_HPP
10 
11 #include <cstdlib>
12 
13 #include "orcus/spreadsheet/types.hpp"
14 #include "orcus/types.hpp"
15 #include "orcus/env.hpp"
16 
17 // NB: This header must not depend on ixion, as it needs to be usable for
18 // those clients that provide their own formula engine. Other headers in
19 // the orcus::spreadsheet namespace may depend on ixion.
20 
21 namespace orcus { namespace spreadsheet { namespace iface {
22 
23 class import_pivot_cache_field_group;
24 
28 class ORCUS_DLLPUBLIC import_pivot_cache_definition
29 {
30 public:
32 
40  virtual void set_worksheet_source(std::string_view ref, std::string_view sheet_name) = 0;
41 
48  virtual void set_worksheet_source(std::string_view table_name) = 0;
49 
55  virtual void set_field_count(size_t n) = 0;
56 
62  virtual void set_field_name(std::string_view name) = 0;
63 
69  virtual void set_field_min_value(double v) = 0;
70 
76  virtual void set_field_max_value(double v) = 0;
77 
83  virtual void set_field_min_date(const date_time_t& dt) = 0;
84 
90  virtual void set_field_max_date(const date_time_t& dt) = 0;
91 
102  virtual import_pivot_cache_field_group* create_field_group(size_t base_index) = 0;
103 
107  virtual void commit_field() = 0;
108 
114  virtual void set_field_item_string(std::string_view value) = 0;
115 
121  virtual void set_field_item_numeric(double v) = 0;
122 
128  virtual void set_field_item_date_time(const date_time_t& dt) = 0;
129 
135  virtual void set_field_item_error(error_value_t ev) = 0;
136 
141  virtual void commit_field_item() = 0;
142 
146  virtual void commit() = 0;
147 };
148 
152 class ORCUS_DLLPUBLIC import_pivot_cache_field_group
153 {
154 public:
156 
169  virtual void link_base_to_group_items(size_t group_item_index) = 0;
170 
180  virtual void set_field_item_string(std::string_view value) = 0;
181 
191  virtual void set_field_item_numeric(double v) = 0;
192 
196  virtual void commit_field_item() = 0;
197 
206  virtual void set_range_grouping_type(pivot_cache_group_by_t group_by) = 0;
207 
218  virtual void set_range_auto_start(bool b) = 0;
219 
230  virtual void set_range_auto_end(bool b) = 0;
231 
240  virtual void set_range_start_number(double v) = 0;
241 
250  virtual void set_range_end_number(double v) = 0;
251 
260  virtual void set_range_start_date(const date_time_t& dt) = 0;
261 
270  virtual void set_range_end_date(const date_time_t& dt) = 0;
271 
278  virtual void set_range_interval(double v) = 0;
279 
283  virtual void commit() = 0;
284 };
285 
289 class ORCUS_DLLPUBLIC import_pivot_cache_records
290 {
291 public:
292  virtual ~import_pivot_cache_records();
293 
294  virtual void set_record_count(size_t n) = 0;
295 
296  virtual void append_record_value_numeric(double v) = 0;
297 
298  virtual void append_record_value_character(std::string_view s) = 0;
299 
300  virtual void append_record_value_shared_item(size_t index) = 0;
301 
305  virtual void commit_record() = 0;
306 
307  virtual void commit() = 0;
308 };
309 
310 }}}
311 
312 #endif
313 
314 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: import_interface_pivot.hpp:29
virtual void set_field_item_date_time(const date_time_t &dt)=0
virtual void set_field_min_date(const date_time_t &dt)=0
virtual void set_worksheet_source(std::string_view table_name)=0
virtual import_pivot_cache_field_group * create_field_group(size_t base_index)=0
virtual void set_field_item_error(error_value_t ev)=0
virtual void set_field_item_string(std::string_view value)=0
virtual void set_worksheet_source(std::string_view ref, std::string_view sheet_name)=0
virtual void set_field_max_date(const date_time_t &dt)=0
virtual void set_field_name(std::string_view name)=0
Definition: import_interface_pivot.hpp:153
virtual void set_range_end_date(const date_time_t &dt)=0
virtual void set_range_start_date(const date_time_t &dt)=0
virtual void link_base_to_group_items(size_t group_item_index)=0
virtual void set_range_grouping_type(pivot_cache_group_by_t group_by)=0
virtual void set_field_item_string(std::string_view value)=0
Definition: import_interface_pivot.hpp:290
Definition: types.hpp:460