13 #include <string_view>
15 #include <rtl/ustring.hxx>
16 #include <rtl/ref.hxx>
17 #include <osl/mutex.hxx>
18 #include <document.hxx>
20 #include <rtl/strbuf.hxx>
25 #include <orcus/csv_parser.hpp>
32 class DataTransformation;
33 class ExternalDataSource;
52 std::vector<std::shared_ptr<sc::DataTransformation>>&& mrDataTransformations);
60 virtual void execute()
override;
83 virtual const OUString&
GetURL()
const = 0;
85 static std::unique_ptr<SvStream>
FetchStreamFromURL(
const OUString&, OStringBuffer& rBuffer);
102 virtual void Import()
override;
104 const OUString&
GetURL()
const override;
static bool isInternalDataProvider(std::u16string_view rProvider)
static std::vector< OUString > getDataProviders()
sc::ExternalDataSource & mrDataSource
std::function< void()> maImportFinishedHdl
Abstract class for all data provider.
orcus::csv::parser_config maConfig
const OUString & GetURL() const override
ScDBDataManager(const OUString &rDBName, ScDocument *pDoc)
bool mbDeterministic
If true make the threaded import deterministic for the tests.
virtual void execute() override
virtual ~CSVDataProvider() override
This class handles the copying of the data from the imported temporary document to the actual documen...
static std::unique_ptr< SvStream > FetchStreamFromURL(const OUString &, OStringBuffer &rBuffer)
void WriteToDoc(ScDocument &rDoc)
static std::shared_ptr< DataProvider > getDataProvider(ScDocument *pDoc, sc::ExternalDataSource &rDataSource)
std::vector< std::shared_ptr< sc::DataTransformation > > maDataTransformations
std::unique_ptr< ScDocument, o3tl::default_delete< ScDocument > > ScDocumentUniquePtr
CAUTION! The following defines must be in the same namespace as the respective type.
void SetDatabase(const OUString &rDBName)
CSVDataProvider(ScDocument *pDoc, sc::ExternalDataSource &rDataSource)
rtl::Reference< CSVFetchThread > mxCSVFetchThread
osl::Mutex maMtxTerminate
DataProvider(sc::ExternalDataSource &rDataSource)
CSVFetchThread(ScDocument &rDoc, const OUString &, std::function< void()> aImportFinishedHdl, std::vector< std::shared_ptr< sc::DataTransformation >> &&mrDataTransformations)
virtual void Import() override
virtual ~CSVFetchThread() override
ScDocumentUniquePtr mpDoc
bool IsRequestedTerminate()
virtual const OUString & GetURL() const =0