LibreOffice Module sc (master)  1
datamapper.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 #pragma once
11 
12 #include <vector>
13 
14 #include "scdllapi.h"
15 
16 #include <rtl/ustring.hxx>
17 
18 #include "orcusxml.hxx"
19 
20 class ScDocument;
21 
22 namespace sc
23 {
24 class ScDBDataManager;
25 class DataProvider;
26 class DataTransformation;
27 
29 {
30 private:
38  OUString maURL;
39 
53  OUString maProvider;
54 
61  OUString maID;
62 
64 
65  std::shared_ptr<DataProvider> mpDataProvider;
66  std::shared_ptr<ScDBDataManager> mpDBDataManager;
67 
68  std::vector<std::shared_ptr<sc::DataTransformation>> maDataTransformations;
69 
71 
72 public:
73  ExternalDataSource(const OUString& rURL, const OUString& rProvider, ScDocument* pDoc);
74 
75  void setUpdateFrequency(double nUpdateFrequency);
76 
77  void setID(const OUString& rID);
78  void setURL(const OUString& rURL);
79  void setProvider(const OUString& rProvider);
80  void setXMLImportParam(const ScOrcusImportXMLParam& rParam);
81 
82  const OUString& getURL() const;
83  const OUString& getProvider() const;
84  const OUString& getID() const;
85  const ScOrcusImportXMLParam& getXMLImportParam() const;
86  static double getUpdateFrequency();
87  OUString getDBName() const;
88  void setDBData(const OUString& rDBName);
89  ScDBDataManager* getDBManager();
90 
91  void refresh(ScDocument* pDoc, bool bDeterministic = false);
92 
93  void AddDataTransformation(const std::shared_ptr<sc::DataTransformation>& mpDataTransformation);
94  const std::vector<std::shared_ptr<sc::DataTransformation>>& getDataTransformation() const;
95 };
96 
98 {
99  //ScDocument& mrDoc;
100  std::vector<ExternalDataSource> maDataSources;
101 
102 public:
104 
106 
107  void insertDataSource(const ExternalDataSource& rSource);
108 
109  const std::vector<ExternalDataSource>& getDataSources() const;
110  std::vector<ExternalDataSource>& getDataSources();
111 };
112 }
113 
114 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This class handles the copying of the data from the imported temporary document to the actual documen...
std::shared_ptr< DataProvider > mpDataProvider
Definition: datamapper.hxx:65
OUString maProvider
The data provider is a unique identifier that will allow to identify and instantiate the required dat...
Definition: datamapper.hxx:53
std::vector< ExternalDataSource > maDataSources
Definition: datamapper.hxx:100
std::vector< std::shared_ptr< sc::DataTransformation > > maDataTransformations
Definition: datamapper.hxx:68
OUString maID
The ID allows the same data provider to support different data streams.
Definition: datamapper.hxx:61
OUString maURL
The URL for the external data provider.
Definition: datamapper.hxx:38
std::shared_ptr< ScDBDataManager > mpDBDataManager
Definition: datamapper.hxx:66
#define SC_DLLPUBLIC
Definition: scdllapi.h:27
ScOrcusImportXMLParam maParam
Definition: datamapper.hxx:63