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/custom_func1.hpp>
31 #include <mdds/multi_type_vector/custom_func3.hpp>
33 #include <unordered_map>
62 typedef mdds::mtv::noncopyable_managed_element_block<element_type_sparkline, sc::SparklineCell>
sparkline_block;
63 typedef mdds::mtv::noncopyable_managed_element_block<element_type_cellnote, ScPostIt>
cellnote_block;
64 typedef mdds::mtv::noncopyable_managed_element_block<element_type_broadcaster, SvtBroadcaster>
broadcaster_block;
65 typedef mdds::mtv::default_element_block<element_type_celltextattr, CellTextAttr>
celltextattr_block;
66 typedef mdds::mtv::default_element_block<element_type_string, svl::SharedString>
string_block;
67 typedef mdds::mtv::noncopyable_managed_element_block<element_type_edittext, EditTextObject>
edittext_block;
68 typedef mdds::mtv::noncopyable_managed_element_block<element_type_formula, ScFormulaCell>
formula_block;
116 static constexpr mdds::mtv::lu_factor_t
loop_unrolling = mdds::mtv::lu_factor_t::lu16;
124 typedef mdds::mtv::custom_block_func1<sc::cellnote_block>
CNoteFunc;
128 typedef mdds::mtv::custom_block_func1<sc::broadcaster_block>
BCBlkFunc;
132 typedef mdds::mtv::custom_block_func1<sc::celltextattr_block>
CTAttrFunc;
136 typedef mdds::mtv::custom_block_func3<sc::string_block, sc::edittext_block, sc::formula_block>
CellFunc;
137 typedef mdds::mtv::soa::multi_type_vector<CellFunc, CellStoreTrait>
CellStoreType;
165 typedef std::unordered_map<SCCOL, ColumnBlockPosition>
ColumnsType;
186 std::unique_ptr<Impl>
mpImpl;
CellTextAttrStoreType::const_iterator miCellTextAttrPos
mdds::mtv::soa::multi_type_vector< CNoteFunc > CellNoteStoreType
CellStoreType::const_iterator miCellPos
ColumnBlockPosition * getBlockPosition(SCCOL nCol)
mdds::mtv::custom_block_func1< sc::celltextattr_block > CTAttrFunc
Cell text attribute container.
CellTextAttrStoreType::iterator miCellTextAttrPos
const mdds::mtv::element_t element_type_celltextattr
SparklineStoreType::const_iterator miSparklinePos
void stop()
Stop processing events.
mdds::mtv::noncopyable_managed_element_block< element_type_cellnote, ScPostIt > cellnote_block
mdds::mtv::default_element_block< element_type_string, svl::SharedString > string_block
Store position data for column array storage.
ColumnBlockPositionSet(ScDocument &rDoc)
mdds::mtv::noncopyable_managed_element_block< element_type_sparkline, sc::SparklineCell > sparkline_block
Custom element blocks.
This is very similar to ScCellValue, except that it references the original value instead of copying ...
mdds::mtv::soa::multi_type_vector< BCBlkFunc > BroadcasterStoreType
void element_block_acquired(const mdds::mtv::base_element_block *block)
mdds::mtv::custom_block_func1< sc::sparkline_block > CSparklineFunction
Sparkline container.
const mdds::mtv::element_t element_type_cellnote
mdds::mtv::soa::multi_type_vector< CSparklineFunction > SparklineStoreType
BroadcasterStoreType::iterator miBroadcasterPos
const mdds::mtv::element_t element_type_formula
Additional class containing cell annotation data.
mdds::mtv::noncopyable_managed_element_block< element_type_edittext, EditTextObject > edittext_block
ColumnBlockPosition * getBlockPosition(SCTAB nTab, SCCOL nCol)
mdds::mtv::uint16_element_block uint16_block
ColumnBlockConstPosition()
Set of column block positions only for one table.
mdds::mtv::default_element_block< element_type_celltextattr, CellTextAttr > celltextattr_block
mdds::mtv::noncopyable_managed_element_block< element_type_formula, ScFormulaCell > formula_block
mdds::mtv::custom_block_func3< sc::string_block, sc::edittext_block, sc::formula_block > CellFunc
Cell container.
mdds::mtv::double_element_block numeric_block
Mapped standard element blocks (for convenience).
CAUTION! The following defines must be in the same namespace as the respective type.
const mdds::mtv::element_t element_type_empty
SparklineStoreType::iterator miSparklinePos
const mdds::mtv::element_t element_type_numeric
Mapped standard element types (for convenience).
void swap(CellStoreEvent &other)
std::unordered_map< SCTAB, ColumnsType > TablesType
const ScColumn * getColumn() const
CellStoreType::iterator miCellPos
mdds::mtv::soa::multi_type_vector< CTAttrFunc > CellTextAttrStoreType
const mdds::mtv::element_t element_type_uint16
TableColumnBlockPositionSet(ScDocument &rDoc, SCTAB nTab)
mdds::mtv::custom_block_func1< sc::cellnote_block > CNoteFunc
Cell note container.
const mdds::mtv::element_t element_type_sparkline
mdds::mtv::soa::multi_type_vector< CellFunc, CellStoreTrait > CellStoreType
std::unordered_map< SCCOL, ColumnBlockPosition > ColumnsType
const mdds::mtv::element_t element_type_edittext
const mdds::mtv::element_t element_type_broadcaster
Custom element type IDs for multi_type_vector.
CellNoteStoreType::iterator miCellNotePos
mdds::mtv::noncopyable_managed_element_block< element_type_broadcaster, SvtBroadcaster > broadcaster_block
These need to be in global namespace just like their respective types are.
ScRefCellValue toRefCell(const sc::CellStoreType::const_iterator &itPos, size_t nOffset)
CellNoteStoreType::const_iterator miCellNotePos
const mdds::mtv::element_t element_type_string
mdds::mtv::custom_block_func1< sc::broadcaster_block > BCBlkFunc
Broadcaster storage container.
static constexpr mdds::mtv::lu_factor_t loop_unrolling
void element_block_released(const mdds::mtv::base_element_block *block)
std::unique_ptr< Impl > mpImpl