diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2012-01-04 12:06:39 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-01-04 12:06:39 +0100 |
commit | 752f69bad43c86cc18f45b418de25a0f770baa3e (patch) | |
tree | 1451b69d2953f7b624b636c5b135f6ee1733eec5 /unotools | |
parent | a11aa274dac55b06fba32e348a8386fa4fa9d146 (diff) |
Do not export whole class to avoid MS C++ implicitly exporting base template.
Diffstat (limited to 'unotools')
-rw-r--r-- | unotools/inc/unotools/streamwrap.hxx | 22 | ||||
-rw-r--r-- | unotools/source/config/accelcfg.cxx | 3 | ||||
-rw-r--r-- | unotools/source/streaming/streamwrap.cxx | 10 |
3 files changed, 23 insertions, 12 deletions
diff --git a/unotools/inc/unotools/streamwrap.hxx b/unotools/inc/unotools/streamwrap.hxx index f05be3584229..125f68f164aa 100644 --- a/unotools/inc/unotools/streamwrap.hxx +++ b/unotools/inc/unotools/streamwrap.hxx @@ -110,23 +110,24 @@ public: //================================================================== typedef ::cppu::WeakImplHelper1<stario::XOutputStream> OutputStreamWrapper_Base; // needed for some compilers -class UNOTOOLS_DLLPUBLIC OOutputStreamWrapper : public OutputStreamWrapper_Base +class OOutputStreamWrapper : public OutputStreamWrapper_Base { -protected: - // TODO: thread safety! - SvStream& rStream; - public: - OOutputStreamWrapper(SvStream& _rStream) :rStream(_rStream) { } + UNOTOOLS_DLLPUBLIC OOutputStreamWrapper(SvStream& _rStream); + +protected: + virtual ~OOutputStreamWrapper(); // stario::XOutputStream virtual void SAL_CALL writeBytes(const staruno::Sequence< sal_Int8 >& aData) throw(stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException); virtual void SAL_CALL flush() throw(stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException); virtual void SAL_CALL closeOutput() throw(stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException); -protected: /// throws an exception according to the error flag of m_pSvStream void checkError() const; + + // TODO: thread safety! + SvStream& rStream; }; //================================================================== @@ -137,12 +138,15 @@ typedef ::cppu::ImplHelper1 < ::com::sun::star::io::XSeekable /** helper class for wrapping an SvStream into an <type scope="com.sun.star.io">XOutputStream</type> which is seekable (i.e. supports the <type scope="com.sun.star.io">XSeekable</type> interface). */ -class UNOTOOLS_DLLPUBLIC OSeekableOutputStreamWrapper +class OSeekableOutputStreamWrapper :public OOutputStreamWrapper ,public OSeekableOutputStreamWrapper_Base { public: - OSeekableOutputStreamWrapper(SvStream& _rStream); + UNOTOOLS_DLLPUBLIC OSeekableOutputStreamWrapper(SvStream& _rStream); + +private: + virtual ~OSeekableOutputStreamWrapper(); // disambiguate XInterface virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& _rType ) throw (::com::sun::star::uno::RuntimeException); diff --git a/unotools/source/config/accelcfg.cxx b/unotools/source/config/accelcfg.cxx index 61209f7ff22d..a93a58be29b5 100644 --- a/unotools/source/config/accelcfg.cxx +++ b/unotools/source/config/accelcfg.cxx @@ -187,8 +187,7 @@ SvtAcceleratorConfiguration::~SvtAcceleratorConfiguration() INetURLObject aObj( aUserConfig ); aObj.insertName( String::CreateFromAscii("GlobalKeyBindings.xml") ); SvStream* pStream = ::utl::UcbStreamHelper::CreateStream( aObj.GetMainURL( INetURLObject::NO_DECODE ), STREAM_STD_READWRITE|STREAM_TRUNC ); - ::utl::OOutputStreamWrapper aHelper( *pStream ); - com::sun::star::uno::Reference < ::com::sun::star::io::XOutputStream > xOut( &aHelper ); + com::sun::star::uno::Reference < ::com::sun::star::io::XOutputStream > xOut( new utl::OOutputStreamWrapper( *pStream ) ); pImp->Commit( xOut ); delete pStream; } diff --git a/unotools/source/streaming/streamwrap.cxx b/unotools/source/streaming/streamwrap.cxx index 0d8cf64b1dc1..4558494adf97 100644 --- a/unotools/source/streaming/streamwrap.cxx +++ b/unotools/source/streaming/streamwrap.cxx @@ -223,7 +223,13 @@ sal_Int64 SAL_CALL OSeekableInputStreamWrapper::getLength( ) throw (IOException //================================================================== //= OOutputStreamWrapper //================================================================== -//------------------------------------------------------------------------------ + +OOutputStreamWrapper::OOutputStreamWrapper(SvStream& _rStream): + rStream(_rStream) +{} + +OOutputStreamWrapper::~OOutputStreamWrapper() {} + void SAL_CALL OOutputStreamWrapper::writeBytes(const staruno::Sequence< sal_Int8 >& aData) throw( stario::NotConnectedException, stario::BufferSizeExceededException, staruno::RuntimeException ) { sal_uInt32 nWritten = rStream.Write(aData.getConstArray(),aData.getLength()); @@ -265,6 +271,8 @@ OSeekableOutputStreamWrapper::OSeekableOutputStreamWrapper(SvStream& _rStream) { } +OSeekableOutputStreamWrapper::~OSeekableOutputStreamWrapper() {} + //------------------------------------------------------------------------------ Any SAL_CALL OSeekableOutputStreamWrapper::queryInterface( const Type& _rType ) throw (RuntimeException) { |