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@libreoffice.org> Reviewed-by: Jaskaran singh <jvsg1303@gmail.com>
This commit is contained in:
committed by
Jaskaran singh
parent
69d08efffe
commit
46f544fa4b
@@ -427,6 +427,7 @@ $(eval $(call gb_Library_add_exception_objects,sc,\
|
|||||||
sc/source/ui/docshell/docsh8 \
|
sc/source/ui/docshell/docsh8 \
|
||||||
sc/source/ui/docshell/documentlinkmgr \
|
sc/source/ui/docshell/documentlinkmgr \
|
||||||
sc/source/ui/docshell/editable \
|
sc/source/ui/docshell/editable \
|
||||||
|
sc/source/ui/docshell/dataprovider \
|
||||||
sc/source/ui/docshell/externalrefmgr \
|
sc/source/ui/docshell/externalrefmgr \
|
||||||
sc/source/ui/docshell/impex \
|
sc/source/ui/docshell/impex \
|
||||||
sc/source/ui/docshell/macromgr \
|
sc/source/ui/docshell/macromgr \
|
||||||
|
11
sc/source/ui/docshell/dataprovider.cxx
Normal file
11
sc/source/ui/docshell/dataprovider.cxx
Normal file
@@ -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: */
|
80
sc/source/ui/inc/dataprovider.hxx
Normal file
80
sc/source/ui/inc/dataprovider.hxx
Normal file
@@ -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: */
|
Reference in New Issue
Block a user