summaryrefslogtreecommitdiff
path: root/ucb
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2021-08-07 18:17:03 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-08-08 17:04:03 +0200
commit9104017e1bf76857d2b9686363013e1e7c49e355 (patch)
tree949e30187049ed6d177405c8261b206a9b9088e2 /ucb
parent5e69c5fbdb44cd782080e7f4d9ad89dc48b2d1b1 (diff)
create comphelper:OMultiTypeInterfaceContainerHelperVar2 and use it
based on OInterfaceContainerHelper2 which is considerably faster than the original OInterfaceContainerHelper Change-Id: Ia8cdbc5ef877a7af3d9193e1bb2faf1595c15470 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120165 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'ucb')
-rw-r--r--ucb/source/cacher/contentresultsetwrapper.cxx26
-rw-r--r--ucb/source/cacher/contentresultsetwrapper.hxx3
-rw-r--r--ucb/source/core/ucbstore.cxx8
-rw-r--r--ucb/source/core/ucbstore.hxx3
-rw-r--r--ucb/source/sorter/sortresult.cxx9
-rw-r--r--ucb/source/ucp/file/bc.cxx9
-rw-r--r--ucb/source/ucp/file/filnot.cxx2
-rw-r--r--ucb/source/ucp/file/filnot.hxx2
8 files changed, 32 insertions, 30 deletions
diff --git a/ucb/source/cacher/contentresultsetwrapper.cxx b/ucb/source/cacher/contentresultsetwrapper.cxx
index c680cbc68080..0b1175e324f0 100644
--- a/ucb/source/cacher/contentresultsetwrapper.cxx
+++ b/ucb/source/cacher/contentresultsetwrapper.cxx
@@ -181,11 +181,11 @@ void ContentResultSetWrapper::impl_notifyPropertyChangeListeners( const Property
}
// Notify listeners interested especially in the changed property.
- OInterfaceContainerHelper* pContainer =
+ OInterfaceContainerHelper2* pContainer =
m_pPropertyChangeListeners->getContainer( rEvt.PropertyName );
if( pContainer )
{
- OInterfaceIteratorHelper aIter( *pContainer );
+ OInterfaceIteratorHelper2 aIter( *pContainer );
while( aIter.hasMoreElements() )
{
static_cast< XPropertyChangeListener* >( aIter.next() )->propertyChange( rEvt );
@@ -196,7 +196,7 @@ void ContentResultSetWrapper::impl_notifyPropertyChangeListeners( const Property
pContainer = m_pPropertyChangeListeners->getContainer( OUString() );
if( pContainer )
{
- OInterfaceIteratorHelper aIter( *pContainer );
+ OInterfaceIteratorHelper2 aIter( *pContainer );
while( aIter.hasMoreElements() )
{
static_cast< XPropertyChangeListener* >( aIter.next() )->propertyChange( rEvt );
@@ -213,11 +213,11 @@ void ContentResultSetWrapper::impl_notifyVetoableChangeListeners( const Property
}
// Notify listeners interested especially in the changed property.
- OInterfaceContainerHelper* pContainer =
+ OInterfaceContainerHelper2* pContainer =
m_pVetoableChangeListeners->getContainer( rEvt.PropertyName );
if( pContainer )
{
- OInterfaceIteratorHelper aIter( *pContainer );
+ OInterfaceIteratorHelper2 aIter( *pContainer );
while( aIter.hasMoreElements() )
{
static_cast< XVetoableChangeListener* >( aIter.next() )->vetoableChange( rEvt );
@@ -228,7 +228,7 @@ void ContentResultSetWrapper::impl_notifyVetoableChangeListeners( const Property
pContainer = m_pVetoableChangeListeners->getContainer( OUString() );
if( pContainer )
{
- OInterfaceIteratorHelper aIter( *pContainer );
+ OInterfaceIteratorHelper2 aIter( *pContainer );
while( aIter.hasMoreElements() )
{
static_cast< XVetoableChangeListener* >( aIter.next() )->vetoableChange( rEvt );
@@ -524,8 +524,7 @@ void SAL_CALL ContentResultSetWrapper::addPropertyChangeListener( const OUString
}
impl_getPropertyChangeListenerContainer();
- bool bNeedRegister = !m_pPropertyChangeListeners->
- getContainedTypes().hasElements();
+ bool bNeedRegister = !m_pPropertyChangeListeners->hasContainedTypes();
m_pPropertyChangeListeners->addInterface( aPropertyName, xListener );
if( !bNeedRegister )
return;
@@ -569,8 +568,7 @@ void SAL_CALL ContentResultSetWrapper::addVetoableChangeListener( const OUString
}
impl_getVetoableChangeListenerContainer();
- bool bNeedRegister = !m_pVetoableChangeListeners->
- getContainedTypes().hasElements();
+ bool bNeedRegister = !m_pVetoableChangeListeners->hasContainedTypes();
m_pVetoableChangeListeners->addInterface( rPropertyName, xListener );
if( !bNeedRegister )
return;
@@ -608,7 +606,7 @@ void SAL_CALL ContentResultSetWrapper::removePropertyChangeListener( const OUStr
if( !m_pPropertyChangeListeners )
return;
}
- OInterfaceContainerHelper* pContainer =
+ OInterfaceContainerHelper2* pContainer =
m_pPropertyChangeListeners->getContainer( rPropertyName );
if( !pContainer )
@@ -626,7 +624,7 @@ void SAL_CALL ContentResultSetWrapper::removePropertyChangeListener( const OUStr
m_pPropertyChangeListeners->removeInterface( rPropertyName, xListener );
- if( m_pPropertyChangeListeners->getContainedTypes().hasElements() )
+ if( m_pPropertyChangeListeners->hasContainedTypes() )
return;
impl_init_xPropertySetOrigin();
@@ -661,7 +659,7 @@ void SAL_CALL ContentResultSetWrapper::removeVetoableChangeListener( const OUStr
if( !m_pVetoableChangeListeners )
return;
}
- OInterfaceContainerHelper* pContainer =
+ OInterfaceContainerHelper2* pContainer =
m_pVetoableChangeListeners->getContainer( rPropertyName );
if( !pContainer )
@@ -679,7 +677,7 @@ void SAL_CALL ContentResultSetWrapper::removeVetoableChangeListener( const OUStr
m_pVetoableChangeListeners->removeInterface( rPropertyName, xListener );
- if( m_pVetoableChangeListeners->getContainedTypes().hasElements() )
+ if( m_pVetoableChangeListeners->hasContainedTypes() )
return;
impl_init_xPropertySetOrigin();
diff --git a/ucb/source/cacher/contentresultsetwrapper.hxx b/ucb/source/cacher/contentresultsetwrapper.hxx
index abb1bd51d4c4..254ab530606d 100644
--- a/ucb/source/cacher/contentresultsetwrapper.hxx
+++ b/ucb/source/cacher/contentresultsetwrapper.hxx
@@ -32,6 +32,7 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <cppuhelper/interfacecontainer.h>
#include <comphelper/interfacecontainer2.hxx>
+#include <comphelper/multiinterfacecontainer2.hxx>
#include <memory>
@@ -47,7 +48,7 @@ class ContentResultSetWrapper
, public css::sdbc::XRow
{
protected:
- typedef cppu::OMultiTypeInterfaceContainerHelperVar<OUString>
+ typedef comphelper::OMultiTypeInterfaceContainerHelperVar2<OUString>
PropertyChangeListenerContainer_Impl;
//members
diff --git a/ucb/source/core/ucbstore.cxx b/ucb/source/core/ucbstore.cxx
index 924892beb8ca..223f66dc34bb 100644
--- a/ucb/source/core/ucbstore.cxx
+++ b/ucb/source/core/ucbstore.cxx
@@ -1901,12 +1901,12 @@ void PersistentPropertySet::notifyPropertyChangeEvent(
const PropertyChangeEvent& rEvent ) const
{
// Get "normal" listeners for the property.
- OInterfaceContainerHelper* pContainer =
+ OInterfaceContainerHelper2* pContainer =
m_pPropertyChangeListeners->getContainer(
rEvent.PropertyName );
if ( pContainer && pContainer->getLength() )
{
- OInterfaceIteratorHelper aIter( *pContainer );
+ OInterfaceIteratorHelper2 aIter( *pContainer );
while ( aIter.hasMoreElements() )
{
// Propagate event.
@@ -1915,11 +1915,11 @@ void PersistentPropertySet::notifyPropertyChangeEvent(
}
// Get "normal" listeners for all properties.
- OInterfaceContainerHelper* pNoNameContainer =
+ OInterfaceContainerHelper2* pNoNameContainer =
m_pPropertyChangeListeners->getContainer( OUString() );
if ( pNoNameContainer && pNoNameContainer->getLength() )
{
- OInterfaceIteratorHelper aIter( *pNoNameContainer );
+ OInterfaceIteratorHelper2 aIter( *pNoNameContainer );
while ( aIter.hasMoreElements() )
{
// Propagate event.
diff --git a/ucb/source/core/ucbstore.hxx b/ucb/source/core/ucbstore.hxx
index 478d4d597d60..a7642b9a6a1b 100644
--- a/ucb/source/core/ucbstore.hxx
+++ b/ucb/source/core/ucbstore.hxx
@@ -34,6 +34,7 @@
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <comphelper/interfacecontainer2.hxx>
+#include <comphelper/multiinterfacecontainer2.hxx>
#include <cppuhelper/compbase.hxx>
#include <cppuhelper/basemutex.hxx>
#include <unordered_map>
@@ -142,7 +143,7 @@ public:
class PropertySetInfo_Impl;
-typedef cppu::OMultiTypeInterfaceContainerHelperVar<OUString> PropertyListeners_Impl;
+typedef comphelper::OMultiTypeInterfaceContainerHelperVar2<OUString> PropertyListeners_Impl;
class PersistentPropertySet : public cppu::WeakImplHelper <
css::lang::XServiceInfo,
diff --git a/ucb/source/sorter/sortresult.cxx b/ucb/source/sorter/sortresult.cxx
index 94e6570cb864..606ecf7264b8 100644
--- a/ucb/source/sorter/sortresult.cxx
+++ b/ucb/source/sorter/sortresult.cxx
@@ -28,6 +28,7 @@
#include <cppuhelper/implbase.hxx>
#include <cppuhelper/interfacecontainer.hxx>
#include <comphelper/interfacecontainer2.hxx>
+#include <comphelper/multiinterfacecontainer2.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <tools/diagnose_ex.h>
#include <memory>
@@ -93,7 +94,7 @@ public:
virtual sal_Bool SAL_CALL hasPropertyByName( const OUString& Name ) override;
};
-typedef OMultiTypeInterfaceContainerHelperVar<OUString>
+typedef comphelper::OMultiTypeInterfaceContainerHelperVar2<OUString>
PropertyChangeListenerContainer_Impl;
class PropertyChangeListeners_Impl : public PropertyChangeListenerContainer_Impl
@@ -1193,11 +1194,11 @@ void SortedResultSet::PropertyChanged( const PropertyChangeEvent& rEvt )
return;
// Notify listeners interested especially in the changed property.
- OInterfaceContainerHelper* pPropsContainer =
+ OInterfaceContainerHelper2* pPropsContainer =
mpPropChangeListeners->getContainer( rEvt.PropertyName );
if ( pPropsContainer )
{
- OInterfaceIteratorHelper aIter( *pPropsContainer );
+ OInterfaceIteratorHelper2 aIter( *pPropsContainer );
while ( aIter.hasMoreElements() )
{
static_cast< XPropertyChangeListener* >( aIter.next() )->propertyChange( rEvt );
@@ -1208,7 +1209,7 @@ void SortedResultSet::PropertyChanged( const PropertyChangeEvent& rEvt )
pPropsContainer = mpPropChangeListeners->getContainer( OUString() );
if ( pPropsContainer )
{
- OInterfaceIteratorHelper aIter( *pPropsContainer );
+ OInterfaceIteratorHelper2 aIter( *pPropsContainer );
while ( aIter.hasMoreElements() )
{
static_cast< XPropertyChangeListener* >( aIter.next() )->propertyChange( rEvt );
diff --git a/ucb/source/ucp/file/bc.cxx b/ucb/source/ucp/file/bc.cxx
index 07c3d846a35f..b21ba9f40175 100644
--- a/ucb/source/ucp/file/bc.cxx
+++ b/ucb/source/ucp/file/bc.cxx
@@ -32,6 +32,7 @@
#include <com/sun/star/io/XActiveDataSink.hpp>
#include <com/sun/star/ucb/NameClash.hpp>
#include <comphelper/fileurl.hxx>
+#include <comphelper/multiinterfacecontainer2.hxx>
#include <cppuhelper/interfacecontainer.hxx>
#include <cppuhelper/supportsservice.hxx>
#include "filglob.hxx"
@@ -53,7 +54,7 @@ using namespace com::sun::star::ucb;
#define THROW_WHERE ""
#endif
-typedef cppu::OMultiTypeInterfaceContainerHelperVar<OUString>
+typedef comphelper::OMultiTypeInterfaceContainerHelperVar2<OUString>
PropertyListeners_impl;
class fileaccess::PropertyListeners
@@ -1154,16 +1155,16 @@ BaseContent::cPCL()
if (!m_pPropertyListener)
return nullptr;
- const Sequence< OUString > seqNames = m_pPropertyListener->getContainedTypes();
+ const std::vector< OUString > seqNames = m_pPropertyListener->getContainedTypes();
std::unique_ptr<PropertyChangeNotifier> p;
- if( seqNames.hasElements() )
+ if( !seqNames.empty() )
{
ListenerMap listener;
for( const auto& rName : seqNames )
{
- cppu::OInterfaceContainerHelper* pContainer = m_pPropertyListener->getContainer(rName);
+ comphelper::OInterfaceContainerHelper2* pContainer = m_pPropertyListener->getContainer(rName);
if (!pContainer)
continue;
listener[rName] = pContainer->getElements();
diff --git a/ucb/source/ucp/file/filnot.cxx b/ucb/source/ucp/file/filnot.cxx
index d1f1b830bf95..93d1d5f21f1f 100644
--- a/ucb/source/ucp/file/filnot.cxx
+++ b/ucb/source/ucp/file/filnot.cxx
@@ -214,7 +214,7 @@ void PropertyChangeNotifier::notifyPropertyChanged(
// notify listeners for all Events
- uno::Sequence< uno::Reference< uno::XInterface > > seqList = m_aListeners[ OUString() ];
+ std::vector< uno::Reference< uno::XInterface > >& seqList = m_aListeners[ OUString() ];
for( const auto& rListener : std::as_const(seqList) )
{
uno::Reference< beans::XPropertiesChangeListener > aListener( rListener,uno::UNO_QUERY );
diff --git a/ucb/source/ucp/file/filnot.hxx b/ucb/source/ucp/file/filnot.hxx
index 76730c1ddcfa..daeffb8b11ba 100644
--- a/ucb/source/ucp/file/filnot.hxx
+++ b/ucb/source/ucp/file/filnot.hxx
@@ -77,7 +77,7 @@ namespace fileaccess {
typedef std::unordered_map< OUString,
- css::uno::Sequence< css::uno::Reference< css::uno::XInterface > > > ListenerMap;
+ std::vector< css::uno::Reference< css::uno::XInterface > > > ListenerMap;
class PropertyChangeNotifier
{