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
21namespace orcus { namespace spreadsheet { namespace iface {
22
23class import_pivot_cache_field_group;
24
28class ORCUS_DLLPUBLIC import_pivot_cache_definition
29{
30public:
32
46 const char* ref, size_t n_ref, const char* sheet_name, size_t n_sheet_name) = 0;
47
53 virtual void set_field_count(size_t n) = 0;
54
61 virtual void set_field_name(const char* p, size_t n) = 0;
62
68 virtual void set_field_min_value(double v) = 0;
69
75 virtual void set_field_max_value(double v) = 0;
76
82 virtual void set_field_min_date(const date_time_t& dt) = 0;
83
89 virtual void set_field_max_date(const date_time_t& dt) = 0;
90
101 virtual import_pivot_cache_field_group* create_field_group(size_t base_index) = 0;
102
106 virtual void commit_field() = 0;
107
114 virtual void set_field_item_string(const char* p, size_t n) = 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
153{
154public:
156
169 virtual void link_base_to_group_items(size_t group_item_index) = 0;
170
181 virtual void set_field_item_string(const char* p, size_t n) = 0;
182
192 virtual void set_field_item_numeric(double v) = 0;
193
197 virtual void commit_field_item() = 0;
198
207 virtual void set_range_grouping_type(pivot_cache_group_by_t group_by) = 0;
208
219 virtual void set_range_auto_start(bool b) = 0;
220
231 virtual void set_range_auto_end(bool b) = 0;
232
241 virtual void set_range_start_number(double v) = 0;
242
251 virtual void set_range_end_number(double v) = 0;
252
261 virtual void set_range_start_date(const date_time_t& dt) = 0;
262
271 virtual void set_range_end_date(const date_time_t& dt) = 0;
272
279 virtual void set_range_interval(double v) = 0;
280
284 virtual void commit() = 0;
285};
286
290class ORCUS_DLLPUBLIC import_pivot_cache_records
291{
292public:
294
295 virtual void set_record_count(size_t n) = 0;
296
297 virtual void append_record_value_numeric(double v) = 0;
298
299 virtual void append_record_value_character(const char* p, size_t n) = 0;
300
301 virtual void append_record_value_shared_item(size_t index) = 0;
302
306 virtual void commit_record() = 0;
307
308 virtual void commit() = 0;
309};
310
311}}}
312
313#endif
314
315/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: import_interface_pivot.hpp:29
virtual void set_field_item_string(const char *p, size_t n)=0
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_field_name(const char *p, size_t n)=0
virtual void set_worksheet_source(const char *ref, size_t n_ref, const char *sheet_name, size_t n_sheet_name)=0
virtual void set_field_item_error(error_value_t ev)=0
virtual import_pivot_cache_field_group * create_field_group(size_t base_index)=0
virtual void set_field_max_date(const date_time_t &dt)=0
Definition: import_interface_pivot.hpp:153
virtual void set_field_item_string(const char *p, size_t n)=0
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
Definition: import_interface_pivot.hpp:291
Definition: types.hpp:420