Orcus
import_interface.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 ORCUS_SPREADSHEET_IMPORT_INTERFACE_HPP
9 #define ORCUS_SPREADSHEET_IMPORT_INTERFACE_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_styles;
24 class import_pivot_cache_definition;
25 class import_pivot_cache_records;
26 class import_sheet_view;
27 
71 class ORCUS_DLLPUBLIC import_shared_strings
72 {
73 public:
74  virtual ~import_shared_strings();
75 
86  virtual size_t append(std::string_view s) = 0;
87 
97  virtual size_t add(std::string_view s) = 0;
98 
108  virtual void set_segment_font(size_t font_index) = 0;
109 
115  virtual void set_segment_bold(bool b) = 0;
116 
122  virtual void set_segment_italic(bool b) = 0;
123 
129  virtual void set_segment_font_name(std::string_view s) = 0;
130 
136  virtual void set_segment_font_size(double point) = 0;
137 
146  virtual void set_segment_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue) = 0;
147 
154  virtual void append_segment(std::string_view s) = 0;
155 
165  virtual size_t commit_segments() = 0;
166 };
167 
177 class ORCUS_DLLPUBLIC import_sheet_properties
178 {
179 public:
180  virtual ~import_sheet_properties();
181 
190  virtual void set_column_width(col_t col, col_t col_span, double width, orcus::length_unit_t unit) = 0;
191 
199  virtual void set_column_hidden(col_t col, col_t col_span, bool hidden) = 0;
200 
210  virtual void set_row_height(row_t row, double height, orcus::length_unit_t unit) = 0;
211 
220  virtual void set_row_hidden(row_t row, bool hidden) = 0;
221 
228  virtual void set_merge_cell_range(const range_t& range) = 0;
229 };
230 
265 class ORCUS_DLLPUBLIC import_named_expression
266 {
267 public:
268  virtual ~import_named_expression();
269 
277  virtual void set_base_position(const src_address_t& pos) = 0;
278 
285  virtual void set_named_expression(std::string_view name, std::string_view expression) = 0;
286 
293  virtual void set_named_range(std::string_view name, std::string_view range) = 0;
294 
299  virtual void commit() = 0;
300 };
301 
305 class ORCUS_DLLPUBLIC import_data_table
306 {
307 public:
308  virtual ~import_data_table();
309 
319  virtual void set_type(data_table_type_t type) = 0;
320 
326  virtual void set_range(const range_t& range) = 0;
327 
334  virtual void set_first_reference(std::string_view ref, bool deleted) = 0;
335 
345  virtual void set_second_reference(std::string_view ref, bool deleted) = 0;
346 
351  virtual void commit() = 0;
352 };
353 
384 class ORCUS_DLLPUBLIC import_auto_filter
385 {
386 public:
387  virtual ~import_auto_filter();
388 
395  virtual void set_range(const range_t& range) = 0;
396 
409  virtual void set_column(col_t col) = 0;
410 
417  virtual void append_column_match_value(std::string_view value) = 0;
418 
424  virtual void commit_column() = 0;
425 
429  virtual void commit() = 0;
430 };
431 
475 class ORCUS_DLLPUBLIC import_conditional_format
476 {
477 public:
478  virtual ~import_conditional_format();
479 
484  virtual void set_color(color_elem_t alpha, color_elem_t red,
485  color_elem_t green, color_elem_t blue) = 0;
486 
490  virtual void set_formula(std::string_view formula) = 0;
491 
496  virtual void set_condition_type(condition_type_t type) = 0;
497 
501  virtual void set_date(condition_date_t date) = 0;
502 
506  virtual void commit_condition() = 0;
507 
512  virtual void set_icon_name(std::string_view name) = 0;
513 
518  virtual void set_databar_gradient(bool gradient) = 0;
519 
524  virtual void set_databar_axis(databar_axis_t axis) = 0;
525 
530  virtual void set_databar_color_positive(color_elem_t alpha, color_elem_t red,
531  color_elem_t green, color_elem_t blue) = 0;
532 
537  virtual void set_databar_color_negative(color_elem_t alpha, color_elem_t red,
538  color_elem_t green, color_elem_t blue) = 0;
539 
544  virtual void set_min_databar_length(double length) = 0;
545 
550  virtual void set_max_databar_length(double length) = 0;
551 
556  virtual void set_show_value(bool show) = 0;
557 
562  virtual void set_iconset_reverse(bool reverse) = 0;
563 
567  virtual void set_xf_id(size_t xf) = 0;
568 
573  virtual void set_operator(condition_operator_t condition_type) = 0;
574 
575  virtual void set_type(conditional_format_t type) = 0;
576 
577  virtual void commit_entry() = 0;
578 
579  virtual void set_range(std::string_view range) = 0;
580 
581  virtual void set_range(row_t row_start, col_t col_start,
582  row_t row_end, col_t col_end) = 0;
583 
584  virtual void commit_format() = 0;
585 };
586 
592 class ORCUS_DLLPUBLIC import_table
593 {
594 public:
595  virtual ~import_table();
596 
608 
614  virtual void set_identifier(size_t id) = 0;
615 
621  virtual void set_range(const range_t& range) = 0;
622 
628  virtual void set_totals_row_count(size_t row_count) = 0;
629 
635  virtual void set_name(std::string_view name) = 0;
636 
642  virtual void set_display_name(std::string_view name) = 0;
643 
653  virtual void set_column_count(size_t n) = 0;
654 
660  virtual void set_column_identifier(size_t id) = 0;
661 
667  virtual void set_column_name(std::string_view name) = 0;
668 
674  virtual void set_column_totals_row_label(std::string_view label) = 0;
675 
681  virtual void set_column_totals_row_function(totals_row_function_t func) = 0;
682 
687  virtual void commit_column() = 0;
688 
694  virtual void set_style_name(std::string_view name) = 0;
695 
703  virtual void set_style_show_first_column(bool b) = 0;
704 
712  virtual void set_style_show_last_column(bool b) = 0;
713 
719  virtual void set_style_show_row_stripes(bool b) = 0;
720 
726  virtual void set_style_show_column_stripes(bool b) = 0;
727 
731  virtual void commit() = 0;
732 };
733 
739 class ORCUS_DLLPUBLIC import_formula
740 {
741 public:
742  virtual ~import_formula();
743 
750  virtual void set_position(row_t row, col_t col) = 0;
751 
759  virtual void set_formula(formula_grammar_t grammar, std::string_view formula) = 0;
760 
772  virtual void set_shared_formula_index(size_t index) = 0;
773 
779  virtual void set_result_string(std::string_view value) = 0;
780 
786  virtual void set_result_value(double value) = 0;
787 
793  virtual void set_result_bool(bool value) = 0;
794 
798  virtual void set_result_empty() = 0;
799 
803  virtual void commit() = 0;
804 };
805 
811 class ORCUS_DLLPUBLIC import_array_formula
812 {
813 public:
814  virtual ~import_array_formula();
815 
821  virtual void set_range(const range_t& range) = 0;
822 
830  virtual void set_formula(formula_grammar_t grammar, std::string_view formula) = 0;
831 
839  virtual void set_result_string(row_t row, col_t col, std::string_view value) = 0;
840 
848  virtual void set_result_value(row_t row, col_t col, double value) = 0;
849 
857  virtual void set_result_bool(row_t row, col_t col, bool value) = 0;
858 
866  virtual void set_result_empty(row_t row, col_t col) = 0;
867 
872  virtual void commit() = 0;
873 };
874 
878 class ORCUS_DLLPUBLIC import_sheet
879 {
880 public:
881  virtual ~import_sheet();
882 
891 
899 
912 
923 
934 
943 
951 
961 
969 
978  virtual void set_auto(row_t row, col_t col, std::string_view s) = 0;
979 
987  virtual void set_string(row_t row, col_t col, string_id_t sindex) = 0;
988 
996  virtual void set_value(row_t row, col_t col, double value) = 0;
997 
1005  virtual void set_bool(row_t row, col_t col, bool value) = 0;
1006 
1020  virtual void set_date_time(
1021  row_t row, col_t col,
1022  int year, int month, int day, int hour, int minute, double second) = 0;
1023 
1035  virtual void set_format(row_t row, col_t col, size_t xf_index) = 0;
1036 
1047  virtual void set_format(row_t row_start, col_t col_start,
1048  row_t row_end, col_t col_end, size_t xf_index) = 0;
1049 
1062  virtual void set_column_format(col_t col, col_t col_span, std::size_t xf_index) = 0;
1063 
1074  virtual void set_row_format(row_t row, std::size_t xf_index) = 0;
1075 
1085  virtual void fill_down_cells(row_t src_row, col_t src_col, row_t range_size) = 0;
1086 
1093  virtual range_size_t get_sheet_size() const = 0;
1094 };
1095 
1100 class ORCUS_DLLPUBLIC import_global_settings
1101 {
1102 public:
1103  virtual ~import_global_settings();
1104 
1115  virtual void set_origin_date(int year, int month, int day) = 0;
1116 
1131  virtual void set_default_formula_grammar(formula_grammar_t grammar) = 0;
1132 
1139  virtual formula_grammar_t get_default_formula_grammar() const = 0;
1140 
1146  virtual void set_character_set(character_set_t charset) = 0;
1147 };
1148 
1156 class ORCUS_DLLPUBLIC import_reference_resolver
1157 {
1158 public:
1159  virtual ~import_reference_resolver();
1160 
1172  virtual src_address_t resolve_address(std::string_view address) = 0;
1173 
1186  virtual src_range_t resolve_range(std::string_view range) = 0;
1187 };
1188 
1198 class ORCUS_DLLPUBLIC import_factory
1199 {
1200 public:
1201  virtual ~import_factory();
1202 
1213 
1223 
1234 
1243 
1254  virtual import_reference_resolver* get_reference_resolver(formula_ref_context_t cxt);
1255 
1268  pivot_cache_id_t cache_id);
1269 
1280  pivot_cache_id_t cache_id);
1281 
1297  virtual import_sheet* append_sheet(sheet_t sheet_index, std::string_view name) = 0;
1298 
1309  virtual import_sheet* get_sheet(std::string_view name) = 0;
1310 
1319  virtual import_sheet* get_sheet(sheet_t sheet_index) = 0;
1320 
1325  virtual void finalize() = 0;
1326 };
1327 
1328 }}}
1329 
1330 #endif
1331 
1332 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: import_interface.hpp:812
virtual void set_result_value(row_t row, col_t col, double value)=0
virtual void set_range(const range_t &range)=0
virtual void set_result_string(row_t row, col_t col, std::string_view value)=0
virtual void set_result_empty(row_t row, col_t col)=0
virtual void set_result_bool(row_t row, col_t col, bool value)=0
virtual void set_formula(formula_grammar_t grammar, std::string_view formula)=0
Definition: import_interface.hpp:385
virtual void set_range(const range_t &range)=0
virtual void append_column_match_value(std::string_view value)=0
Definition: import_interface.hpp:476
virtual void set_databar_gradient(bool gradient)=0
virtual void set_operator(condition_operator_t condition_type)=0
virtual void set_formula(std::string_view formula)=0
virtual void set_condition_type(condition_type_t type)=0
virtual void set_databar_color_positive(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
virtual void set_max_databar_length(double length)=0
virtual void set_min_databar_length(double length)=0
virtual void set_databar_axis(databar_axis_t axis)=0
virtual void set_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
virtual void set_date(condition_date_t date)=0
virtual void set_icon_name(std::string_view name)=0
virtual void set_databar_color_negative(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
Definition: import_interface.hpp:306
virtual void set_type(data_table_type_t type)=0
virtual void set_second_reference(std::string_view ref, bool deleted)=0
virtual void set_first_reference(std::string_view ref, bool deleted)=0
virtual void set_range(const range_t &range)=0
Definition: import_interface.hpp:1199
virtual import_pivot_cache_records * create_pivot_cache_records(pivot_cache_id_t cache_id)
virtual import_global_settings * get_global_settings()
virtual import_shared_strings * get_shared_strings()
virtual import_reference_resolver * get_reference_resolver(formula_ref_context_t cxt)
virtual import_styles * get_styles()
virtual import_pivot_cache_definition * create_pivot_cache_definition(pivot_cache_id_t cache_id)
virtual import_sheet * append_sheet(sheet_t sheet_index, std::string_view name)=0
virtual import_sheet * get_sheet(sheet_t sheet_index)=0
virtual import_named_expression * get_named_expression()
virtual import_sheet * get_sheet(std::string_view name)=0
Definition: import_interface.hpp:740
virtual void set_formula(formula_grammar_t grammar, std::string_view formula)=0
virtual void set_result_bool(bool value)=0
virtual void set_shared_formula_index(size_t index)=0
virtual void set_result_value(double value)=0
virtual void set_position(row_t row, col_t col)=0
virtual void set_result_string(std::string_view value)=0
Definition: import_interface.hpp:1101
virtual void set_character_set(character_set_t charset)=0
virtual formula_grammar_t get_default_formula_grammar() const =0
virtual void set_origin_date(int year, int month, int day)=0
virtual void set_default_formula_grammar(formula_grammar_t grammar)=0
Definition: import_interface.hpp:266
virtual void set_named_range(std::string_view name, std::string_view range)=0
virtual void set_named_expression(std::string_view name, std::string_view expression)=0
virtual void set_base_position(const src_address_t &pos)=0
Definition: import_interface_pivot.hpp:29
Definition: import_interface_pivot.hpp:293
Definition: import_interface.hpp:1157
virtual src_range_t resolve_range(std::string_view range)=0
virtual src_address_t resolve_address(std::string_view address)=0
Definition: import_interface.hpp:72
virtual size_t append(std::string_view s)=0
virtual void set_segment_font_size(double point)=0
virtual void set_segment_font_color(color_elem_t alpha, color_elem_t red, color_elem_t green, color_elem_t blue)=0
virtual size_t add(std::string_view s)=0
virtual void append_segment(std::string_view s)=0
virtual void set_segment_font(size_t font_index)=0
virtual void set_segment_font_name(std::string_view s)=0
Definition: import_interface.hpp:178
virtual void set_row_hidden(row_t row, bool hidden)=0
virtual void set_merge_cell_range(const range_t &range)=0
virtual void set_column_hidden(col_t col, col_t col_span, bool hidden)=0
virtual void set_row_height(row_t row, double height, orcus::length_unit_t unit)=0
virtual void set_column_width(col_t col, col_t col_span, double width, orcus::length_unit_t unit)=0
Definition: import_interface_view.hpp:24
Definition: import_interface.hpp:879
virtual void set_string(row_t row, col_t col, string_id_t sindex)=0
virtual void set_column_format(col_t col, col_t col_span, std::size_t xf_index)=0
virtual void set_bool(row_t row, col_t col, bool value)=0
virtual import_formula * get_formula()
virtual range_size_t get_sheet_size() const =0
virtual import_named_expression * get_named_expression()
virtual import_table * get_table()
virtual void set_format(row_t row_start, col_t col_start, row_t row_end, col_t col_end, size_t xf_index)=0
virtual void set_auto(row_t row, col_t col, std::string_view s)=0
virtual import_array_formula * get_array_formula()
virtual import_sheet_properties * get_sheet_properties()
virtual import_data_table * get_data_table()
virtual void fill_down_cells(row_t src_row, col_t src_col, row_t range_size)=0
virtual void set_value(row_t row, col_t col, double value)=0
virtual import_conditional_format * get_conditional_format()
virtual import_auto_filter * get_auto_filter()
virtual void set_row_format(row_t row, std::size_t xf_index)=0
virtual void set_format(row_t row, col_t col, size_t xf_index)=0
virtual import_sheet_view * get_sheet_view()
virtual void set_date_time(row_t row, col_t col, int year, int month, int day, int hour, int minute, double second)=0
Definition: import_interface_styles.hpp:53
Definition: import_interface.hpp:593
virtual void set_totals_row_count(size_t row_count)=0
virtual void set_column_totals_row_label(std::string_view label)=0
virtual void set_style_show_first_column(bool b)=0
virtual import_auto_filter * get_auto_filter()
virtual void set_name(std::string_view name)=0
virtual void set_column_identifier(size_t id)=0
virtual void set_style_show_last_column(bool b)=0
virtual void set_column_totals_row_function(totals_row_function_t func)=0
virtual void set_column_name(std::string_view name)=0
virtual void set_column_count(size_t n)=0
virtual void set_range(const range_t &range)=0
virtual void set_style_show_row_stripes(bool b)=0
virtual void set_style_show_column_stripes(bool b)=0
virtual void set_style_name(std::string_view name)=0
virtual void set_display_name(std::string_view name)=0
virtual void set_identifier(size_t id)=0
Definition: types.hpp:590
Definition: types.hpp:600
Definition: types.hpp:610
Definition: types.hpp:621