[Libreoffice-commits] core.git: sc/Library_sc.mk sc/source

Jaskaran Singh jvsg1303 at gmail.com
Thu Nov 17 12:32:17 UTC 2016


 sc/Library_sc.mk                       |    1 
 sc/source/ui/docshell/dataprovider.cxx |   11 ++++
 sc/source/ui/inc/dataprovider.hxx      |   80 +++++++++++++++++++++++++++++++++
 3 files changed, 92 insertions(+)

New commits:
commit 46f544fa4b9ce43d3c44be1f12ff0d85d12bdb0e
Author: Jaskaran Singh <jvsg1303 at gmail.com>
Date:   Sun Oct 16 19:14:36 2016 +0530

    Add Skeleton for DataProvider Class
    
    DataProvider class serves as an abstraction of various External
    Data Importing Techniques we have and the others which
    could be implemented in the future.
    
    Change-Id: I9fc9455f7fbf9025aace4c3248df9b32f522ce52
    Reviewed-on: https://gerrit.libreoffice.org/30906
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Jaskaran singh <jvsg1303 at gmail.com>

diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk
index 0e21903..3714c96 100644
--- a/sc/Library_sc.mk
+++ b/sc/Library_sc.mk
@@ -427,6 +427,7 @@ $(eval $(call gb_Library_add_exception_objects,sc,\
     sc/source/ui/docshell/docsh8 \
     sc/source/ui/docshell/documentlinkmgr \
     sc/source/ui/docshell/editable \
+    sc/source/ui/docshell/dataprovider \
     sc/source/ui/docshell/externalrefmgr \
     sc/source/ui/docshell/impex \
     sc/source/ui/docshell/macromgr \
diff --git a/sc/source/ui/docshell/dataprovider.cxx b/sc/source/ui/docshell/dataprovider.cxx
new file mode 100644
index 0000000..37b6d53
--- /dev/null
+++ b/sc/source/ui/docshell/dataprovider.cxx
@@ -0,0 +1,11 @@
+/* -*- 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/.
+ */
+#include <dataprovider.hxx>
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/dataprovider.hxx b/sc/source/ui/inc/dataprovider.hxx
new file mode 100644
index 0000000..162ecbe
--- /dev/null
+++ b/sc/source/ui/inc/dataprovider.hxx
@@ -0,0 +1,80 @@
+/* -*- 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_SOURCE_UI_INC_DATAPROVIDER_HXX
+#define INCLUDED_SC_SOURCE_UI_INC_DATAPROVIDER_HXX
+
+#include <salhelper/thread.hxx>
+#include <tools/stream.hxx>
+#include <rtl/ustring.hxx>
+#include <address.hxx>
+
+namespace sc {
+
+class CSVFetchThread : public salhelper::Thread
+{
+    SvStream *mpStream;
+    bool mbTerminate;
+
+    virtual void execute() override;
+
+public:
+    CSVFetchThread();
+    virtual ~CSVFetchThread() override;
+
+    void RequestTerminate();
+    void IsRequestedTerminate();
+    void Terminate();
+    void EndThread();
+};
+
+class DataProvider
+{
+    virtual ~DataProvider() = 0;
+
+    virtual void StartImport() = 0;
+    virtual void StopImport() = 0;
+    virtual void Refresh() = 0;
+    virtual void SetUrl(OUString) = 0;
+    virtual void SetRefreshRate(double) = 0;
+
+    virtual ScRange GetRange() const = 0;
+    virtual const OUString& GetURL() const = 0;
+
+protected:
+    virtual void DecodeURL() = 0;
+};
+
+class CSVDataProvider : public DataProvider
+{
+    OUString maURL;
+    double mnRefreshRate;
+
+    bool mbImportUnderway;
+
+public:
+    CSVDataProvider (OUString& rUrl);
+    virtual ~CSVDataProvider() override;
+
+    virtual void StartImport() override;
+    virtual void StopImport() override;
+    virtual void Refresh() override;
+    virtual void SetUrl(OUString) override;
+    virtual void SetRefreshRate(double mnRefreshRate) override;
+
+    ScRange GetRange() const override;
+    const OUString& GetURL() const override { return maURL; }
+
+private:
+    virtual void DecodeURL() override;
+};
+
+}
+#endif
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list