75 class LocalBlockVectorWriterT :
public BlockVectorWriterBaseT<ValueT>
78 explicit LocalBlockVectorWriterT(
IVector& vector);
80 ~LocalBlockVectorWriterT() =
default;
82 using BlockVectorWriterBaseT<ValueT>::operator=;
84 ArrayView<ValueT> operator[](Integer iIndex)
86 this->m_changed =
true;
88 return this->m_values.subView(
89 iIndex * this->m_block->size(), this->m_block->size());
90 else if (this->m_vblock) {
91 const VBlock* block_sizes = this->m_vblock;
92 const Integer size = block_sizes->
size(iIndex);
93 const Integer offset = this->m_vector_impl->vblockImpl().offset(iIndex);
94 return this->m_values.subView(offset, size);
97 throw FatalErrorException(A_FUNCINFO,
"No block infos");
104 class BlockVectorWriterT :
public BlockVectorWriterBaseT<ValueT>
107 explicit BlockVectorWriterT(
IVector& vector);
109 ~BlockVectorWriterT() =
default;
111 using BlockVectorWriterBaseT<ValueT>::operator=;
113 ArrayView<ValueT> operator[](Integer iIndex)
115 this->m_changed =
true;
117 return this->m_values.subView(
118 (iIndex - m_local_offset) * this->m_block->size(), this->m_block->size());
119 else if (this->m_vblock) {
120 const VBlock* block_sizes = this->m_vblock;
122 const Integer size = block_sizes->
size(iIndex);
123 const Integer offset = this->m_vector_impl->vblockImpl().offset(iIndex);
124 return this->m_values.subView(offset, size);
127 throw FatalErrorException(A_FUNCINFO,
"No block infos");
131 Integer m_local_offset;