Kaydet (Commit) 27837969 authored tarafından Noel Grandin's avatar Noel Grandin Kaydeden (comit) Stephan Bergmann

fdo#46808, Adapt io::Pipe UNO service to new style

Create a merged XPipe interface for this service to implement.
Which is backwards-compatible, but does not require creating a new service.

Change-Id: I682633c6252aab503eb2469c9bd2ba771f10bc4b
üst 9b072881
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
#include <tools/diagnose_ex.h> #include <tools/diagnose_ex.h>
#include <sot/storage.hxx> #include <sot/storage.hxx>
#include <com/sun/star/io/Pipe.hpp>
#include <com/sun/star/ui/dialogs/XFilePicker.hpp> #include <com/sun/star/ui/dialogs/XFilePicker.hpp>
#include <com/sun/star/ui/dialogs/XFolderPicker.hpp> #include <com/sun/star/ui/dialogs/XFolderPicker.hpp>
#include <com/sun/star/ui/dialogs/XFilterManager.hpp> #include <com/sun/star/ui/dialogs/XFilterManager.hpp>
...@@ -55,6 +56,7 @@ ...@@ -55,6 +56,7 @@
#include <com/sun/star/ucb/NameClash.hpp> #include <com/sun/star/ucb/NameClash.hpp>
#include "com/sun/star/packages/manifest/XManifestWriter.hpp" #include "com/sun/star/packages/manifest/XManifestWriter.hpp"
#include <unotools/pathoptions.hxx> #include <unotools/pathoptions.hxx>
#include <comphelper/componentcontext.hxx>
#include <comphelper/processfactory.hxx> #include <comphelper/processfactory.hxx>
#include <com/sun/star/util/VetoException.hpp> #include <com/sun/star/util/VetoException.hpp>
...@@ -1356,8 +1358,7 @@ void LibPage::ExportAsPackage( const String& aLibName ) ...@@ -1356,8 +1358,7 @@ void LibPage::ExportAsPackage( const String& aLibName )
// write into pipe: // write into pipe:
Reference<packages::manifest::XManifestWriter> xManifestWriter( xMSF->createInstance Reference<packages::manifest::XManifestWriter> xManifestWriter( xMSF->createInstance
( DEFINE_CONST_UNICODE("com.sun.star.packages.manifest.ManifestWriter") ), UNO_QUERY ); ( DEFINE_CONST_UNICODE("com.sun.star.packages.manifest.ManifestWriter") ), UNO_QUERY );
Reference<io::XOutputStream> xPipe( xMSF->createInstance Reference<io::XOutputStream> xPipe( io::Pipe::create(comphelper::ComponentContext(xMSF).getUNOContext()), UNO_QUERY );
( DEFINE_CONST_UNICODE("com.sun.star.io.Pipe") ), UNO_QUERY );
xManifestWriter->writeManifestSequence( xManifestWriter->writeManifestSequence(
xPipe, Sequence< Sequence<beans::PropertyValue> >( xPipe, Sequence< Sequence<beans::PropertyValue> >(
&manifest[ 0 ], manifest.size() ) ); &manifest[ 0 ], manifest.size() ) );
......
...@@ -84,9 +84,7 @@ void mygetchar() ...@@ -84,9 +84,7 @@ void mygetchar()
void testPipe( const Reference < XMultiServiceFactory > & rSmgr ) void testPipe( const Reference < XMultiServiceFactory > & rSmgr )
{ {
Reference < XOutputStream > rOut( Reference < XOutputStream > rOut( Pipe::create(comphelper::ComponentContext(rSmgr).getUNOContext()), UNO_QUERY_THROW );
rSmgr->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.Pipe" )) ),
UNO_QUERY );
OSL_ASSERT( rOut.is() ); OSL_ASSERT( rOut.is() );
......
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
#include "com/sun/star/graphic/XGraphic.hpp" #include "com/sun/star/graphic/XGraphic.hpp"
#include "com/sun/star/graphic/GraphicProvider.hpp" #include "com/sun/star/graphic/GraphicProvider.hpp"
#include "com/sun/star/graphic/XGraphicProvider.hpp" #include "com/sun/star/graphic/XGraphicProvider.hpp"
#include <com/sun/star/io/Pipe.hpp>
#include "com/sun/star/io/XOutputStream.hpp" #include "com/sun/star/io/XOutputStream.hpp"
#include "com/sun/star/io/XInputStream.hpp" #include "com/sun/star/io/XInputStream.hpp"
#include "com/sun/star/task/InteractionClassification.hpp" #include "com/sun/star/task/InteractionClassification.hpp"
...@@ -1182,9 +1183,7 @@ void BackendImpl::PackageImpl::exportTo( ...@@ -1182,9 +1183,7 @@ void BackendImpl::PackageImpl::exportTo(
xContext->getServiceManager()->createInstanceWithContext( xContext->getServiceManager()->createInstanceWithContext(
OUSTR("com.sun.star.packages.manifest.ManifestWriter"), OUSTR("com.sun.star.packages.manifest.ManifestWriter"),
xContext ), UNO_QUERY_THROW ); xContext ), UNO_QUERY_THROW );
Reference<io::XOutputStream> xPipe( Reference<io::XOutputStream> xPipe( io::Pipe::create(xContext), UNO_QUERY_THROW );
xContext->getServiceManager()->createInstanceWithContext(
OUSTR("com.sun.star.io.Pipe"), xContext ), UNO_QUERY_THROW );
xManifestWriter->writeManifestSequence( xManifestWriter->writeManifestSequence(
xPipe, comphelper::containerToSequence(manifest) ); xPipe, comphelper::containerToSequence(manifest) );
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
* *
************************************************************************/ ************************************************************************/
#include <com/sun/star/io/Pipe.hpp>
#include <com/sun/star/io/XActiveDataControl.hpp> #include <com/sun/star/io/XActiveDataControl.hpp>
#include <com/sun/star/io/XActiveDataSource.hpp> #include <com/sun/star/io/XActiveDataSource.hpp>
#include <com/sun/star/xml/sax/XParser.hpp> #include <com/sun/star/xml/sax/XParser.hpp>
...@@ -199,12 +200,7 @@ void SvxReadXML( EditEngine& rEditEngine, SvStream& rStream, const ESelection& r ...@@ -199,12 +200,7 @@ void SvxReadXML( EditEngine& rEditEngine, SvStream& rStream, const ESelection& r
break; break;
} }
uno::Reference< XInterface > xPipe( xServiceFactory->createInstance(OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.Pipe") ) ) ); uno::Reference< XInterface > xPipe( Pipe::create(comphelper::ComponentContext(xServiceFactory).getUNOContext()), UNO_QUERY );
if( !xPipe.is() )
{
OSL_FAIL( "XMLReader::Read: com.sun.star.io.Pipe service missing" );
break;
}
// connect pipe's output stream to the data source // connect pipe's output stream to the data source
xSource->setOutputStream( uno::Reference< io::XOutputStream >::query( xPipe ) ); xSource->setOutputStream( uno::Reference< io::XOutputStream >::query( xPipe ) );
......
...@@ -62,6 +62,7 @@ ...@@ -62,6 +62,7 @@
#include <com/sun/star/util/XMacroExpander.hpp> #include <com/sun/star/util/XMacroExpander.hpp>
#include <com/sun/star/io/Pipe.hpp>
#include <com/sun/star/io/XInputStream.hpp> #include <com/sun/star/io/XInputStream.hpp>
#include <com/sun/star/io/XOutputStream.hpp> #include <com/sun/star/io/XOutputStream.hpp>
#include <com/sun/star/io/XActiveDataSource.hpp> #include <com/sun/star/io/XActiveDataSource.hpp>
...@@ -342,11 +343,8 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False) ...@@ -342,11 +343,8 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False)
tsink->setInputStream(xInputStream); tsink->setInputStream(xInputStream);
// create pipe // create pipe
css::uno::Reference<XOutputStream> css::uno::Reference<XOutputStream> pipeout(
pipeout( Pipe::create(comphelper::ComponentContext(m_rServiceFactory).getUNOContext()),
m_rServiceFactory->createInstance(
OUString(
"com.sun.star.io.Pipe" )),
UNO_QUERY); UNO_QUERY);
css::uno::Reference<XInputStream> pipein(pipeout, UNO_QUERY); css::uno::Reference<XInputStream> pipein(pipeout, UNO_QUERY);
...@@ -498,11 +496,8 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False) ...@@ -498,11 +496,8 @@ m_rServiceFactory(r), m_bTerminated(sal_False), m_bError(sal_False)
m_tcontrol->addListener(css::uno::Reference<XStreamListener> (this)); m_tcontrol->addListener(css::uno::Reference<XStreamListener> (this));
// create pipe // create pipe
css::uno::Reference<XOutputStream> css::uno::Reference<XOutputStream> pipeout(
pipeout( Pipe::create(comphelper::ComponentContext(m_rServiceFactory).getUNOContext()),
m_rServiceFactory->createInstance(
OUString(
"com.sun.star.io.Pipe" )),
UNO_QUERY); UNO_QUERY);
css::uno::Reference<XInputStream> pipein(pipeout, UNO_QUERY); css::uno::Reference<XInputStream> pipein(pipeout, UNO_QUERY);
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "serialization_app_xml.hxx" #include "serialization_app_xml.hxx"
#include <comphelper/processfactory.hxx> #include <comphelper/processfactory.hxx>
#include <com/sun/star/io/Pipe.hpp>
#include <com/sun/star/xml/dom/XNode.hpp> #include <com/sun/star/xml/dom/XNode.hpp>
#include <com/sun/star/xml/dom/XDocument.hpp> #include <com/sun/star/xml/dom/XDocument.hpp>
#include <com/sun/star/xml/dom/XNodeList.hpp> #include <com/sun/star/xml/dom/XNodeList.hpp>
...@@ -42,8 +43,7 @@ ...@@ -42,8 +43,7 @@
CSerializationAppXML::CSerializationAppXML() CSerializationAppXML::CSerializationAppXML()
: m_aFactory(comphelper::getProcessServiceFactory()) : m_aFactory(comphelper::getProcessServiceFactory())
, m_aPipe(CSS::uno::Reference< CSS::io::XOutputStream > (m_aFactory->createInstance( , m_aPipe(CSS::io::Pipe::create(comphelper::getProcessComponentContext()), CSS::uno::UNO_QUERY_THROW)
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.Pipe") ) ), CSS::uno::UNO_QUERY))
{ {
OSL_ENSURE(m_aPipe.is(), "cannot create Pipe"); OSL_ENSURE(m_aPipe.is(), "cannot create Pipe");
} }
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
************************************************************************/ ************************************************************************/
#include <com/sun/star/io/Pipe.hpp>
#include <com/sun/star/xml/xpath/XPathObjectType.hpp> #include <com/sun/star/xml/xpath/XPathObjectType.hpp>
#include <com/sun/star/xml/dom/XNode.hpp> #include <com/sun/star/xml/dom/XNode.hpp>
#include <com/sun/star/xml/dom/XText.hpp> #include <com/sun/star/xml/dom/XText.hpp>
...@@ -49,8 +50,7 @@ using namespace CSS::xml::dom; ...@@ -49,8 +50,7 @@ using namespace CSS::xml::dom;
CSerializationURLEncoded::CSerializationURLEncoded() CSerializationURLEncoded::CSerializationURLEncoded()
: m_aFactory(comphelper::getProcessServiceFactory()) : m_aFactory(comphelper::getProcessServiceFactory())
, m_aPipe(Reference< XOutputStream > (m_aFactory->createInstance( , m_aPipe(Pipe::create(comphelper::getProcessComponentContext()), UNO_QUERY_THROW)
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.Pipe") ) ), UNO_QUERY))
{ {
} }
......
...@@ -36,7 +36,9 @@ ...@@ -36,7 +36,9 @@
#include <rtl/strbuf.hxx> #include <rtl/strbuf.hxx>
#include <rtl/string.hxx> #include <rtl/string.hxx>
#include <osl/file.hxx> #include <osl/file.hxx>
#include <comphelper/componentcontext.hxx>
#include <ucbhelper/content.hxx> #include <ucbhelper/content.hxx>
#include <com/sun/star/io/Pipe.hpp>
using namespace CSS::uno; using namespace CSS::uno;
using namespace CSS::ucb; using namespace CSS::ucb;
...@@ -97,8 +99,7 @@ CSubmission::SubmissionResult CSubmissionGet::submit(const CSS::uno::Reference< ...@@ -97,8 +99,7 @@ CSubmission::SubmissionResult CSubmissionGet::submit(const CSS::uno::Reference<
} }
OUString aQueryURL = OStringToOUString(aUTF8QueryURL.makeStringAndClear(), RTL_TEXTENCODING_UTF8); OUString aQueryURL = OStringToOUString(aUTF8QueryURL.makeStringAndClear(), RTL_TEXTENCODING_UTF8);
ucbhelper::Content aContent(aQueryURL, aEnvironment); ucbhelper::Content aContent(aQueryURL, aEnvironment);
CSS::uno::Reference< XOutputStream > aPipe(m_aFactory->createInstance( CSS::uno::Reference< XOutputStream > aPipe( CSS::io::Pipe::create(comphelper::ComponentContext(m_aFactory).getUNOContext()), UNO_QUERY_THROW );
OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.Pipe"))), UNO_QUERY_THROW);
aContent.openStream(aPipe); aContent.openStream(aPipe);
// get reply // get reply
try { try {
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
// streams // streams
#include <com/sun/star/io/XPipe.hpp>
#include <com/sun/star/io/XInputStream.hpp> #include <com/sun/star/io/XInputStream.hpp>
#include <com/sun/star/io/XOutputStream.hpp> #include <com/sun/star/io/XOutputStream.hpp>
#include <com/sun/star/io/XConnectable.hpp> #include <com/sun/star/io/XConnectable.hpp>
...@@ -27,7 +28,7 @@ ...@@ -27,7 +28,7 @@
#include <cppuhelper/factory.hxx> #include <cppuhelper/factory.hxx>
#include <cppuhelper/implbase4.hxx> // OWeakObject #include <cppuhelper/implbase3.hxx> // OWeakObject
#include <osl/conditn.hxx> #include <osl/conditn.hxx>
#include <osl/mutex.hxx> #include <osl/mutex.hxx>
...@@ -52,7 +53,7 @@ using namespace ::com::sun::star::lang; ...@@ -52,7 +53,7 @@ using namespace ::com::sun::star::lang;
namespace io_stm{ namespace io_stm{
class OPipeImpl : class OPipeImpl :
public WeakImplHelper4< XInputStream , XOutputStream , XConnectable , XServiceInfo > public WeakImplHelper3< XPipe , XConnectable , XServiceInfo >
{ {
public: public:
OPipeImpl( ); OPipeImpl( );
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
*************************************************************************/ *************************************************************************/
#include <osl/diagnose.h> #include <osl/diagnose.h>
#include <comphelper/componentcontext.hxx>
#include <cppuhelper/implbase1.hxx> #include <cppuhelper/implbase1.hxx>
#include <cppuhelper/exc_hlp.hxx> #include <cppuhelper/exc_hlp.hxx>
#include <rtl/ustring.h> #include <rtl/ustring.h>
...@@ -43,6 +44,7 @@ ...@@ -43,6 +44,7 @@
#include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/container/XChild.hpp> #include <com/sun/star/container/XChild.hpp>
#include <com/sun/star/beans/XPropertySetInfo.hpp> #include <com/sun/star/beans/XPropertySetInfo.hpp>
#include <com/sun/star/io/Pipe.hpp>
#include <com/sun/star/io/XActiveDataSink.hpp> #include <com/sun/star/io/XActiveDataSink.hpp>
#include <com/sun/star/io/XOutputStream.hpp> #include <com/sun/star/io/XOutputStream.hpp>
#include <com/sun/star/io/XSeekable.hpp> #include <com/sun/star/io/XSeekable.hpp>
...@@ -966,13 +968,8 @@ uno::Reference< io::XInputStream > getInputStream( ...@@ -966,13 +968,8 @@ uno::Reference< io::XInputStream > getInputStream(
try try
{ {
uno::Reference< io::XOutputStream > xOutputStream( uno::Reference< io::XOutputStream > xOutputStream( io::Pipe::create(comphelper::ComponentContext(rContext.xSMgr).getUNOContext()), uno::UNO_QUERY_THROW );
rContext.xSMgr->createInstance(
rtl::OUString("com.sun.star.io.Pipe") ),
uno::UNO_QUERY );
if ( xOutputStream.is() )
{
ucb::OpenCommandArgument2 aArg; ucb::OpenCommandArgument2 aArg;
aArg.Mode = ucb::OpenMode::DOCUMENT; aArg.Mode = ucb::OpenMode::DOCUMENT;
aArg.Priority = 0; // unused aArg.Priority = 0; // unused
...@@ -989,7 +986,6 @@ uno::Reference< io::XInputStream > getInputStream( ...@@ -989,7 +986,6 @@ uno::Reference< io::XInputStream > getInputStream(
xInputStream = uno::Reference< io::XInputStream >( xInputStream = uno::Reference< io::XInputStream >(
xOutputStream, uno::UNO_QUERY ); xOutputStream, uno::UNO_QUERY );
} }
}
catch ( uno::RuntimeException const & ) catch ( uno::RuntimeException const & )
{ {
throw; throw;
......
...@@ -77,7 +77,6 @@ $(eval $(call gb_UnoApi_add_idlfiles_noheader,udkapi,udkapi/com/sun/star/io,\ ...@@ -77,7 +77,6 @@ $(eval $(call gb_UnoApi_add_idlfiles_noheader,udkapi,udkapi/com/sun/star/io,\
MarkableOutputStream \ MarkableOutputStream \
ObjectInputStream \ ObjectInputStream \
ObjectOutputStream \ ObjectOutputStream \
Pipe \
Pump \ Pump \
TextInputStream \ TextInputStream \
TextOutputStream \ TextOutputStream \
...@@ -139,6 +138,7 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,udkapi,udkapi/com/sun/star/container, ...@@ -139,6 +138,7 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,udkapi,udkapi/com/sun/star/container,
EnumerableMap \ EnumerableMap \
)) ))
$(eval $(call gb_UnoApi_add_idlfiles_nohdl,udkapi,udkapi/com/sun/star/io,\ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,udkapi,udkapi/com/sun/star/io,\
Pipe \
SequenceInputStream \ SequenceInputStream \
SequenceOutputStream \ SequenceOutputStream \
TempFile \ TempFile \
...@@ -326,6 +326,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,udkapi,udkapi/com/sun/star/io,\ ...@@ -326,6 +326,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,udkapi,udkapi/com/sun/star/io,\
XObjectInputStream \ XObjectInputStream \
XObjectOutputStream \ XObjectOutputStream \
XOutputStream \ XOutputStream \
XPipe \
XPersist \ XPersist \
XPersistObject \ XPersistObject \
XSeekable \ XSeekable \
......
...@@ -19,11 +19,7 @@ ...@@ -19,11 +19,7 @@
#ifndef __com_sun_star_io_Pipe_idl__ #ifndef __com_sun_star_io_Pipe_idl__
#define __com_sun_star_io_Pipe_idl__ #define __com_sun_star_io_Pipe_idl__
#include <com/sun/star/io/XOutputStream.idl> #include <com/sun/star/io/XPipe.idl>
#include <com/sun/star/io/XInputStream.idl>
module com { module sun { module star { module io { module com { module sun { module star { module io {
...@@ -38,15 +34,7 @@ module com { module sun { module star { module io { ...@@ -38,15 +34,7 @@ module com { module sun { module star { module io {
<p> With the pipe-service, an outputstream can be converted into an <p> With the pipe-service, an outputstream can be converted into an
input stream at the cost of an additional buffer. input stream at the cost of an additional buffer.
*/ */
published service Pipe published service Pipe : XPipe;
{
// DocMerge: empty anyway
interface com::sun::star::io::XOutputStream;
// DocMerge: empty anyway
interface com::sun::star::io::XInputStream;
};
}; }; }; }; }; }; }; };
......
/* -*- 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/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef __com_sun_star_io_XPipe_idl__
#define __com_sun_star_io_XPipe_idl__
#include <com/sun/star/io/XOutputStream.idl>
#include <com/sun/star/io/XInputStream.idl>
module com { module sun { module star { module io {
// DocMerge from xml: service com::sun::star::io::Pipe
/** the implementation of an output stream and an input stream.
<p>
All data written through the outputstream is buffered until it is
read again from the input stream. Often two different threads access
input and outputstream.
<p> With the pipe-service, an outputstream can be converted into an
input stream at the cost of an additional buffer.
*/
published interface XPipe
{
// DocMerge: empty anyway
interface com::sun::star::io::XOutputStream;
// DocMerge: empty anyway
interface com::sun::star::io::XInputStream;
};
}; }; }; };
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment