From 206c70eef30f7b6f538b88f7fb9505f397bef073 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Thu, 23 Aug 2012 17:23:26 +0200 Subject: fdo#46808, Adapt TempFile UNO service to new style Change-Id: Ia448d6d74201e2be487c6d8317f94be3745808aa --- embeddedobj/source/commonembedding/persistence.cxx | 92 +++++++++++----------- embeddedobj/source/msole/olecomponent.cxx | 8 +- embeddedobj/source/msole/oleembed.cxx | 5 +- embeddedobj/source/msole/olepersist.cxx | 16 ++-- embeddedobj/source/msole/ownview.cxx | 3 +- 5 files changed, 60 insertions(+), 64 deletions(-) (limited to 'embeddedobj') diff --git a/embeddedobj/source/commonembedding/persistence.cxx b/embeddedobj/source/commonembedding/persistence.cxx index a7780dde30b3..4cd67ef22b18 100644 --- a/embeddedobj/source/commonembedding/persistence.cxx +++ b/embeddedobj/source/commonembedding/persistence.cxx @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -53,6 +54,7 @@ #include #include +#include #include #include #include @@ -132,57 +134,53 @@ uno::Reference< io::XInputStream > createTempInpStreamFromStor( uno::Reference< io::XInputStream > xResult; - const ::rtl::OUString aServiceName ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.io.TempFile" ) ); - uno::Reference < io::XStream > xTempStream = uno::Reference < io::XStream > ( - xFactory->createInstance ( aServiceName ), - uno::UNO_QUERY ); - if ( xTempStream.is() ) - { - uno::Reference < lang::XSingleServiceFactory > xStorageFactory( - xFactory->createInstance ( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.embed.StorageFactory" )) ), - uno::UNO_QUERY ); + uno::Reference < io::XStream > xTempStream( io::TempFile::create(comphelper::ComponentContext(xFactory).getUNOContext()), + uno::UNO_QUERY_THROW ); - uno::Sequence< uno::Any > aArgs( 2 ); - aArgs[0] <<= xTempStream; - aArgs[1] <<= embed::ElementModes::READWRITE; - uno::Reference< embed::XStorage > xTempStorage( xStorageFactory->createInstanceWithArguments( aArgs ), - uno::UNO_QUERY ); - if ( !xTempStorage.is() ) - throw uno::RuntimeException(); // TODO: + uno::Reference < lang::XSingleServiceFactory > xStorageFactory( + xFactory->createInstance ( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.embed.StorageFactory" )) ), + uno::UNO_QUERY ); - try - { - xStorage->copyToStorage( xTempStorage ); - } catch( const uno::Exception& e ) - { - throw embed::StorageWrappedTargetException( - ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Can't copy storage!" )), - uno::Reference< uno::XInterface >(), - uno::makeAny( e ) ); - } + uno::Sequence< uno::Any > aArgs( 2 ); + aArgs[0] <<= xTempStream; + aArgs[1] <<= embed::ElementModes::READWRITE; + uno::Reference< embed::XStorage > xTempStorage( xStorageFactory->createInstanceWithArguments( aArgs ), + uno::UNO_QUERY ); + if ( !xTempStorage.is() ) + throw uno::RuntimeException(); // TODO: - try { - uno::Reference< lang::XComponent > xComponent( xTempStorage, uno::UNO_QUERY ); - OSL_ENSURE( xComponent.is(), "Wrong storage implementation!" ); - if ( xComponent.is() ) - xComponent->dispose(); - } - catch ( const uno::Exception& ) - { - } + try + { + xStorage->copyToStorage( xTempStorage ); + } catch( const uno::Exception& e ) + { + throw embed::StorageWrappedTargetException( + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "Can't copy storage!" )), + uno::Reference< uno::XInterface >(), + uno::makeAny( e ) ); + } - try { - uno::Reference< io::XOutputStream > xTempOut = xTempStream->getOutputStream(); - if ( xTempOut.is() ) - xTempOut->closeOutput(); - } - catch ( const uno::Exception& ) - { - } + try { + uno::Reference< lang::XComponent > xComponent( xTempStorage, uno::UNO_QUERY ); + OSL_ENSURE( xComponent.is(), "Wrong storage implementation!" ); + if ( xComponent.is() ) + xComponent->dispose(); + } + catch ( const uno::Exception& ) + { + } - xResult = xTempStream->getInputStream(); + try { + uno::Reference< io::XOutputStream > xTempOut = xTempStream->getOutputStream(); + if ( xTempOut.is() ) + xTempOut->closeOutput(); + } + catch ( const uno::Exception& ) + { } + xResult = xTempStream->getInputStream(); + return xResult; } @@ -587,11 +585,11 @@ uno::Reference< io::XInputStream > OCommonEmbeddedObject::StoreDocumentToTempStr const ::rtl::OUString& aHierarchName ) { uno::Reference < io::XOutputStream > xTempOut( - m_xFactory->createInstance ( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.TempFile" )) ), - uno::UNO_QUERY ); + io::TempFile::create(comphelper::ComponentContext(m_xFactory).getUNOContext()), + uno::UNO_QUERY_THROW ); uno::Reference< io::XInputStream > aResult( xTempOut, uno::UNO_QUERY ); - if ( !xTempOut.is() || !aResult.is() ) + if ( !aResult.is() ) throw uno::RuntimeException(); // TODO: uno::Reference< frame::XStorable > xStorable; diff --git a/embeddedobj/source/msole/olecomponent.cxx b/embeddedobj/source/msole/olecomponent.cxx index 8893091299d2..e785aaaf33e9 100644 --- a/embeddedobj/source/msole/olecomponent.cxx +++ b/embeddedobj/source/msole/olecomponent.cxx @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -1596,11 +1597,8 @@ uno::Any SAL_CALL OleComponent::getTransferData( const datatransfer::DataFlavor& // allow to retrieve stream-representation of the object persistence bSupportedFlavor = sal_True; uno::Reference < io::XStream > xTempFileStream( - m_xFactory->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.TempFile" ) )), - uno::UNO_QUERY ); - - if ( !xTempFileStream.is() ) - throw uno::RuntimeException(); // TODO + io::TempFile::create(comphelper::ComponentContext(m_xFactory).getUNOContext()), + uno::UNO_QUERY_THROW ); uno::Reference< io::XOutputStream > xTempOutStream = xTempFileStream->getOutputStream(); uno::Reference< io::XInputStream > xTempInStream = xTempFileStream->getInputStream(); diff --git a/embeddedobj/source/msole/oleembed.cxx b/embeddedobj/source/msole/oleembed.cxx index 087fb2a328d5..1a65e1a5efdb 100644 --- a/embeddedobj/source/msole/oleembed.cxx +++ b/embeddedobj/source/msole/oleembed.cxx @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -705,8 +706,8 @@ namespace // the solution is only active for Unix systems #ifndef WNT uno::Reference xNativeTempFile( - xFactory->createInstance( - ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.io.TempFile"))), uno::UNO_QUERY_THROW); + io::TempFile::create(comphelper::ComponentContext(xFactory).getUNOContext()), + uno::UNO_QUERY_THROW); uno::Reference < io::XStream > xStream(xNativeTempFile, uno::UNO_QUERY_THROW); uno::Sequence< uno::Any > aArgs( 2 ); diff --git a/embeddedobj/source/msole/olepersist.cxx b/embeddedobj/source/msole/olepersist.cxx index 2d74cb858f09..7939ad527499 100644 --- a/embeddedobj/source/msole/olepersist.cxx +++ b/embeddedobj/source/msole/olepersist.cxx @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -91,11 +92,8 @@ sal_Bool KillFile_Impl( const ::rtl::OUString& aURL, const uno::Reference< lang: ::rtl::OUString aResult; uno::Reference < beans::XPropertySet > xTempFile( - xFactory->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.TempFile" ) )), - uno::UNO_QUERY ); - - if ( !xTempFile.is() ) - throw uno::RuntimeException(); // TODO + io::TempFile::create(comphelper::ComponentContext(xFactory).getUNOContext()), + uno::UNO_QUERY_THROW ); try { xTempFile->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "RemoveFile" )), uno::makeAny( sal_False ) ); @@ -172,7 +170,7 @@ sal_Bool KillFile_Impl( const ::rtl::OUString& aURL, const uno::Reference< lang: try { uno::Reference < beans::XPropertySet > xTempFile( - xFactory->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.TempFile" ) )), + io::TempFile::create(comphelper::ComponentContext(xFactory).getUNOContext()), uno::UNO_QUERY ); uno::Reference < io::XStream > xTempStream( xTempFile, uno::UNO_QUERY_THROW ); @@ -278,7 +276,7 @@ uno::Reference< io::XStream > OleEmbeddedObject::GetNewFilledTempStream_Impl( co OSL_ENSURE( xInStream.is(), "Wrong parameter is provided!\n" ); uno::Reference < io::XStream > xTempFile( - m_xFactory->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.TempFile" ) )), + io::TempFile::create(comphelper::ComponentContext(m_xFactory).getUNOContext()), uno::UNO_QUERY_THROW ); uno::Reference< io::XOutputStream > xTempOutStream = xTempFile->getOutputStream(); @@ -355,7 +353,7 @@ uno::Reference< io::XStream > OleEmbeddedObject::TryToGetAcceptableFormat_Impl( { // this is either a bitmap or a metafile clipboard format, retrieve the pure stream uno::Reference < io::XStream > xResult( - m_xFactory->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.TempFile" ) )), + io::TempFile::create(comphelper::ComponentContext(m_xFactory).getUNOContext()), uno::UNO_QUERY_THROW ); uno::Reference < io::XSeekable > xResultSeek( xResult, uno::UNO_QUERY_THROW ); uno::Reference < io::XOutputStream > xResultOut = xResult->getOutputStream(); @@ -403,7 +401,7 @@ void OleEmbeddedObject::InsertVisualCache_Impl( const uno::Reference< io::XStrea xCachedSeek->seek( 0 ); uno::Reference < io::XStream > xTempFile( - m_xFactory->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.TempFile" ) )), + io::TempFile::create(comphelper::ComponentContext(m_xFactory).getUNOContext()), uno::UNO_QUERY_THROW ); uno::Reference< io::XSeekable > xTempSeek( xTempFile, uno::UNO_QUERY_THROW ); diff --git a/embeddedobj/source/msole/ownview.cxx b/embeddedobj/source/msole/ownview.cxx index 354ff11e3ece..c5bb43ad9b11 100644 --- a/embeddedobj/source/msole/ownview.cxx +++ b/embeddedobj/source/msole/ownview.cxx @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -276,7 +277,7 @@ sal_Bool OwnView_Impl::ReadContentsAndGenerateTempFile( const uno::Reference< io // create m_aNativeTempURL ::rtl::OUString aNativeTempURL; uno::Reference < beans::XPropertySet > xNativeTempFile( - m_xFactory->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.io.TempFile" ) )), + io::TempFile::create(comphelper::ComponentContext(m_xFactory).getUNOContext()), uno::UNO_QUERY_THROW ); uno::Reference < io::XStream > xNativeTempStream( xNativeTempFile, uno::UNO_QUERY_THROW ); uno::Reference < io::XOutputStream > xNativeOutTemp = xNativeTempStream->getOutputStream(); -- cgit