[Libreoffice-commits] core.git: Branch 'private/tml/opencl-background-compilation' - sc/inc sc/qa sc/source

Tor Lillqvist tml at collabora.com
Tue Nov 19 02:40:30 PST 2013


 sc/inc/formulagroup.hxx                  |  128 +++++++++++++++++++++++++++++++
 sc/inc/formulagroupcontext.hxx           |   76 ------------------
 sc/inc/formulagroupinterpreter.hxx       |   76 ------------------
 sc/qa/unit/opencl-test.cxx               |    2 
 sc/source/core/data/column2.cxx          |    2 
 sc/source/core/data/documen2.cxx         |    2 
 sc/source/core/data/documen7.cxx         |    2 
 sc/source/core/data/document.cxx         |    2 
 sc/source/core/data/formulacell.cxx      |    2 
 sc/source/core/inc/dynamickernel.hxx     |    2 
 sc/source/core/opencl/formulagroupcl.cxx |    2 
 sc/source/core/tool/clkernelthread.cxx   |    2 
 sc/source/core/tool/formulagroup.cxx     |    3 
 sc/source/core/tool/formulaopt.cxx       |    2 
 sc/source/core/tool/interpr5.cxx         |    2 
 sc/source/ui/optdlg/calcoptionsdlg.cxx   |    2 
 16 files changed, 141 insertions(+), 166 deletions(-)

New commits:
commit 8efe73fcd4c3b9d7ed45021764f57265e1bc7225
Author: Tor Lillqvist <tml at collabora.com>
Date:   Tue Nov 19 11:16:34 2013 +0200

    Don't split groupcontext.hxx after all
    
    Change-Id: Ie829765f7d9a6e7ba8b99d8fc973537a2576581f

diff --git a/sc/inc/formulagroup.hxx b/sc/inc/formulagroup.hxx
new file mode 100644
index 0000000..7cb055e
--- /dev/null
+++ b/sc/inc/formulagroup.hxx
@@ -0,0 +1,128 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef SC_FORMULAGROUP_HXX
+#define SC_FORMULAGROUP_HXX
+
+#include "address.hxx"
+#include "types.hxx"
+#include "platforminfo.hxx"
+
+#include "svl/sharedstringpool.hxx"
+
+#include <vector>
+#include <boost/noncopyable.hpp>
+#include <boost/ptr_container/ptr_vector.hpp>
+#include <boost/unordered_set.hpp>
+
+class ScDocument;
+class ScTokenArray;
+
+namespace sc {
+
+struct FormulaGroupContext : boost::noncopyable
+{
+    typedef std::vector<double> NumArrayType;
+    typedef std::vector<rtl_uString*> StrArrayType;
+    typedef boost::ptr_vector<NumArrayType> NumArrayStoreType;
+    typedef boost::ptr_vector<StrArrayType> StrArrayStoreType;
+
+    struct ColKey
+    {
+        SCTAB mnTab;
+        SCCOL mnCol;
+
+        struct Hash
+        {
+            size_t operator() ( const ColKey& rKey ) const;
+        };
+
+        ColKey( SCTAB nTab, SCCOL nCol );
+
+        bool operator== ( const ColKey& r ) const;
+        bool operator!= ( const ColKey& r ) const;
+    };
+
+    struct ColArray
+    {
+        NumArrayType* mpNumArray;
+        StrArrayType* mpStrArray;
+        size_t mnSize;
+
+        ColArray( NumArrayType* pNumArray, StrArrayType* pStrArray );
+    };
+
+    typedef boost::unordered_map<ColKey, ColArray, ColKey::Hash> ColArraysType;
+
+    NumArrayStoreType maNumArrays; /// manage life cycle of numeric arrays.
+    StrArrayStoreType maStrArrays; /// manage life cycle of string arrays.
+
+    ColArraysType maColArrays; /// keep track of longest array for each column.
+
+    ColArray* getCachedColArray( SCTAB nTab, SCCOL nCol, size_t nSize );
+
+    ColArray* setCachedColArray(
+        SCTAB nTab, SCCOL nCol, NumArrayType* pNumArray, StrArrayType* pStrArray );
+
+    void ensureStrArray( ColArray& rColArray, size_t nArrayLen );
+    void ensureNumArray( ColArray& rColArray, size_t nArrayLen );
+};
+
+/**
+ * Abstract base class for a "compiled" formula
+ */
+class SC_DLLPUBLIC CompiledFormula
+{
+};
+
+/**
+ * Abstract base class for vectorised formula group interpreters,
+ * plus a global instance factory.
+ */
+class SC_DLLPUBLIC FormulaGroupInterpreter
+{
+    static FormulaGroupInterpreter *msInstance;
+ protected:
+    FormulaGroupInterpreter() {}
+    virtual ~FormulaGroupInterpreter() {}
+
+ public:
+    static FormulaGroupInterpreter *getStatic();
+    static void fillOpenCLInfo(std::vector<OpenclPlatformInfo>& rPlatforms);
+    static bool switchOpenCLDevice(const OUString& rDeviceId, bool bAutoSelect);
+    static void enableOpenCL(bool bEnable);
+
+    virtual ScMatrixRef inverseMatrix(const ScMatrix& rMat) = 0;
+    virtual CompiledFormula* createCompiledFormula(ScDocument& rDoc,
+                                                   const ScAddress& rTopPos,
+                                                   ScFormulaCellGroupRef& xGroup,
+                                                   ScTokenArray& rCode) = 0;
+    virtual bool interpret(ScDocument& rDoc, const ScAddress& rTopPos, ScFormulaCellGroupRef& xGroup, ScTokenArray& rCode) = 0;
+};
+
+/// Inherit from this for alternate formula group calculation approaches.
+class SC_DLLPUBLIC FormulaGroupInterpreterSoftware : public FormulaGroupInterpreter
+{
+public:
+    FormulaGroupInterpreterSoftware();
+    virtual ~FormulaGroupInterpreterSoftware() {}
+
+    virtual ScMatrixRef inverseMatrix(const ScMatrix& rMat);
+    virtual CompiledFormula* createCompiledFormula(ScDocument& rDoc,
+                                                   const ScAddress& rTopPos,
+                                                   ScFormulaCellGroupRef& xGroup,
+                                                   ScTokenArray& rCode) SAL_OVERRIDE;
+    virtual bool interpret(ScDocument& rDoc, const ScAddress& rTopPos, ScFormulaCellGroupRef& xGroup, ScTokenArray& rCode);
+};
+
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/inc/formulagroupcontext.hxx b/sc/inc/formulagroupcontext.hxx
deleted file mode 100644
index 575f687..0000000
--- a/sc/inc/formulagroupcontext.hxx
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#ifndef INCLUDED_SC_INC_FORMULAGROUPCONTEXT_HXX
-#define INCLUDED_SC_INC_FORMULAGROUPCONTEXT_HXX
-
-#include "address.hxx"
-#include "types.hxx"
-
-#include <vector>
-#include <boost/noncopyable.hpp>
-#include <boost/ptr_container/ptr_vector.hpp>
-#include <boost/unordered_map.hpp>
-#include <rtl/ustring.hxx>
-
-namespace sc {
-
-struct FormulaGroupContext : boost::noncopyable
-{
-    typedef std::vector<double> NumArrayType;
-    typedef std::vector<rtl_uString*> StrArrayType;
-    typedef boost::ptr_vector<NumArrayType> NumArrayStoreType;
-    typedef boost::ptr_vector<StrArrayType> StrArrayStoreType;
-
-    struct ColKey
-    {
-        SCTAB mnTab;
-        SCCOL mnCol;
-
-        struct Hash
-        {
-            size_t operator() ( const ColKey& rKey ) const;
-        };
-
-        ColKey( SCTAB nTab, SCCOL nCol );
-
-        bool operator== ( const ColKey& r ) const;
-        bool operator!= ( const ColKey& r ) const;
-    };
-
-    struct ColArray
-    {
-        NumArrayType* mpNumArray;
-        StrArrayType* mpStrArray;
-        size_t mnSize;
-
-        ColArray( NumArrayType* pNumArray, StrArrayType* pStrArray );
-    };
-
-    typedef boost::unordered_map<ColKey, ColArray, ColKey::Hash> ColArraysType;
-
-    NumArrayStoreType maNumArrays; /// manage life cycle of numeric arrays.
-    StrArrayStoreType maStrArrays; /// manage life cycle of string arrays.
-
-    ColArraysType maColArrays; /// keep track of longest array for each column.
-
-    ColArray* getCachedColArray( SCTAB nTab, SCCOL nCol, size_t nSize );
-
-    ColArray* setCachedColArray(
-        SCTAB nTab, SCCOL nCol, NumArrayType* pNumArray, StrArrayType* pStrArray );
-
-    void ensureStrArray( ColArray& rColArray, size_t nArrayLen );
-    void ensureNumArray( ColArray& rColArray, size_t nArrayLen );
-};
-
-}
-
-#endif // INCLUDED_SC_INC_FORMULAGROUPCONTEXT_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/inc/formulagroupinterpreter.hxx b/sc/inc/formulagroupinterpreter.hxx
deleted file mode 100644
index f408727..0000000
--- a/sc/inc/formulagroupinterpreter.hxx
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#ifndef SC_INC_FORMULAGROUPINTERPRETER_HXX
-#define SC_INC_FORMULAGROUPINTERPRETER_HXX
-
-#include "address.hxx"
-#include "types.hxx"
-#include "platforminfo.hxx"
-
-#include <vector>
-#include <boost/ptr_container/ptr_vector.hpp>
-
-class ScDocument;
-class ScTokenArray;
-
-namespace sc {
-
-/**
- * Abstract base class for a "compiled" formula
- */
-class SC_DLLPUBLIC CompiledFormula
-{
-};
-
-/**
- * Abstract base class for vectorised formula group interpreters,
- * plus a global instance factory.
- */
-class SC_DLLPUBLIC FormulaGroupInterpreter
-{
-    static FormulaGroupInterpreter *msInstance;
- protected:
-    FormulaGroupInterpreter() {}
-    virtual ~FormulaGroupInterpreter() {}
-
- public:
-    static FormulaGroupInterpreter *getStatic();
-    static void fillOpenCLInfo(std::vector<OpenclPlatformInfo>& rPlatforms);
-    static bool switchOpenCLDevice(const OUString& rDeviceId, bool bAutoSelect);
-    static void enableOpenCL(bool bEnable);
-
-    virtual ScMatrixRef inverseMatrix(const ScMatrix& rMat) = 0;
-    virtual CompiledFormula* createCompiledFormula(ScDocument& rDoc,
-                                                   const ScAddress& rTopPos,
-                                                   ScFormulaCellGroupRef& xGroup,
-                                                   ScTokenArray& rCode) = 0;
-    virtual bool interpret(ScDocument& rDoc, const ScAddress& rTopPos, ScFormulaCellGroupRef& xGroup, ScTokenArray& rCode) = 0;
-};
-
-/// Inherit from this for alternate formula group calculation approaches.
-class SC_DLLPUBLIC FormulaGroupInterpreterSoftware : public FormulaGroupInterpreter
-{
-public:
-    FormulaGroupInterpreterSoftware();
-    virtual ~FormulaGroupInterpreterSoftware() {}
-
-    virtual ScMatrixRef inverseMatrix(const ScMatrix& rMat) SAL_OVERRIDE;
-    virtual CompiledFormula* createCompiledFormula(ScDocument& rDoc,
-                                                   const ScAddress& rTopPos,
-                                                   ScFormulaCellGroupRef& xGroup,
-                                                   ScTokenArray& rCode) SAL_OVERRIDE;
-    virtual bool interpret(ScDocument& rDoc, const ScAddress& rTopPos, ScFormulaCellGroupRef& xGroup, ScTokenArray& rCode) SAL_OVERRIDE;
-};
-
-}
-
-#endif // SC_INC_FORMULAGROUPINTERPRETER_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/qa/unit/opencl-test.cxx b/sc/qa/unit/opencl-test.cxx
index 486ee23..c26e25d 100644
--- a/sc/qa/unit/opencl-test.cxx
+++ b/sc/qa/unit/opencl-test.cxx
@@ -31,7 +31,7 @@
 #include "userdat.hxx"
 #include "formulacell.hxx"
 #include "platforminfo.hxx"
-#include "formulagroupinterpreter.hxx"
+#include "formulagroup.hxx"
 
 #include <svx/svdpage.hxx>
 
diff --git a/sc/source/core/data/column2.cxx b/sc/source/core/data/column2.cxx
index f2f027d..952f5bd 100644
--- a/sc/source/core/data/column2.cxx
+++ b/sc/source/core/data/column2.cxx
@@ -39,7 +39,7 @@
 #include "cellvalue.hxx"
 #include "tokenarray.hxx"
 #include "globalnames.hxx"
-#include "formulagroupcontext.hxx"
+#include "formulagroup.hxx"
 #include "listenercontext.hxx"
 #include "mtvcellfunc.hxx"
 #include "scmatrix.hxx"
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index 3fc4b33..23a4bcf 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -90,7 +90,7 @@
 #include "clipcontext.hxx"
 #include "refupdatecontext.hxx"
 #include "scopetools.hxx"
-#include "formulagroupcontext.hxx"
+#include "formulagroup.hxx"
 
 using namespace com::sun::star;
 
diff --git a/sc/source/core/data/documen7.cxx b/sc/source/core/data/documen7.cxx
index f84b83a..7dd9821 100644
--- a/sc/source/core/data/documen7.cxx
+++ b/sc/source/core/data/documen7.cxx
@@ -36,7 +36,7 @@
 #include "sheetevents.hxx"
 #include "tokenarray.hxx"
 #include "listenercontext.hxx"
-#include "formulagroupcontext.hxx"
+#include "formulagroup.hxx"
 
 #include <tools/shl.hxx>
 
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 016778a..f8a6d92 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -94,7 +94,7 @@
 #include "listenercontext.hxx"
 #include "scopetools.hxx"
 #include "refupdatecontext.hxx"
-#include "formulagroupcontext.hxx"
+#include "formulagroup.hxx"
 
 #include "formula/vectortoken.hxx"
 
diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx
index 8a7d644..30888af 100644
--- a/sc/source/core/data/formulacell.cxx
+++ b/sc/source/core/data/formulacell.cxx
@@ -45,7 +45,7 @@
 #include "formula/vectortoken.hxx"
 #include "svl/intitem.hxx"
 #include "rtl/strbuf.hxx"
-#include "formulagroupinterpreter.hxx"
+#include "formulagroup.hxx"
 #include "listenercontext.hxx"
 #include "types.hxx"
 #include "scopetools.hxx"
diff --git a/sc/source/core/inc/dynamickernel.hxx b/sc/source/core/inc/dynamickernel.hxx
index e4a42aa..b3f3e8f 100644
--- a/sc/source/core/inc/dynamickernel.hxx
+++ b/sc/source/core/inc/dynamickernel.hxx
@@ -12,7 +12,7 @@
 
 #include <config_features.h>
 
-#include "formulagroupinterpreter.hxx"
+#include "formulagroup.hxx"
 
 #if !HAVE_FEATURE_OPENCL
 
diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx
index a66e4e1..f656c7e 100644
--- a/sc/source/core/opencl/formulagroupcl.cxx
+++ b/sc/source/core/opencl/formulagroupcl.cxx
@@ -7,7 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
-#include "formulagroupinterpreter.hxx"
+#include "formulagroup.hxx"
 #include "grouptokenconverter.hxx"
 #include "document.hxx"
 #include "formulacell.hxx"
diff --git a/sc/source/core/tool/clkernelthread.cxx b/sc/source/core/tool/clkernelthread.cxx
index f4debc6..e7bda8a 100644
--- a/sc/source/core/tool/clkernelthread.cxx
+++ b/sc/source/core/tool/clkernelthread.cxx
@@ -9,7 +9,7 @@
 
 #include <sal/log.hxx>
 
-#include "formulagroupinterpreter.hxx"
+#include "formulagroup.hxx"
 #include "grouptokenconverter.hxx"
 
 #include "clkernelthread.hxx"
diff --git a/sc/source/core/tool/formulagroup.cxx b/sc/source/core/tool/formulagroup.cxx
index 7bb10ad..ba85800 100644
--- a/sc/source/core/tool/formulagroup.cxx
+++ b/sc/source/core/tool/formulagroup.cxx
@@ -9,8 +9,7 @@
 
 #include <config_features.h>
 
-#include "formulagroupcontext.hxx"
-#include "formulagroupinterpreter.hxx"
+#include "formulagroup.hxx"
 #include "document.hxx"
 #include "formulacell.hxx"
 #include "tokenarray.hxx"
diff --git a/sc/source/core/tool/formulaopt.cxx b/sc/source/core/tool/formulaopt.cxx
index 271ee0b2..79d84a6 100644
--- a/sc/source/core/tool/formulaopt.cxx
+++ b/sc/source/core/tool/formulaopt.cxx
@@ -15,7 +15,7 @@
 #include "formulaopt.hxx"
 #include "miscuno.hxx"
 #include "global.hxx"
-#include "formulagroupinterpreter.hxx"
+#include "formulagroup.hxx"
 
 using namespace utl;
 using namespace com::sun::star::uno;
diff --git a/sc/source/core/tool/interpr5.cxx b/sc/source/core/tool/interpr5.cxx
index 8558e17..2c03ccb 100644
--- a/sc/source/core/tool/interpr5.cxx
+++ b/sc/source/core/tool/interpr5.cxx
@@ -35,7 +35,7 @@
 #include "scmatrix.hxx"
 #include "globstr.hrc"
 #include "cellkeytranslator.hxx"
-#include "formulagroupinterpreter.hxx"
+#include "formulagroup.hxx"
 
 #include <vector>
 
diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index 3085451..eefb7f6 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -15,7 +15,7 @@
 #include "svtools/treelistentry.hxx"
 
 #if HAVE_FEATURE_OPENCL
-#include "formulagroupinterpreter.hxx"
+#include "formulagroup.hxx"
 #endif
 
 namespace {


More information about the Libreoffice-commits mailing list