blob: 98f283de40decff7dbfa17ba2474eb280608d8fa [file] [log] [blame]
/**************************************************************
*
* 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
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_package.hxx"
#include "ocompinstream.hxx"
#include <com/sun/star/embed/StorageFormats.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
#include <osl/diagnose.h>
#include "owriteablestream.hxx"
#include "xstorage.hxx"
using namespace ::com::sun::star;
//-----------------------------------------------
OInputCompStream::OInputCompStream( OWriteStream_Impl& aImpl,
uno::Reference < io::XInputStream > xStream,
const uno::Sequence< beans::PropertyValue >& aProps,
sal_Int32 nStorageType )
: m_pImpl( &aImpl )
, m_rMutexRef( m_pImpl->m_rMutexRef )
, m_xStream( xStream )
, m_pInterfaceContainer( NULL )
, m_aProperties( aProps )
, m_bDisposed( sal_False )
, m_nStorageType( nStorageType )
{
OSL_ENSURE( m_pImpl->m_rMutexRef.Is(), "No mutex is provided!\n" );
if ( !m_pImpl->m_rMutexRef.Is() )
throw uno::RuntimeException(); // just a disaster
OSL_ENSURE( xStream.is(), "No stream is provided!\n" );
}
//-----------------------------------------------
OInputCompStream::OInputCompStream( uno::Reference < io::XInputStream > xStream,
const uno::Sequence< beans::PropertyValue >& aProps,
sal_Int32 nStorageType )
: m_pImpl( NULL )
, m_rMutexRef( new SotMutexHolder )
, m_xStream( xStream )
, m_pInterfaceContainer( NULL )
, m_aProperties( aProps )
, m_bDisposed( sal_False )
, m_nStorageType( nStorageType )
{
OSL_ENSURE( xStream.is(), "No stream is provided!\n" );
}
//-----------------------------------------------
OInputCompStream::~OInputCompStream()
{
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( !m_bDisposed )
{
m_refCount++;
dispose();
}
if ( m_pInterfaceContainer )
delete m_pInterfaceContainer;
}
}
//-----------------------------------------------
uno::Any SAL_CALL OInputCompStream::queryInterface( const uno::Type& rType )
throw( uno::RuntimeException )
{
uno::Any aReturn;
// common interfaces
aReturn <<= ::cppu::queryInterface
( rType
, static_cast<io::XInputStream*> ( this )
, static_cast<io::XStream*> ( this )
, static_cast<lang::XComponent*> ( this )
, static_cast<beans::XPropertySet*> ( this )
, static_cast<embed::XExtendedStorageStream*> ( this ) );
if ( aReturn.hasValue() == sal_True )
return aReturn ;
if ( m_nStorageType == embed::StorageFormats::OFOPXML )
{
aReturn <<= ::cppu::queryInterface
( rType
, static_cast<embed::XRelationshipAccess*> ( this ) );
if ( aReturn.hasValue() == sal_True )
return aReturn ;
}
return OWeakObject::queryInterface( rType );
}
//-----------------------------------------------
sal_Int32 SAL_CALL OInputCompStream::readBytes( uno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead )
throw ( io::NotConnectedException,
io::BufferSizeExceededException,
io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( !m_xStream.is() )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "No stream!" ) ) );
throw uno::RuntimeException();
}
return m_xStream->readBytes( aData, nBytesToRead );
}
//-----------------------------------------------
sal_Int32 SAL_CALL OInputCompStream::readSomeBytes( uno::Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead )
throw ( io::NotConnectedException,
io::BufferSizeExceededException,
io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( !m_xStream.is() )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "No stream!" ) ) );
throw uno::RuntimeException();
}
return m_xStream->readSomeBytes( aData, nMaxBytesToRead );
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::skipBytes( sal_Int32 nBytesToSkip )
throw ( io::NotConnectedException,
io::BufferSizeExceededException,
io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( !m_xStream.is() )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "No stream!" ) ) );
throw uno::RuntimeException();
}
m_xStream->skipBytes( nBytesToSkip );
}
//-----------------------------------------------
sal_Int32 SAL_CALL OInputCompStream::available( )
throw ( io::NotConnectedException,
io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( !m_xStream.is() )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "No stream!" ) ) );
throw uno::RuntimeException();
}
return m_xStream->available();
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::closeInput( )
throw ( io::NotConnectedException,
io::IOException,
uno::RuntimeException )
{
dispose();
}
//-----------------------------------------------
uno::Reference< io::XInputStream > SAL_CALL OInputCompStream::getInputStream()
throw ( uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( !m_xStream.is() )
return uno::Reference< io::XInputStream >();
return uno::Reference< io::XInputStream >( static_cast< io::XInputStream* >( this ), uno::UNO_QUERY );
}
//-----------------------------------------------
uno::Reference< io::XOutputStream > SAL_CALL OInputCompStream::getOutputStream()
throw ( uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
return uno::Reference< io::XOutputStream >();
}
//-----------------------------------------------
void OInputCompStream::InternalDispose()
{
// can be called only by OWriteStream_Impl
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
// the source object is also a kind of locker for the current object
// since the listeners could dispose the object while being notified
lang::EventObject aSource( static_cast< ::cppu::OWeakObject*>( this ) );
if ( m_pInterfaceContainer )
m_pInterfaceContainer->disposeAndClear( aSource );
try
{
m_xStream->closeInput();
}
catch( uno::Exception& )
{}
m_pImpl = NULL;
m_bDisposed = sal_True;
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::dispose( )
throw ( uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( m_pInterfaceContainer )
{
lang::EventObject aSource( static_cast< ::cppu::OWeakObject*>( this ) );
m_pInterfaceContainer->disposeAndClear( aSource );
}
m_xStream->closeInput();
if ( m_pImpl )
{
m_pImpl->InputStreamDisposed( this );
m_pImpl = NULL;
}
m_bDisposed = sal_True;
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::addEventListener( const uno::Reference< lang::XEventListener >& xListener )
throw ( uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( !m_pInterfaceContainer )
m_pInterfaceContainer = new ::cppu::OInterfaceContainerHelper( m_rMutexRef->GetMutex() );
m_pInterfaceContainer->addInterface( xListener );
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::removeEventListener( const uno::Reference< lang::XEventListener >& xListener )
throw ( uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( m_pInterfaceContainer )
m_pInterfaceContainer->removeInterface( xListener );
}
//-----------------------------------------------
sal_Bool SAL_CALL OInputCompStream::hasByID( const ::rtl::OUString& sID )
throw ( io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
try
{
getRelationshipByID( sID );
return sal_True;
}
catch( container::NoSuchElementException& )
{}
return sal_False;
}
//-----------------------------------------------
::rtl::OUString SAL_CALL OInputCompStream::getTargetByID( const ::rtl::OUString& sID )
throw ( container::NoSuchElementException,
io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
for ( sal_Int32 nInd = 0; nInd < aSeq.getLength(); nInd++ )
if ( aSeq[nInd].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Target" ) ) )
return aSeq[nInd].Second;
return ::rtl::OUString();
}
//-----------------------------------------------
::rtl::OUString SAL_CALL OInputCompStream::getTypeByID( const ::rtl::OUString& sID )
throw ( container::NoSuchElementException,
io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
uno::Sequence< beans::StringPair > aSeq = getRelationshipByID( sID );
for ( sal_Int32 nInd = 0; nInd < aSeq.getLength(); nInd++ )
if ( aSeq[nInd].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Type" ) ) )
return aSeq[nInd].Second;
return ::rtl::OUString();
}
//-----------------------------------------------
uno::Sequence< beans::StringPair > SAL_CALL OInputCompStream::getRelationshipByID( const ::rtl::OUString& sID )
throw ( container::NoSuchElementException,
io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
// TODO/LATER: in future the unification of the ID could be checked
uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
for ( sal_Int32 nInd1 = 0; nInd1 < aSeq.getLength(); nInd1++ )
for ( sal_Int32 nInd2 = 0; nInd2 < aSeq[nInd1].getLength(); nInd2++ )
if ( aSeq[nInd1][nInd2].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Id" ) ) )
{
if ( aSeq[nInd1][nInd2].Second.equals( sID ) )
return aSeq[nInd1];
break;
}
throw container::NoSuchElementException();
}
//-----------------------------------------------
uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OInputCompStream::getRelationshipsByType( const ::rtl::OUString& sType )
throw ( io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
uno::Sequence< uno::Sequence< beans::StringPair > > aResult;
sal_Int32 nEntriesNum = 0;
// TODO/LATER: in future the unification of the ID could be checked
uno::Sequence< uno::Sequence< beans::StringPair > > aSeq = getAllRelationships();
for ( sal_Int32 nInd1 = 0; nInd1 < aSeq.getLength(); nInd1++ )
for ( sal_Int32 nInd2 = 0; nInd2 < aSeq[nInd1].getLength(); nInd2++ )
if ( aSeq[nInd1][nInd2].First.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Type" ) ) )
{
if ( aSeq[nInd1][nInd2].Second.equals( sType ) )
{
aResult.realloc( nEntriesNum );
aResult[nEntriesNum-1] = aSeq[nInd1];
}
break;
}
return aResult;
}
//-----------------------------------------------
uno::Sequence< uno::Sequence< beans::StringPair > > SAL_CALL OInputCompStream::getAllRelationships()
throw (io::IOException, uno::RuntimeException)
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
// TODO/LATER: in future the information could be taken directly from m_pImpl when possible
uno::Sequence< uno::Sequence< beans::StringPair > > aResult;
for ( sal_Int32 aInd = 0; aInd < m_aProperties.getLength(); aInd++ )
if ( m_aProperties[aInd].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "RelationsInfo" ) ) )
{
if ( m_aProperties[aInd].Value >>= aResult )
return aResult;
break;
}
throw io::IOException(); // the relations info could not be read
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::insertRelationshipByID( const ::rtl::OUString& /*sID*/, const uno::Sequence< beans::StringPair >& /*aEntry*/, ::sal_Bool /*bReplace*/ )
throw ( container::ElementExistException,
io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
throw io::IOException(); // TODO: Access denied
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::removeRelationshipByID( const ::rtl::OUString& /*sID*/ )
throw ( container::NoSuchElementException,
io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
throw io::IOException(); // TODO: Access denied
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::insertRelationships( const uno::Sequence< uno::Sequence< beans::StringPair > >& /*aEntries*/, ::sal_Bool /*bReplace*/ )
throw ( container::ElementExistException,
io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
throw io::IOException(); // TODO: Access denied
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::clearRelationships()
throw ( io::IOException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
if ( m_nStorageType != embed::StorageFormats::OFOPXML )
throw uno::RuntimeException();
throw io::IOException(); // TODO: Access denied
}
//-----------------------------------------------
uno::Reference< beans::XPropertySetInfo > SAL_CALL OInputCompStream::getPropertySetInfo()
throw ( uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
//TODO:
return uno::Reference< beans::XPropertySetInfo >();
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::setPropertyValue( const ::rtl::OUString& aPropertyName, const uno::Any& /*aValue*/ )
throw ( beans::UnknownPropertyException,
beans::PropertyVetoException,
lang::IllegalArgumentException,
lang::WrappedTargetException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
// all the provided properties are accessible
for ( sal_Int32 aInd = 0; aInd < m_aProperties.getLength(); aInd++ )
{
if ( m_aProperties[aInd].Name.equals( aPropertyName ) )
{
throw beans::PropertyVetoException(); // TODO
}
}
throw beans::UnknownPropertyException(); // TODO
}
//-----------------------------------------------
uno::Any SAL_CALL OInputCompStream::getPropertyValue( const ::rtl::OUString& aProp )
throw ( beans::UnknownPropertyException,
lang::WrappedTargetException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
::rtl::OUString aPropertyName;
if ( aProp.equalsAscii( "IsEncrypted" ) )
aPropertyName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Encrypted" ) );
else
aPropertyName = aProp;
if ( aPropertyName.equalsAscii( "RelationsInfo" ) )
throw beans::UnknownPropertyException(); // TODO
// all the provided properties are accessible
for ( sal_Int32 aInd = 0; aInd < m_aProperties.getLength(); aInd++ )
{
if ( m_aProperties[aInd].Name.equals( aPropertyName ) )
{
return m_aProperties[aInd].Value;
}
}
throw beans::UnknownPropertyException(); // TODO
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::addPropertyChangeListener(
const ::rtl::OUString& /*aPropertyName*/,
const uno::Reference< beans::XPropertyChangeListener >& /*xListener*/ )
throw ( beans::UnknownPropertyException,
lang::WrappedTargetException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
//TODO:
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::removePropertyChangeListener(
const ::rtl::OUString& /*aPropertyName*/,
const uno::Reference< beans::XPropertyChangeListener >& /*aListener*/ )
throw ( beans::UnknownPropertyException,
lang::WrappedTargetException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
//TODO:
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::addVetoableChangeListener(
const ::rtl::OUString& /*PropertyName*/,
const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ )
throw ( beans::UnknownPropertyException,
lang::WrappedTargetException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
//TODO:
}
//-----------------------------------------------
void SAL_CALL OInputCompStream::removeVetoableChangeListener(
const ::rtl::OUString& /*PropertyName*/,
const uno::Reference< beans::XVetoableChangeListener >& /*aListener*/ )
throw ( beans::UnknownPropertyException,
lang::WrappedTargetException,
uno::RuntimeException )
{
::osl::MutexGuard aGuard( m_rMutexRef->GetMutex() );
if ( m_bDisposed )
{
::package::StaticAddLog( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( OSL_LOG_PREFIX "Disposed!" ) ) );
throw lang::DisposedException();
}
//TODO:
}