77 void SetValue( A nStart, A nEnd,
const D& rValue );
85 const D&
GetValue( A nPos,
size_t& nIndex, A& nEnd )
const;
108 {
CopyFrom(rArray, nStart, nEnd, nStart); }
110 A nDestStart, A nDestEnd, A nSrcStart );
125template<
typename A,
typename D >
133 pData[0].aValue = aTmpVal;
134 pData[0].nEnd = nMaxAccess;
137template<
typename A,
typename D >
143template<
typename A,
typename D >
150template<
typename A,
typename D >
158template<
typename A,
typename D >
169template<
typename A,
typename D >
175 nEnd =
pData[nEntry].nEnd;
176 return pData[nEntry].aValue;
190 void AndValue( A nPos,
const D& rValueToAnd );
191 void OrValue( A nPos,
const D& rValueToOr );
192 void AndValue( A nStart, A nEnd,
const D& rValueToAnd );
193 void OrValue( A nStart, A nEnd,
const D& rValueToOr );
198 A nStart, A nEnd,
const D& rValueToAnd );
206template<
typename A,
typename D >
210 if ((rValue & rValueToAnd) != rValue)
214template<
typename A,
typename D >
218 if ((rValue | rValueToOr) != rValue)
The data type represents bits, manageable by bitwise operations.
void AndValue(A nPos, const D &rValueToAnd)
void CopyFromAnded(const ScBitMaskCompressedArray &rArray, A nStart, A nEnd, const D &rValueToAnd)
Copy values from rArray and bitwise AND them with rValueToAnd.
ScBitMaskCompressedArray(A nMaxAccessP, const D &rValue)
A GetLastAnyBitAccess(const D &rBitMask) const
Return the last row where an entry meets the condition: ((aValue & rBitMask) != 0),...
void OrValue(A nPos, const D &rValueToOr)
Iterator operator+(size_t) const
Iterator(const ScCompressedArray &rArray)
const ScCompressedArray & mrArray
const D & operator*() const
Iterator(const ScCompressedArray &rArray, size_t nIndex, A nRegion)
Compressed array of row (or column) entries, e.g.
const D & Insert(A nStart, size_t nCount)
Insert rows before nStart and copy value for inserted rows from nStart-1, return that value.
void Reset(const D &rValue)
std::unique_ptr< DataEntry[]> pData
const D & GetValue(A nPos, size_t &nIndex, A &nEnd) const
Get value for a row, and it's region end row.
RangeData GetRangeData(A nPos) const
Get range data for a row, i.e.
ScCompressedArray(A nMaxAccess, const D &rValue)
Construct with nMaxAccess=MAXROW, for example.
void InsertPreservingSize(A nStart, size_t nCount, const D &rFillValue)
void SetValue(A nPos, const D &rValue)
const D & GetNextValue(size_t &nIndex, A &nEnd) const
Get next value and it's region end row.
SC_DLLPUBLIC size_t Search(A nPos) const
Obtain index into entries for nPos.
const D & GetValue(A nPos) const
void CopyFrom(const ScCompressedArray &rArray, A nStart, A nEnd)
Copy rArray.nStart+nSourceDy to this.nStart.
void RemovePreservingSize(A nStart, size_t nCount, const D &rFillValue)
void Remove(A nStart, size_t nCount)
virtual void SetValue(tools::Long nNew) override
std::unique_ptr< sal_Int32[]> pData
constexpr OUStringLiteral aData