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:
Jaskaran Singh
2016-10-16 19:14:36 +05:30
committed by Jaskaran singh
parent 69d08efffe
commit 46f544fa4b
3 changed files with 92 additions and 0 deletions

View File

@@ -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 \

View 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: */

View 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: */