21#if DEBUG_COLUMN_STORAGE
25#define MDDS_MULTI_TYPE_VECTOR_DEBUG 1
28#include <mdds/multi_type_vector/macro.hpp>
29#include <mdds/multi_type_vector/soa/main.hpp>
30#include <mdds/multi_type_vector/block_funcs.hpp>
32#include <unordered_map>
61typedef mdds::mtv::noncopyable_managed_element_block<element_type_sparkline, sc::SparklineCell>
sparkline_block;
62typedef mdds::mtv::noncopyable_managed_element_block<element_type_cellnote, ScPostIt>
cellnote_block;
63typedef mdds::mtv::noncopyable_managed_element_block<element_type_broadcaster, SvtBroadcaster>
broadcaster_block;
64typedef mdds::mtv::default_element_block<element_type_celltextattr, CellTextAttr>
celltextattr_block;
65typedef mdds::mtv::default_element_block<element_type_string, svl::SharedString>
string_block;
66typedef mdds::mtv::noncopyable_managed_element_block<element_type_edittext, EditTextObject>
edittext_block;
67typedef mdds::mtv::noncopyable_managed_element_block<element_type_formula, ScFormulaCell>
formula_block;
114 using block_funcs = mdds::mtv::element_block_funcs<sc::sparkline_block>;
119 using block_funcs = mdds::mtv::element_block_funcs<sc::cellnote_block>;
124 using block_funcs = mdds::mtv::element_block_funcs<sc::broadcaster_block>;
129 using block_funcs = mdds::mtv::element_block_funcs<sc::celltextattr_block>;
180 typedef std::unordered_map<SCCOL, ColumnBlockPosition>
ColumnsType;
Additional class containing cell annotation data.
const ScColumn * getColumn() const
void element_block_released(const mdds::mtv::base_element_block *block)
void swap(CellStoreEvent &other)
void stop()
Stop processing events.
void element_block_acquired(const mdds::mtv::base_element_block *block)
ColumnBlockPosition * getBlockPosition(SCTAB nTab, SCCOL nCol)
std::unordered_map< SCCOL, ColumnBlockPosition > ColumnsType
std::unordered_map< SCTAB, ColumnsType > TablesType
ColumnBlockPositionSet(ScDocument &rDoc)
Set of column block positions only for one table.
ColumnBlockPosition * getBlockPosition(SCCOL nCol)
~TableColumnBlockPositionSet()
std::unique_ptr< Impl > mpImpl
TableColumnBlockPositionSet(ScDocument &rDoc, SCTAB nTab)
CAUTION! The following defines must be in the same namespace as the respective type.
mdds::mtv::uint16_element_block uint16_block
const mdds::mtv::element_t element_type_celltextattr
const mdds::mtv::element_t element_type_edittext
mdds::mtv::double_element_block numeric_block
Mapped standard element blocks (for convenience).
mdds::mtv::soa::multi_type_vector< CellNodeTraits > CellNoteStoreType
Cell note container.
mdds::mtv::soa::multi_type_vector< SparklineTraits > SparklineStoreType
Sparkline container.
mdds::mtv::noncopyable_managed_element_block< element_type_formula, ScFormulaCell > formula_block
const mdds::mtv::element_t element_type_formula
const mdds::mtv::element_t element_type_uint16
mdds::mtv::soa::multi_type_vector< CellStoreTraits > CellStoreType
Cell container.
ScRefCellValue toRefCell(const sc::CellStoreType::const_iterator &itPos, size_t nOffset)
mdds::mtv::default_element_block< element_type_celltextattr, CellTextAttr > celltextattr_block
mdds::mtv::noncopyable_managed_element_block< element_type_broadcaster, SvtBroadcaster > broadcaster_block
const mdds::mtv::element_t element_type_sparkline
const mdds::mtv::element_t element_type_numeric
Mapped standard element types (for convenience).
mdds::mtv::default_element_block< element_type_string, svl::SharedString > string_block
mdds::mtv::noncopyable_managed_element_block< element_type_edittext, EditTextObject > edittext_block
mdds::mtv::noncopyable_managed_element_block< element_type_cellnote, ScPostIt > cellnote_block
mdds::mtv::soa::multi_type_vector< CellTextAttrTraits > CellTextAttrStoreType
Cell text attribute container.
mdds::mtv::soa::multi_type_vector< BroadcasterTraits > BroadcasterStoreType
Broadcaster storage container.
const mdds::mtv::element_t element_type_string
mdds::mtv::noncopyable_managed_element_block< element_type_sparkline, sc::SparklineCell > sparkline_block
Custom element blocks.
const mdds::mtv::element_t element_type_cellnote
const mdds::mtv::element_t element_type_empty
const mdds::mtv::element_t element_type_broadcaster
Custom element type IDs for multi_type_vector.
These need to be in global namespace just like their respective types are.
This is very similar to ScCellValue, except that it references the original value instead of copying ...
mdds::mtv::element_block_funcs< sc::broadcaster_block > block_funcs
mdds::mtv::element_block_funcs< sc::cellnote_block > block_funcs
mdds::mtv::element_block_funcs< numeric_block, sc::string_block, sc::edittext_block, sc::formula_block > block_funcs
mdds::mtv::element_block_funcs< sc::celltextattr_block > block_funcs
ColumnBlockConstPosition()
SparklineStoreType::const_iterator miSparklinePos
CellNoteStoreType::const_iterator miCellNotePos
CellTextAttrStoreType::const_iterator miCellTextAttrPos
CellStoreType::const_iterator miCellPos
Store position data for column array storage.
SparklineStoreType::iterator miSparklinePos
CellTextAttrStoreType::iterator miCellTextAttrPos
BroadcasterStoreType::iterator miBroadcasterPos
CellStoreType::iterator miCellPos
CellNoteStoreType::iterator miCellNotePos
mdds::mtv::element_block_funcs< sc::sparkline_block > block_funcs