20#include <com/sun/star/io/XInputStreamProvider.hpp>
21#include <com/sun/star/xml/sax/Parser.hpp>
22#include <com/sun/star/xml/sax/Writer.hpp>
37class InputStreamProvider
38 :
public ::cppu::WeakImplHelper< io::XInputStreamProvider >
43 explicit InputStreamProvider( std::vector<sal_Int8>&& rBytes )
60 uno::Reference< container::XNameContainer >
const & xDialogModel,
61 uno::Reference< uno::XComponentContext >
const & xContext,
62 uno::Reference< XModel >
const & xDocument )
64 uno::Reference< xml::sax::XWriter > xWriter = xml::sax::Writer::create(xContext);
66 std::vector<sal_Int8> aBytes;
69 uno::Reference< xml::sax::XExtendedDocumentHandler > xHandler(xWriter, uno::UNO_QUERY_THROW);
72 return new InputStreamProvider( std::move(aBytes) );
76 uno::Reference< io::XInputStream >
const & xInput,
77 uno::Reference< container::XNameContainer >
const & xDialogModel,
78 uno::Reference< uno::XComponentContext >
const & xContext,
79 uno::Reference< XModel >
const & xDocument )
81 uno::Reference< xml::sax::XParser > xParser = xml::sax::Parser::create( xContext );
84 xParser->setDocumentHandler(
importDialogModel( xDialogModel, xContext, xDocument ) );
86 xml::sax::InputSource source;
87 source.aInputStream = xInput;
88 source.sSystemId =
"virtual file";
90 xParser->parseStream( source );
Reference< io::XInputStream > createInputStream(std::vector< sal_Int8 > &&rInData)
void importDialogModel(uno::Reference< io::XInputStream > const &xInput, uno::Reference< container::XNameContainer > const &xDialogModel, uno::Reference< uno::XComponentContext > const &xContext, uno::Reference< XModel > const &xDocument)
uno::Reference< io::XInputStreamProvider > exportDialogModel(uno::Reference< container::XNameContainer > const &xDialogModel, uno::Reference< uno::XComponentContext > const &xContext, uno::Reference< XModel > const &xDocument)
Reference< io::XOutputStream > createOutputStream(std::vector< sal_Int8 > *pOutData)
std::vector< sal_Int8 > const _bytes