LibreOffice Module formula (master) 1
vectortoken.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
9
10#ifndef INCLUDED_FORMULA_VECTORTOKEN_HXX
11#define INCLUDED_FORMULA_VECTORTOKEN_HXX
12
13#include <cstddef>
14#include <vector>
15
17#include <formula/token.hxx>
18#include <rtl/ustring.h>
19
20namespace formula {
21
41{
43
44 const double* mpNumericArray;
45 rtl_uString** mpStringArray;
46
47 bool mbValid;
48
51 VectorRefArray( const double* pArray );
52 VectorRefArray( rtl_uString** pArray );
53 VectorRefArray( const double* pNumArray, rtl_uString** pStrArray );
54
55 bool isValid() const;
56};
57
63{
66
67public:
68 SingleVectorRefToken( const VectorRefArray& rArray, size_t nArrayLength );
69
70 virtual FormulaToken* Clone() const override;
71
72 const VectorRefArray& GetArray() const;
73 size_t GetArrayLength() const;
74};
75
81{
82 std::vector<VectorRefArray> maArrays;
83
85 size_t mnRefRowSize;
88
89 bool mbStartFixed:1;
90 bool mbEndFixed:1;
91
92public:
94 std::vector<VectorRefArray>&& rArrays, size_t nArrayLength,
95 size_t nRefRowSize, bool bStartFixed, bool bEndFixed );
96
97 virtual FormulaToken* Clone() const override;
98
99 const std::vector<VectorRefArray>& GetArrays() const;
100 size_t GetArrayLength() const;
101 size_t GetRefRowSize() const;
102 bool IsStartFixed() const;
103 bool IsEndFixed() const;
104};
105
106}
107
108#endif
109
110/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This token represents a range reference in a vectorized formula calculation context.
Definition: vectortoken.hxx:81
std::vector< VectorRefArray > maArrays
Definition: vectortoken.hxx:82
bool mbStartFixed
original reference row size.
Definition: vectortoken.hxx:89
bool mbEndFixed
whether or not the start row position is absolute.
Definition: vectortoken.hxx:90
size_t mnRefRowSize
length of all arrays which does not include trailing empty region.
Definition: vectortoken.hxx:85
This token represents a single cell reference in a vectorized formula calculation context.
Definition: vectortoken.hxx:63
#define FORMULA_DLLPUBLIC
Definition: formuladllapi.h:28
css::uno::Reference< css::animations::XAnimationNode > Clone(const css::uno::Reference< css::animations::XAnimationNode > &xSourceNode, const SdPage *pSource=nullptr, const SdPage *pTarget=nullptr)
Single unit of vector reference consists of two physical arrays.
Definition: vectortoken.hxx:41
const double * mpNumericArray
Definition: vectortoken.hxx:44
rtl_uString ** mpStringArray
Definition: vectortoken.hxx:45