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 "types.hpp"
14 #include "../types.hpp"
15 #include "../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 
42  virtual void set_worksheet_source(std::string_view ref, std::string_view sheet_name) = 0;
43 
50  virtual void set_worksheet_source(std::string_view table_name) = 0;
51 
57  virtual void set_field_count(size_t n) = 0;
58 
64  virtual void set_field_name(std::string_view name) = 0;
65 
71  virtual void set_field_min_value(double v) = 0;
72 
78  virtual void set_field_max_value(double v) = 0;
79 
85  virtual void set_field_min_date(const date_time_t& dt) = 0;
86 
92  virtual void set_field_max_date(const date_time_t& dt) = 0;
93 
105  virtual import_pivot_cache_field_group* start_field_group(size_t base_index) = 0;
106 
110  virtual void commit_field() = 0;
111 
117  virtual void set_field_item_string(std::string_view value) = 0;
118 
124  virtual void set_field_item_numeric(double v) = 0;
125 
131  virtual void set_field_item_date_time(const date_time_t& dt) = 0;
132 
138  virtual void set_field_item_error(error_value_t ev) = 0;
139 
144  virtual void commit_field_item() = 0;
145 
149  virtual void commit() = 0;
150 };
151 
155 class ORCUS_DLLPUBLIC import_pivot_cache_field_group
156 {
157 public:
159 
172  virtual void link_base_to_group_items(size_t group_item_index) = 0;
173 
183  virtual void set_field_item_string(std::string_view value) = 0;
184 
194  virtual void set_field_item_numeric(double v) = 0;
195 
199  virtual void commit_field_item() = 0;
200 
209  virtual void set_range_grouping_type(pivot_cache_group_by_t group_by) = 0;
210 
221  virtual void set_range_auto_start(bool b) = 0;
222 
233  virtual void set_range_auto_end(bool b) = 0;
234 
243  virtual void set_range_start_number(double v) = 0;
244 
253  virtual void set_range_end_number(double v) = 0;
254 
263  virtual void set_range_start_date(const date_time_t& dt) = 0;
264 
273  virtual void set_range_end_date(const date_time_t& dt) = 0;
274 
281  virtual void set_range_interval(double v) = 0;
282 
286  virtual void commit() = 0;
287 };
288 
292 class ORCUS_DLLPUBLIC import_pivot_cache_records
293 {
294 public:
295  virtual ~import_pivot_cache_records();
296 
306  virtual void set_record_count(size_t n) = 0;
307 
314  virtual void append_record_value_numeric(double v) = 0;
315 
322  virtual void append_record_value_character(std::string_view s) = 0;
323 
332  virtual void append_record_value_shared_item(size_t index) = 0;
333 
339  virtual void commit_record() = 0;
340 
344  virtual void commit() = 0;
345 };
346 
347 }}}
348 
349 #endif
350 
351 /* 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 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
virtual import_pivot_cache_field_group * start_field_group(size_t base_index)=0
Definition: import_interface_pivot.hpp:156
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:293
virtual void append_record_value_character(std::string_view s)=0
virtual void append_record_value_shared_item(size_t index)=0
Definition: types.hpp:527