diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2023-05-29 20:24:02 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-06-01 11:59:06 +0200 |
commit | 5e68d6cfade45f40b1ad46025a81afe4cb8dd337 (patch) | |
tree | af7740f3636e6b303371c764bfe7ff083e847879 /filter/source/odfflatxml/OdfFlatXml.cxx | |
parent | f15a6e1b1b186bf42e1ade05630d17841add2c46 (diff) |
Convert XFastParser into a normal C++ interface
There is no need for it to be an UNO interface anymore (ever since
we started supporting dynamic_cast on UNO objects).
Which means that XImportFilter2 also needs become a C++ interface.
Change-Id: Ice2db0f098271bba32b199bd083b08cb8410ce93
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152388
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'filter/source/odfflatxml/OdfFlatXml.cxx')
-rw-r--r-- | filter/source/odfflatxml/OdfFlatXml.cxx | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/filter/source/odfflatxml/OdfFlatXml.cxx b/filter/source/odfflatxml/OdfFlatXml.cxx index 4c838ab5f40e..0c76d193eb3b 100644 --- a/filter/source/odfflatxml/OdfFlatXml.cxx +++ b/filter/source/odfflatxml/OdfFlatXml.cxx @@ -23,19 +23,19 @@ #include <com/sun/star/beans/PropertyValue.hpp> #include <com/sun/star/xml/XImportFilter.hpp> -#include <com/sun/star/xml/XImportFilter2.hpp> #include <com/sun/star/xml/XExportFilter.hpp> #include <com/sun/star/xml/sax/Parser.hpp> #include <com/sun/star/xml/sax/InputSource.hpp> #include <com/sun/star/xml/sax/XDocumentHandler.hpp> #include <com/sun/star/xml/sax/Writer.hpp> -#include <com/sun/star/xml/sax/XFastParser.hpp> #include <com/sun/star/io/XInputStream.hpp> #include <com/sun/star/io/XOutputStream.hpp> #include <com/sun/star/io/XActiveDataSource.hpp> #include <com/sun/star/io/XSeekable.hpp> #include <comphelper/diagnose_ex.hxx> +#include <sax/ximportfilter2.hxx> +#include <sax/xfastparser.hxx> using namespace ::cppu; using namespace ::osl; @@ -55,8 +55,9 @@ namespace filter::odfflatxml { * OdfFlatXml export and imports ODF flat XML documents by plugging a pass-through * filter implementation into XmlFilterAdaptor. */ - class OdfFlatXml : public WeakImplHelper<XImportFilter, XImportFilter2, - XExportFilter, DocumentHandlerAdapter, css::lang::XServiceInfo> + class OdfFlatXml : public WeakImplHelper<XImportFilter, + XExportFilter, DocumentHandlerAdapter, css::lang::XServiceInfo>, + public XImportFilter2 { private: Reference< XComponentContext > m_xContext; @@ -75,9 +76,9 @@ namespace filter::odfflatxml { const Sequence< OUString >& userData) override; // XImportFilter2 - virtual sal_Bool SAL_CALL + virtual bool importer(const Sequence< PropertyValue >& sourceData, - const Reference< XFastParser >& fastParser, + XFastParser& fastParser, const Sequence< OUString >& userData) override; // XExportFilter @@ -142,9 +143,9 @@ OdfFlatXml::importer( if ( xSeekable.is() ) xSeekable->seek( 0 ); - css::uno::Reference< css::xml::sax::XFastParser > xFastParser (docHandler, UNO_QUERY ); - if( xFastParser.is() ) - xFastParser->parseStream( inputSource ); + XFastParser* pFastParser = dynamic_cast<XFastParser*>(docHandler.get()); + if( pFastParser ) + pFastParser->parseStream( inputSource ); else { Reference<XParser> saxParser = Parser::create(m_xContext); @@ -165,10 +166,10 @@ OdfFlatXml::importer( return true; } -sal_Bool +bool OdfFlatXml::importer( const Sequence< PropertyValue >& sourceData, - const Reference< XFastParser >& xFastParser, + XFastParser& rFastParser, const Sequence< OUString >& /* userData */) { // Read InputStream to read from and a URL used for the system id @@ -201,7 +202,7 @@ OdfFlatXml::importer( if ( xSeekable.is() ) xSeekable->seek( 0 ); - xFastParser->parseStream( inputSource ); + rFastParser.parseStream( inputSource ); } catch (const Exception &) { |