summaryrefslogtreecommitdiffstats
path: root/doc/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'doc/cpp')
-rw-r--r--doc/cpp/core/config.rst13
-rw-r--r--doc/cpp/core/import-filter/csv.rst6
-rw-r--r--doc/cpp/core/import-filter/detect.rst5
-rw-r--r--doc/cpp/core/import-filter/gnumeric.rst6
-rw-r--r--doc/cpp/core/import-filter/index.rst20
-rw-r--r--doc/cpp/core/import-filter/json.rst6
-rw-r--r--doc/cpp/core/import-filter/ods.rst9
-rw-r--r--doc/cpp/core/import-filter/xls_xml.rst6
-rw-r--r--doc/cpp/core/import-filter/xlsx.rst9
-rw-r--r--doc/cpp/core/import-filter/xml.rst6
-rw-r--r--doc/cpp/core/index.rst25
-rw-r--r--doc/cpp/core/interface/global.rst12
-rw-r--r--doc/cpp/core/interface/index.rst9
-rw-r--r--doc/cpp/core/interface/spreadsheet/document.rst21
-rw-r--r--doc/cpp/core/interface/spreadsheet/document_export.rst13
-rw-r--r--doc/cpp/core/interface/spreadsheet/index.rst15
-rw-r--r--doc/cpp/core/interface/spreadsheet/pivot.rst14
-rw-r--r--doc/cpp/core/interface/spreadsheet/sheet.rst30
-rw-r--r--doc/cpp/core/interface/spreadsheet/styles.rst30
-rw-r--r--doc/cpp/core/interface/spreadsheet/view.rst9
-rw-r--r--doc/cpp/core/tree-doc/index.rst13
-rw-r--r--doc/cpp/core/tree-doc/json.rst36
-rw-r--r--doc/cpp/core/tree-doc/yaml.rst19
-rw-r--r--doc/cpp/core/types/core.rst68
-rw-r--r--doc/cpp/core/types/index.rst12
-rw-r--r--doc/cpp/core/types/view.rst20
-rw-r--r--doc/cpp/core/utils.rst19
-rw-r--r--doc/cpp/index.rst10
-rw-r--r--doc/cpp/parser/archive.rst21
-rw-r--r--doc/cpp/parser/base64.rst5
-rw-r--r--doc/cpp/parser/css.rst84
-rw-r--r--doc/cpp/parser/csv.rst17
-rw-r--r--doc/cpp/parser/exception.rst37
-rw-r--r--doc/cpp/parser/index.rst24
-rw-r--r--doc/cpp/parser/json.rst14
-rw-r--r--doc/cpp/parser/stream.rst24
-rw-r--r--doc/cpp/parser/types.rst43
-rw-r--r--doc/cpp/parser/util.rst13
-rw-r--r--doc/cpp/parser/xml.rst65
-rw-r--r--doc/cpp/parser/xml_writer.rst7
-rw-r--r--doc/cpp/parser/yaml.rst14
-rw-r--r--doc/cpp/spreadsheet-doc/document.rst9
-rw-r--r--doc/cpp/spreadsheet-doc/import-export.rst50
-rw-r--r--doc/cpp/spreadsheet-doc/index.rst21
-rw-r--r--doc/cpp/spreadsheet-doc/pivot.rst21
-rw-r--r--doc/cpp/spreadsheet-doc/shared-strings.rst10
-rw-r--r--doc/cpp/spreadsheet-doc/sheet.rst6
-rw-r--r--doc/cpp/spreadsheet-doc/styles.rst30
-rw-r--r--doc/cpp/spreadsheet-doc/table.rst9
-rw-r--r--doc/cpp/spreadsheet-doc/types.rst5
-rw-r--r--doc/cpp/spreadsheet-doc/view.rst9
51 files changed, 999 insertions, 0 deletions
diff --git a/doc/cpp/core/config.rst b/doc/cpp/core/config.rst
new file mode 100644
index 0000000..a5a1f50
--- /dev/null
+++ b/doc/cpp/core/config.rst
@@ -0,0 +1,13 @@
+
+Configurations
+==============
+
+.. doxygenstruct:: orcus::config
+ :members:
+
+.. doxygenstruct:: orcus::json_config
+ :members:
+
+.. doxygenstruct:: orcus::yaml_config
+ :members:
+
diff --git a/doc/cpp/core/import-filter/csv.rst b/doc/cpp/core/import-filter/csv.rst
new file mode 100644
index 0000000..bee2671
--- /dev/null
+++ b/doc/cpp/core/import-filter/csv.rst
@@ -0,0 +1,6 @@
+
+Comma-separated values (CSV)
+============================
+
+.. doxygenclass:: orcus::orcus_csv
+ :members:
diff --git a/doc/cpp/core/import-filter/detect.rst b/doc/cpp/core/import-filter/detect.rst
new file mode 100644
index 0000000..09d6041
--- /dev/null
+++ b/doc/cpp/core/import-filter/detect.rst
@@ -0,0 +1,5 @@
+
+Format detection
+================
+
+.. doxygenfunction:: orcus::detect
diff --git a/doc/cpp/core/import-filter/gnumeric.rst b/doc/cpp/core/import-filter/gnumeric.rst
new file mode 100644
index 0000000..23a2bf9
--- /dev/null
+++ b/doc/cpp/core/import-filter/gnumeric.rst
@@ -0,0 +1,6 @@
+
+Gnumeric XML
+============
+
+.. doxygenclass:: orcus::orcus_gnumeric
+ :members:
diff --git a/doc/cpp/core/import-filter/index.rst b/doc/cpp/core/import-filter/index.rst
new file mode 100644
index 0000000..0b6befa
--- /dev/null
+++ b/doc/cpp/core/import-filter/index.rst
@@ -0,0 +1,20 @@
+
+Import filters
+==============
+
+.. toctree::
+ :maxdepth: 1
+
+ csv.rst
+ ods.rst
+ xls_xml.rst
+ xlsx.rst
+ gnumeric.rst
+ xml.rst
+ json.rst
+ detect.rst
+
+
+
+
+
diff --git a/doc/cpp/core/import-filter/json.rst b/doc/cpp/core/import-filter/json.rst
new file mode 100644
index 0000000..eb55810
--- /dev/null
+++ b/doc/cpp/core/import-filter/json.rst
@@ -0,0 +1,6 @@
+
+Generic JSON
+============
+
+.. doxygenclass:: orcus::orcus_json
+ :members:
diff --git a/doc/cpp/core/import-filter/ods.rst b/doc/cpp/core/import-filter/ods.rst
new file mode 100644
index 0000000..527b064
--- /dev/null
+++ b/doc/cpp/core/import-filter/ods.rst
@@ -0,0 +1,9 @@
+
+Open document spreadsheet
+=========================
+
+.. doxygenclass:: orcus::orcus_ods
+ :members:
+
+.. doxygenclass:: orcus::import_ods
+ :members:
diff --git a/doc/cpp/core/import-filter/xls_xml.rst b/doc/cpp/core/import-filter/xls_xml.rst
new file mode 100644
index 0000000..48a5371
--- /dev/null
+++ b/doc/cpp/core/import-filter/xls_xml.rst
@@ -0,0 +1,6 @@
+
+Microsoft Excel 2003 XML
+========================
+
+.. doxygenclass:: orcus::orcus_xls_xml
+ :members:
diff --git a/doc/cpp/core/import-filter/xlsx.rst b/doc/cpp/core/import-filter/xlsx.rst
new file mode 100644
index 0000000..4c468ca
--- /dev/null
+++ b/doc/cpp/core/import-filter/xlsx.rst
@@ -0,0 +1,9 @@
+
+Microsoft Excel 2007 XML
+========================
+
+.. doxygenclass:: orcus::orcus_xlsx
+ :members:
+
+.. doxygenclass:: orcus::import_xlsx
+ :members:
diff --git a/doc/cpp/core/import-filter/xml.rst b/doc/cpp/core/import-filter/xml.rst
new file mode 100644
index 0000000..67d9fd9
--- /dev/null
+++ b/doc/cpp/core/import-filter/xml.rst
@@ -0,0 +1,6 @@
+
+Generic XML
+===========
+
+.. doxygenclass:: orcus::orcus_xml
+ :members:
diff --git a/doc/cpp/core/index.rst b/doc/cpp/core/index.rst
new file mode 100644
index 0000000..3bb0623
--- /dev/null
+++ b/doc/cpp/core/index.rst
@@ -0,0 +1,25 @@
+
+Core
+====
+
+This section presents the API's from the ``liborcus`` part of this library,
+which contains the import filters that process various file formats containing
+spreadsheet document contents or contents that can be loaded into spreadsheet
+documents. It consists of the filter classes that parse the file streams and
+put their contents into the document store via a set of pre-defined interfaces,
+and these interfaces themselves.
+
+This module does not contain the document store itself, which is provided by
+the ``liborcus-spreadsheet-model`` module. Alternatively, the user can
+provide their own document store implementation wrapped inside a factory that
+provides all required interfaces.
+
+.. toctree::
+ :maxdepth: 1
+
+ import-filter/index.rst
+ tree-doc/index.rst
+ interface/index.rst
+ types/index.rst
+ utils.rst
+ config.rst
diff --git a/doc/cpp/core/interface/global.rst b/doc/cpp/core/interface/global.rst
new file mode 100644
index 0000000..0e73e47
--- /dev/null
+++ b/doc/cpp/core/interface/global.rst
@@ -0,0 +1,12 @@
+
+Global interfaces
+=================
+
+The following global interfaces are used to abstract the concrete filter and
+document classes from orcus's CLI framework.
+
+.. doxygenclass:: orcus::iface::import_filter
+ :members:
+
+.. doxygenclass:: orcus::iface::document_dumper
+ :members:
diff --git a/doc/cpp/core/interface/index.rst b/doc/cpp/core/interface/index.rst
new file mode 100644
index 0000000..92c22d0
--- /dev/null
+++ b/doc/cpp/core/interface/index.rst
@@ -0,0 +1,9 @@
+
+Interfaces
+==========
+
+.. toctree::
+ :maxdepth: 1
+
+ global.rst
+ spreadsheet/index.rst
diff --git a/doc/cpp/core/interface/spreadsheet/document.rst b/doc/cpp/core/interface/spreadsheet/document.rst
new file mode 100644
index 0000000..95eed76
--- /dev/null
+++ b/doc/cpp/core/interface/spreadsheet/document.rst
@@ -0,0 +1,21 @@
+
+Document import
+===============
+
+The following interfaces handle importing of contents and properties related to
+the entire document store.
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_factory
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_global_settings
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_shared_strings
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_named_expression
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_reference_resolver
+ :members:
diff --git a/doc/cpp/core/interface/spreadsheet/document_export.rst b/doc/cpp/core/interface/spreadsheet/document_export.rst
new file mode 100644
index 0000000..984c059
--- /dev/null
+++ b/doc/cpp/core/interface/spreadsheet/document_export.rst
@@ -0,0 +1,13 @@
+
+Document export
+===============
+
+The following interfaces handle exporting of document content. Support for exporting
+is still very limited in orcus. It is currently used only by :cpp:class:`~orcus::orcus_xml`
+to re-export the content of an XML-mapped cell range as an XML output.
+
+.. doxygenclass:: orcus::spreadsheet::iface::export_sheet
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::export_factory
+ :members:
diff --git a/doc/cpp/core/interface/spreadsheet/index.rst b/doc/cpp/core/interface/spreadsheet/index.rst
new file mode 100644
index 0000000..4254c22
--- /dev/null
+++ b/doc/cpp/core/interface/spreadsheet/index.rst
@@ -0,0 +1,15 @@
+
+.. _spreadsheet-interfaces:
+
+Spreadsheet interfaces
+======================
+
+.. toctree::
+ :maxdepth: 1
+
+ document.rst
+ sheet.rst
+ pivot.rst
+ styles.rst
+ view.rst
+ document_export.rst
diff --git a/doc/cpp/core/interface/spreadsheet/pivot.rst b/doc/cpp/core/interface/spreadsheet/pivot.rst
new file mode 100644
index 0000000..28d8df7
--- /dev/null
+++ b/doc/cpp/core/interface/spreadsheet/pivot.rst
@@ -0,0 +1,14 @@
+
+Pivot table import
+==================
+
+The folloiwng interfaces handle importing of contents related to pivot tables.
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_pivot_cache_definition
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_pivot_cache_field_group
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_pivot_cache_records
+ :members:
diff --git a/doc/cpp/core/interface/spreadsheet/sheet.rst b/doc/cpp/core/interface/spreadsheet/sheet.rst
new file mode 100644
index 0000000..6482ac6
--- /dev/null
+++ b/doc/cpp/core/interface/spreadsheet/sheet.rst
@@ -0,0 +1,30 @@
+
+Sheet import
+============
+
+The following interfaces handle importing of contents and properties related to
+individual sheets.
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_sheet
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_sheet_properties
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_data_table
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_auto_filter
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_conditional_format
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_table
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_formula
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_array_formula
+ :members:
diff --git a/doc/cpp/core/interface/spreadsheet/styles.rst b/doc/cpp/core/interface/spreadsheet/styles.rst
new file mode 100644
index 0000000..1c4f9a8
--- /dev/null
+++ b/doc/cpp/core/interface/spreadsheet/styles.rst
@@ -0,0 +1,30 @@
+
+Styles import
+=============
+
+The folloiwng interfaces handle importing of properties related to various
+formatting styles.
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_styles
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_font_style
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_fill_style
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_border_style
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_cell_protection
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_number_format
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_xf
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_cell_style
+ :members:
diff --git a/doc/cpp/core/interface/spreadsheet/view.rst b/doc/cpp/core/interface/spreadsheet/view.rst
new file mode 100644
index 0000000..21f393e
--- /dev/null
+++ b/doc/cpp/core/interface/spreadsheet/view.rst
@@ -0,0 +1,9 @@
+
+View properties import
+======================
+
+The following interface handles importing of view properties. View properties
+affect how the content of a document may get displayed.
+
+.. doxygenclass:: orcus::spreadsheet::iface::import_sheet_view
+ :members:
diff --git a/doc/cpp/core/tree-doc/index.rst b/doc/cpp/core/tree-doc/index.rst
new file mode 100644
index 0000000..54b7a68
--- /dev/null
+++ b/doc/cpp/core/tree-doc/index.rst
@@ -0,0 +1,13 @@
+
+Document tree
+=============
+
+This section presents the API's for tree-structured documents, namely JSON and YAML
+documents.
+
+
+.. toctree::
+ :maxdepth: 1
+
+ json.rst
+ yaml.rst
diff --git a/doc/cpp/core/tree-doc/json.rst b/doc/cpp/core/tree-doc/json.rst
new file mode 100644
index 0000000..390ac37
--- /dev/null
+++ b/doc/cpp/core/tree-doc/json.rst
@@ -0,0 +1,36 @@
+
+JSON document tree
+==================
+
+Document tree
+-------------
+
+.. doxygenclass:: orcus::json::document_tree
+ :members:
+
+.. doxygenclass:: orcus::json::const_node
+ :members:
+
+.. doxygenclass:: orcus::json::node
+ :members:
+
+.. doxygenclass:: orcus::json::array
+ :members:
+
+.. doxygenclass:: orcus::json::object
+ :members:
+
+.. doxygenclass:: orcus::json::detail::init::node
+ :members:
+
+.. doxygenenum:: orcus::json::node_t
+ :project: orcus
+
+Exceptions
+----------
+
+.. doxygenclass:: orcus::json::document_error
+ :members:
+
+.. doxygenclass:: orcus::json::key_value_error
+ :members:
diff --git a/doc/cpp/core/tree-doc/yaml.rst b/doc/cpp/core/tree-doc/yaml.rst
new file mode 100644
index 0000000..547440b
--- /dev/null
+++ b/doc/cpp/core/tree-doc/yaml.rst
@@ -0,0 +1,19 @@
+
+YAML document tree
+==================
+
+Document tree
+-------------
+
+.. doxygenclass:: orcus::yaml::document_tree
+ :members:
+
+.. doxygenclass:: orcus::yaml::const_node
+ :members:
+
+Exceptions
+----------
+
+.. doxygenclass:: orcus::yaml::document_error
+ :members:
+
diff --git a/doc/cpp/core/types/core.rst b/doc/cpp/core/types/core.rst
new file mode 100644
index 0000000..1decff2
--- /dev/null
+++ b/doc/cpp/core/types/core.rst
@@ -0,0 +1,68 @@
+
+Core types
+==========
+
+Integral types
+--------------
+
+.. doxygentypedef:: orcus::spreadsheet::row_t
+.. doxygentypedef:: orcus::spreadsheet::col_t
+.. doxygentypedef:: orcus::spreadsheet::sheet_t
+.. doxygentypedef:: orcus::spreadsheet::color_elem_t
+.. doxygentypedef:: orcus::spreadsheet::col_width_t
+.. doxygentypedef:: orcus::spreadsheet::row_height_t
+.. doxygentypedef:: orcus::spreadsheet::pivot_cache_id_t
+
+
+Structs
+-------
+
+.. doxygenstruct:: orcus::spreadsheet::address_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::range_size_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::range_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::src_address_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::src_range_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::color_rgb_t
+ :members:
+
+
+Enums
+-----
+
+.. doxygenenum:: orcus::spreadsheet::error_value_t
+.. doxygenenum:: orcus::spreadsheet::border_direction_t
+.. doxygenenum:: orcus::spreadsheet::border_style_t
+.. doxygenenum:: orcus::spreadsheet::fill_pattern_t
+.. doxygenenum:: orcus::spreadsheet::strikethrough_style_t
+.. doxygenenum:: orcus::spreadsheet::strikethrough_type_t
+.. doxygenenum:: orcus::spreadsheet::strikethrough_width_t
+.. doxygenenum:: orcus::spreadsheet::strikethrough_text_t
+.. doxygenenum:: orcus::spreadsheet::formula_grammar_t
+.. doxygenenum:: orcus::spreadsheet::formula_t
+.. doxygenenum:: orcus::spreadsheet::formula_ref_context_t
+.. doxygenenum:: orcus::spreadsheet::formula_error_policy_t
+.. doxygenenum:: orcus::spreadsheet::underline_t
+.. doxygenenum:: orcus::spreadsheet::underline_width_t
+.. doxygenenum:: orcus::spreadsheet::underline_mode_t
+.. doxygenenum:: orcus::spreadsheet::underline_type_t
+.. doxygenenum:: orcus::spreadsheet::hor_alignment_t
+.. doxygenenum:: orcus::spreadsheet::ver_alignment_t
+.. doxygenenum:: orcus::spreadsheet::xf_category_t
+.. doxygenenum:: orcus::spreadsheet::data_table_type_t
+.. doxygenenum:: orcus::spreadsheet::totals_row_function_t
+.. doxygenenum:: orcus::spreadsheet::conditional_format_t
+.. doxygenenum:: orcus::spreadsheet::condition_operator_t
+.. doxygenenum:: orcus::spreadsheet::condition_type_t
+.. doxygenenum:: orcus::spreadsheet::condition_date_t
+.. doxygenenum:: orcus::spreadsheet::databar_axis_t
+.. doxygenenum:: orcus::spreadsheet::pivot_cache_group_by_t
diff --git a/doc/cpp/core/types/index.rst b/doc/cpp/core/types/index.rst
new file mode 100644
index 0000000..a79f3f8
--- /dev/null
+++ b/doc/cpp/core/types/index.rst
@@ -0,0 +1,12 @@
+
+Types
+=====
+
+These types are used throughout the spreadsheet import and export interfaces.
+
+.. toctree::
+ :maxdepth: 1
+
+ core.rst
+ view.rst
+
diff --git a/doc/cpp/core/types/view.rst b/doc/cpp/core/types/view.rst
new file mode 100644
index 0000000..a542a62
--- /dev/null
+++ b/doc/cpp/core/types/view.rst
@@ -0,0 +1,20 @@
+
+View types
+==========
+
+Structs
+-------
+
+.. doxygenstruct:: orcus::spreadsheet::split_pane_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::frozen_pane_t
+ :members:
+
+
+Enums
+-----
+
+.. doxygenenum:: orcus::spreadsheet::sheet_pane_t
+.. doxygenenum:: orcus::spreadsheet::pane_state_t
+
diff --git a/doc/cpp/core/utils.rst b/doc/cpp/core/utils.rst
new file mode 100644
index 0000000..480ae87
--- /dev/null
+++ b/doc/cpp/core/utils.rst
@@ -0,0 +1,19 @@
+
+Utilities
+=========
+
+Special values
+--------------
+
+.. doxygenfunction:: orcus::spreadsheet::get_default_column_width
+.. doxygenfunction:: orcus::spreadsheet::get_default_row_height
+
+Type conversion
+---------------
+
+.. doxygenfunction:: orcus::spreadsheet::to_totals_row_function_enum
+.. doxygenfunction:: orcus::spreadsheet::to_pivot_cache_group_by_enum
+.. doxygenfunction:: orcus::spreadsheet::to_error_value_enum
+.. doxygenfunction:: orcus::spreadsheet::to_color_rgb
+.. doxygenfunction:: orcus::spreadsheet::to_rc_address
+.. doxygenfunction:: orcus::spreadsheet::to_rc_range
diff --git a/doc/cpp/index.rst b/doc/cpp/index.rst
new file mode 100644
index 0000000..afb4909
--- /dev/null
+++ b/doc/cpp/index.rst
@@ -0,0 +1,10 @@
+
+C++ API reference
+=================
+
+.. toctree::
+ :maxdepth: 2
+
+ parser/index.rst
+ core/index.rst
+ spreadsheet-doc/index.rst
diff --git a/doc/cpp/parser/archive.rst b/doc/cpp/parser/archive.rst
new file mode 100644
index 0000000..e5f7a25
--- /dev/null
+++ b/doc/cpp/parser/archive.rst
@@ -0,0 +1,21 @@
+
+Archive
+=======
+
+Zip archive
+-----------
+
+.. doxygenstruct:: orcus::zip_file_entry_header
+ :members:
+
+.. doxygenclass:: orcus::zip_archive
+ :members:
+
+.. doxygenclass:: orcus::zip_archive_stream
+ :members:
+
+.. doxygenclass:: orcus::zip_archive_stream_fd
+ :members:
+
+.. doxygenclass:: orcus::zip_archive_stream_blob
+ :members:
diff --git a/doc/cpp/parser/base64.rst b/doc/cpp/parser/base64.rst
new file mode 100644
index 0000000..617db37
--- /dev/null
+++ b/doc/cpp/parser/base64.rst
@@ -0,0 +1,5 @@
+
+Base64
+======
+
+.. doxygenfile:: base64.hpp
diff --git a/doc/cpp/parser/css.rst b/doc/cpp/parser/css.rst
new file mode 100644
index 0000000..beb6cb2
--- /dev/null
+++ b/doc/cpp/parser/css.rst
@@ -0,0 +1,84 @@
+.. highlight:: cpp
+
+CSS parser
+==========
+
+.. doxygenclass:: orcus::css_parser
+ :members:
+
+Parser handler
+--------------
+
+.. doxygenclass:: orcus::css_handler
+ :members:
+
+CSS types
+---------
+
+.. doxygenenum:: orcus::css::combinator_t
+.. doxygenenum:: orcus::css::property_function_t
+.. doxygenenum:: orcus::css::property_value_t
+
+.. doxygentypedef:: orcus::css::pseudo_element_t
+.. doxygentypedef:: orcus::css::pseudo_class_t
+
+.. doxygenstruct:: orcus::css::rgba_color_t
+.. doxygenstruct:: orcus::css::hsla_color_t
+
+
+Constants
+---------
+
+Pseudo elements
+^^^^^^^^^^^^^^^
+
+.. doxygenvariable:: orcus::css::pseudo_element_after
+.. doxygenvariable:: orcus::css::pseudo_element_before
+.. doxygenvariable:: orcus::css::pseudo_element_first_letter
+.. doxygenvariable:: orcus::css::pseudo_element_first_line
+.. doxygenvariable:: orcus::css::pseudo_element_selection
+.. doxygenvariable:: orcus::css::pseudo_element_backdrop
+
+Pseudo classes
+^^^^^^^^^^^^^^
+
+.. doxygenvariable:: orcus::css::pseudo_class_active
+.. doxygenvariable:: orcus::css::pseudo_class_checked
+.. doxygenvariable:: orcus::css::pseudo_class_default
+.. doxygenvariable:: orcus::css::pseudo_class_dir
+.. doxygenvariable:: orcus::css::pseudo_class_disabled
+.. doxygenvariable:: orcus::css::pseudo_class_empty
+.. doxygenvariable:: orcus::css::pseudo_class_enabled
+.. doxygenvariable:: orcus::css::pseudo_class_first
+.. doxygenvariable:: orcus::css::pseudo_class_first_child
+.. doxygenvariable:: orcus::css::pseudo_class_first_of_type
+.. doxygenvariable:: orcus::css::pseudo_class_fullscreen
+.. doxygenvariable:: orcus::css::pseudo_class_focus
+.. doxygenvariable:: orcus::css::pseudo_class_hover
+.. doxygenvariable:: orcus::css::pseudo_class_indeterminate
+.. doxygenvariable:: orcus::css::pseudo_class_in_range
+.. doxygenvariable:: orcus::css::pseudo_class_invalid
+.. doxygenvariable:: orcus::css::pseudo_class_lang
+.. doxygenvariable:: orcus::css::pseudo_class_last_child
+.. doxygenvariable:: orcus::css::pseudo_class_last_of_type
+.. doxygenvariable:: orcus::css::pseudo_class_left
+.. doxygenvariable:: orcus::css::pseudo_class_link
+.. doxygenvariable:: orcus::css::pseudo_class_not
+.. doxygenvariable:: orcus::css::pseudo_class_nth_child
+.. doxygenvariable:: orcus::css::pseudo_class_nth_last_child
+.. doxygenvariable:: orcus::css::pseudo_class_nth_last_of_type
+.. doxygenvariable:: orcus::css::pseudo_class_nth_of_type
+.. doxygenvariable:: orcus::css::pseudo_class_only_child
+.. doxygenvariable:: orcus::css::pseudo_class_only_of_type
+.. doxygenvariable:: orcus::css::pseudo_class_optional
+.. doxygenvariable:: orcus::css::pseudo_class_out_of_range
+.. doxygenvariable:: orcus::css::pseudo_class_read_only
+.. doxygenvariable:: orcus::css::pseudo_class_read_write
+.. doxygenvariable:: orcus::css::pseudo_class_required
+.. doxygenvariable:: orcus::css::pseudo_class_right
+.. doxygenvariable:: orcus::css::pseudo_class_root
+.. doxygenvariable:: orcus::css::pseudo_class_scope
+.. doxygenvariable:: orcus::css::pseudo_class_target
+.. doxygenvariable:: orcus::css::pseudo_class_valid
+.. doxygenvariable:: orcus::css::pseudo_class_visited
+
diff --git a/doc/cpp/parser/csv.rst b/doc/cpp/parser/csv.rst
new file mode 100644
index 0000000..67e708a
--- /dev/null
+++ b/doc/cpp/parser/csv.rst
@@ -0,0 +1,17 @@
+.. highlight:: cpp
+
+CSV parser
+==========
+
+.. doxygenclass:: orcus::csv_parser
+ :members:
+
+.. doxygenstruct:: orcus::csv::parser_config
+ :members:
+
+Parser handler
+--------------
+
+.. doxygenclass:: orcus::csv_handler
+ :members:
+
diff --git a/doc/cpp/parser/exception.rst b/doc/cpp/parser/exception.rst
new file mode 100644
index 0000000..e6b14cc
--- /dev/null
+++ b/doc/cpp/parser/exception.rst
@@ -0,0 +1,37 @@
+.. highlight:: cpp
+
+Exceptions
+==========
+
+.. doxygenclass:: orcus::general_error
+ :members:
+
+.. doxygenclass:: orcus::invalid_arg_error
+ :members:
+
+.. doxygenclass:: orcus::xml_structure_error
+ :members:
+
+.. doxygenclass:: orcus::json_structure_error
+ :members:
+
+.. doxygenclass:: orcus::invalid_map_error
+ :members:
+
+.. doxygenclass:: orcus::value_error
+ :members:
+
+.. doxygenclass:: orcus::xpath_error
+ :members:
+
+.. doxygenclass:: orcus::interface_error
+ :members:
+
+.. doxygenclass:: orcus::parse_error
+ :members:
+
+.. doxygenclass:: orcus::malformed_xml_error
+ :members:
+
+.. doxygenclass:: orcus::zip_error
+ :members:
diff --git a/doc/cpp/parser/index.rst b/doc/cpp/parser/index.rst
new file mode 100644
index 0000000..5a8141b
--- /dev/null
+++ b/doc/cpp/parser/index.rst
@@ -0,0 +1,24 @@
+
+Low-level parsers
+=================
+
+This section presents the API's from the ``liborcus-parser`` part of this library,
+which contains low-level parsers and utilities either used by or used in conjunction
+with the parsers. The higher level import filters document models internally use
+these parsers and utilities.
+
+.. toctree::
+ :maxdepth: 1
+
+ xml.rst
+ xml_writer.rst
+ json.rst
+ css.rst
+ csv.rst
+ yaml.rst
+ types.rst
+ util.rst
+ stream.rst
+ base64.rst
+ archive.rst
+ exception.rst
diff --git a/doc/cpp/parser/json.rst b/doc/cpp/parser/json.rst
new file mode 100644
index 0000000..8aa402b
--- /dev/null
+++ b/doc/cpp/parser/json.rst
@@ -0,0 +1,14 @@
+.. highlight:: cpp
+
+JSON parser
+===========
+
+.. doxygenclass:: orcus::json_parser
+ :members:
+
+Parser handler
+--------------
+
+.. doxygenclass:: orcus::json_handler
+ :members:
+
diff --git a/doc/cpp/parser/stream.rst b/doc/cpp/parser/stream.rst
new file mode 100644
index 0000000..6f8ecde
--- /dev/null
+++ b/doc/cpp/parser/stream.rst
@@ -0,0 +1,24 @@
+.. highlight:: cpp
+
+Stream
+======
+
+Stream buffers
+--------------
+
+.. doxygenclass:: orcus::file_content
+ :members:
+
+.. doxygenclass:: orcus::memory_content
+ :members:
+
+Utility functions
+-----------------
+
+.. doxygenstruct:: orcus::line_with_offset
+ :members:
+
+.. doxygenfunction:: orcus::create_parse_error_output
+.. doxygenfunction:: orcus::locate_line_with_offset
+.. doxygenfunction:: orcus::locate_first_different_char
+.. doxygenfunction:: orcus::calc_logical_string_length
diff --git a/doc/cpp/parser/types.rst b/doc/cpp/parser/types.rst
new file mode 100644
index 0000000..6c53267
--- /dev/null
+++ b/doc/cpp/parser/types.rst
@@ -0,0 +1,43 @@
+
+Basic types
+===========
+
+Constants
+---------
+
+.. doxygenvariable:: orcus::INDEX_NOT_FOUND
+.. doxygenvariable:: orcus::XMLNS_UNKNOWN_ID
+.. doxygenvariable:: orcus::XML_UNKNOWN_TOKEN
+
+Type aliases
+------------
+
+.. doxygentypedef:: orcus::xml_token_attrs_t
+.. doxygentypedef:: orcus::xml_token_t
+.. doxygentypedef:: orcus::xmlns_id_t
+
+Structs
+-------
+
+.. doxygenstruct:: orcus::date_time_t
+.. doxygenstruct:: orcus::length_t
+.. doxygenstruct:: orcus::parse_error_value_t
+.. doxygenstruct:: orcus::xml_declaration_t
+.. doxygenstruct:: orcus::xml_name_t
+.. doxygenstruct:: orcus::xml_token_attr_t
+.. doxygenstruct:: orcus::xml_token_element_t
+
+Enums
+-----
+
+.. doxygenenum:: orcus::character_set_t
+.. doxygenenum:: orcus::dump_format_t
+.. doxygenenum:: orcus::format_t
+.. doxygenenum:: orcus::length_unit_t
+
+Utility functions
+-----------------
+
+.. doxygenfunction:: orcus::get_dump_format_entries
+.. doxygenfunction:: orcus::to_character_set
+.. doxygenfunction:: orcus::to_dump_format_enum
diff --git a/doc/cpp/parser/util.rst b/doc/cpp/parser/util.rst
new file mode 100644
index 0000000..2d3ec0d
--- /dev/null
+++ b/doc/cpp/parser/util.rst
@@ -0,0 +1,13 @@
+.. highlight:: cpp
+
+Utilities
+=========
+
+.. doxygenclass:: orcus::string_pool
+ :members:
+
+.. doxygenclass:: orcus::tokens
+ :members:
+
+.. doxygenclass:: orcus::cell_buffer
+ :members:
diff --git a/doc/cpp/parser/xml.rst b/doc/cpp/parser/xml.rst
new file mode 100644
index 0000000..462c466
--- /dev/null
+++ b/doc/cpp/parser/xml.rst
@@ -0,0 +1,65 @@
+.. highlight:: cpp
+
+XML parsers
+===========
+
+SAX base parser
+---------------
+
+.. doxygenclass:: orcus::sax_parser
+ :members:
+
+.. doxygenstruct:: orcus::sax_parser_default_config
+ :members:
+
+.. doxygenclass:: orcus::sax_handler
+ :members:
+
+.. doxygenstruct:: orcus::sax::parser_element
+ :members:
+
+.. doxygenstruct:: orcus::sax::parser_attribute
+ :members:
+
+SAX namespace parser
+--------------------
+
+.. doxygenclass:: orcus::sax_ns_parser
+ :members:
+
+.. doxygenclass:: orcus::sax_ns_handler
+ :members:
+
+.. doxygenstruct:: orcus::sax_ns_parser_element
+ :members:
+
+.. doxygenstruct:: orcus::sax_ns_parser_attribute
+ :members:
+
+SAX token parser
+----------------
+
+.. doxygenclass:: orcus::sax_token_parser
+ :members:
+
+.. doxygenclass:: orcus::sax_token_handler
+ :members:
+
+Namespace
+---------
+
+.. doxygenclass:: orcus::xmlns_repository
+ :members:
+
+.. doxygenclass:: orcus::xmlns_context
+ :members:
+
+Common
+------
+
+.. doxygenstruct:: orcus::sax::doctype_declaration
+ :members:
+
+.. doxygenfunction:: orcus::sax::decode_xml_encoded_char
+
+.. doxygenfunction:: orcus::sax::decode_xml_unicode_char
diff --git a/doc/cpp/parser/xml_writer.rst b/doc/cpp/parser/xml_writer.rst
new file mode 100644
index 0000000..1092ac4
--- /dev/null
+++ b/doc/cpp/parser/xml_writer.rst
@@ -0,0 +1,7 @@
+.. highlight:: cpp
+
+XML writer
+==========
+
+.. doxygenclass:: orcus::xml_writer
+ :members:
diff --git a/doc/cpp/parser/yaml.rst b/doc/cpp/parser/yaml.rst
new file mode 100644
index 0000000..0a1107a
--- /dev/null
+++ b/doc/cpp/parser/yaml.rst
@@ -0,0 +1,14 @@
+.. highlight:: cpp
+
+YAML parser
+===========
+
+.. doxygenclass:: orcus::yaml_parser
+ :members:
+
+Parser Handler
+--------------
+
+.. doxygenclass:: orcus::yaml_handler
+ :members:
+
diff --git a/doc/cpp/spreadsheet-doc/document.rst b/doc/cpp/spreadsheet-doc/document.rst
new file mode 100644
index 0000000..0b03610
--- /dev/null
+++ b/doc/cpp/spreadsheet-doc/document.rst
@@ -0,0 +1,9 @@
+
+Document
+========
+
+.. doxygenclass:: orcus::spreadsheet::document
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::document_config
+ :members:
diff --git a/doc/cpp/spreadsheet-doc/import-export.rst b/doc/cpp/spreadsheet-doc/import-export.rst
new file mode 100644
index 0000000..0c5b801
--- /dev/null
+++ b/doc/cpp/spreadsheet-doc/import-export.rst
@@ -0,0 +1,50 @@
+
+Import and export
+=================
+
+The classes in this section can be viewed as the points of entry for initiating
+import or export processes.
+
+The :cpp:class:`~orcus::spreadsheet::import_factory` class wraps
+:cpp:class:`~orcus::spreadsheet::document` as its destination storage then
+gets passed to an import filter class that parses the content of an input file
+and populates the destination document store.
+
+The :cpp:class:`~orcus::spreadsheet::import_styles` class works similarly to
+:cpp:class:`~orcus::spreadsheet::import_factory` in that it wraps
+:cpp:class:`~orcus::spreadsheet::styles` as its destination storage then gets
+passed to a styles import parser in order to get the destination store
+populated. Although this class is used by
+:cpp:class:`~orcus::spreadsheet::import_factory` internally, it can also be
+instantiated independently to allow loading of just the styles data.
+
+The :cpp:class:`~orcus::spreadsheet::export_factory` also works in a similar
+fashion, however; the export functionality of the orcus library is currently
+very limited and should be considered experimental. It is currently only used
+by :cpp:class:`~orcus::orcus_xml` to export the content of a document which
+was originally imported from an XML document.
+
+.. warning::
+
+ The export functionality of the orcus library is highly experimental.
+
+
+Import factory
+--------------
+
+.. doxygenclass:: orcus::spreadsheet::import_factory
+ :members:
+
+
+Import styles
+-------------
+
+.. doxygenclass:: orcus::spreadsheet::import_styles
+ :members:
+
+
+Export factory
+--------------
+
+.. doxygenclass:: orcus::spreadsheet::export_factory
+ :members:
diff --git a/doc/cpp/spreadsheet-doc/index.rst b/doc/cpp/spreadsheet-doc/index.rst
new file mode 100644
index 0000000..b0c2c94
--- /dev/null
+++ b/doc/cpp/spreadsheet-doc/index.rst
@@ -0,0 +1,21 @@
+
+Spreadsheet document
+====================
+
+This section contains the API's related to the spreadsheet document storage, which
+is provided by the ``liborcus-spreadsheet`` part of this library. This ``liborcus-spreadsheet``
+module has dependency on the :ref:`ixion <ixion:index>` library in order to perform
+computation of formula cells.
+
+.. toctree::
+ :maxdepth: 1
+
+ types.rst
+ document.rst
+ sheet.rst
+ table.rst
+ pivot.rst
+ styles.rst
+ view.rst
+ shared-strings.rst
+ import-export.rst
diff --git a/doc/cpp/spreadsheet-doc/pivot.rst b/doc/cpp/spreadsheet-doc/pivot.rst
new file mode 100644
index 0000000..00c1a16
--- /dev/null
+++ b/doc/cpp/spreadsheet-doc/pivot.rst
@@ -0,0 +1,21 @@
+
+Pivot table
+===========
+
+.. doxygenstruct:: orcus::spreadsheet::pivot_cache_record_value_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::pivot_cache_item_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::pivot_cache_group_data_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::pivot_cache_field_t
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::pivot_cache
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::pivot_collection
+ :members:
diff --git a/doc/cpp/spreadsheet-doc/shared-strings.rst b/doc/cpp/spreadsheet-doc/shared-strings.rst
new file mode 100644
index 0000000..799e57b
--- /dev/null
+++ b/doc/cpp/spreadsheet-doc/shared-strings.rst
@@ -0,0 +1,10 @@
+
+Shared strings
+==============
+
+.. doxygenclass:: orcus::spreadsheet::shared_strings
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::format_run
+.. doxygentypedef:: orcus::spreadsheet::format_runs_t
+
diff --git a/doc/cpp/spreadsheet-doc/sheet.rst b/doc/cpp/spreadsheet-doc/sheet.rst
new file mode 100644
index 0000000..e1cf87e
--- /dev/null
+++ b/doc/cpp/spreadsheet-doc/sheet.rst
@@ -0,0 +1,6 @@
+
+Sheet
+=====
+
+.. doxygenclass:: orcus::spreadsheet::sheet
+ :members:
diff --git a/doc/cpp/spreadsheet-doc/styles.rst b/doc/cpp/spreadsheet-doc/styles.rst
new file mode 100644
index 0000000..59d7f77
--- /dev/null
+++ b/doc/cpp/spreadsheet-doc/styles.rst
@@ -0,0 +1,30 @@
+
+Styles
+======
+
+.. doxygenclass:: orcus::spreadsheet::styles
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::font_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::fill_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::border_attrs_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::border_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::protection_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::number_format_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::cell_format_t
+ :members:
+
+.. doxygenstruct:: orcus::spreadsheet::cell_style_t
+ :members:
diff --git a/doc/cpp/spreadsheet-doc/table.rst b/doc/cpp/spreadsheet-doc/table.rst
new file mode 100644
index 0000000..4b44e42
--- /dev/null
+++ b/doc/cpp/spreadsheet-doc/table.rst
@@ -0,0 +1,9 @@
+
+Table and autofilter
+====================
+
+.. doxygenstruct:: orcus::spreadsheet::auto_filter_column_t
+.. doxygenstruct:: orcus::spreadsheet::auto_filter_t
+.. doxygenstruct:: orcus::spreadsheet::table_column_t
+.. doxygenstruct:: orcus::spreadsheet::table_style_t
+.. doxygenstruct:: orcus::spreadsheet::table_t
diff --git a/doc/cpp/spreadsheet-doc/types.rst b/doc/cpp/spreadsheet-doc/types.rst
new file mode 100644
index 0000000..51a8489
--- /dev/null
+++ b/doc/cpp/spreadsheet-doc/types.rst
@@ -0,0 +1,5 @@
+
+Types
+=====
+
+.. doxygenstruct:: orcus::spreadsheet::color_t
diff --git a/doc/cpp/spreadsheet-doc/view.rst b/doc/cpp/spreadsheet-doc/view.rst
new file mode 100644
index 0000000..79c07dd
--- /dev/null
+++ b/doc/cpp/spreadsheet-doc/view.rst
@@ -0,0 +1,9 @@
+
+View
+====
+
+.. doxygenclass:: orcus::spreadsheet::view
+ :members:
+
+.. doxygenclass:: orcus::spreadsheet::sheet_view
+ :members: