23#include <com/sun/star/beans/XPropertySet.hpp>
24#include <com/sun/star/beans/XPropertySetOption.hpp>
25#include <com/sun/star/beans/XMultiPropertySet.hpp>
26#include <com/sun/star/beans/XFastPropertySet.hpp>
48 public css::beans::XMultiPropertySet,
49 public css::beans::XFastPropertySet,
50 public css::beans::XPropertySet
73 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type& rType)
override;
79 static css::uno::Sequence<css::uno::Type> getTypes();
86 void disposing(std::unique_lock<std::mutex>& rGuard);
94 const css::uno::Any& aValue)
override final;
99 virtual css::uno::Any SAL_CALL
104 const ::rtl::OUString& aPropertyName,
105 const css::uno::Reference<css::beans::XPropertyChangeListener>& aListener)
override final;
109 const ::rtl::OUString& aPropertyName,
110 const css::uno::Reference<css::beans::XPropertyChangeListener>& aListener)
override final;
114 const ::rtl::OUString& aPropertyName,
115 const css::uno::Reference<css::beans::XVetoableChangeListener>& aListener)
override final;
119 const ::rtl::OUString& aPropertyName,
120 const css::uno::Reference<css::beans::XVetoableChangeListener>& aListener)
override final;
130 const css::uno::Any& rValue)
override final;
136 virtual css::uno::Any SAL_CALL getFastPropertyValue(sal_Int32 nHandle)
override final;
139 virtual void SAL_CALL
141 const css::uno::Sequence<css::uno::Any>& Values)
override;
143 virtual css::uno::Sequence<css::uno::Any> SAL_CALL
147 const css::uno::Sequence<::rtl::OUString>& PropertyNames,
148 const css::uno::Reference<css::beans::XPropertiesChangeListener>& Listener)
override final;
151 const css::uno::Reference<css::beans::XPropertiesChangeListener>& Listener)
override final;
154 const css::uno::Sequence<::rtl::OUString>& PropertyNames,
155 const css::uno::Reference<css::beans::XPropertiesChangeListener>& Listener)
override final;
160 static css::uno::Reference<css::beans::XPropertySetInfo>
170 virtual void setFastPropertyValueImpl(std::unique_lock<std::mutex>& rGuard, sal_Int32 nHandle,
171 const css::uno::Any& rValue);
173 virtual css::uno::Any getPropertyValueImpl(std::unique_lock<std::mutex>& rGuard,
174 const ::rtl::OUString& aPropertyName);
185 void fire(std::unique_lock<std::mutex>& rGuard, sal_Int32* pnHandles,
186 const css::uno::Any* pNewValues,
const css::uno::Any* pOldValues, sal_Int32 nCount,
199 sal_Int32* pHandles,
const css::uno::Any* pValues,
200 sal_Int32 nHitCount);
224 css::uno::Any& rConvertedValue, css::uno::Any& rOldValue,
225 sal_Int32 nHandle,
const css::uno::Any& rValue)
248 sal_Int32 nHandle,
const css::uno::Any& rValue)
256 sal_Int32 nHandle)
const = 0;
276 void setDependentFastPropertyValue(std::unique_lock<std::mutex>& rGuard, sal_Int32 i_handle,
277 const css::uno::Any& i_value);
304 bool m_bIgnoreRuntimeExceptionsWhileFiring =
false;
309 void impl_fireAll(std::unique_lock<std::mutex>& rGuard, sal_Int32* i_handles,
310 const css::uno::Any* i_newValues,
const css::uno::Any* i_oldValues,
313 void fireVetoableChangeListeners(
314 std::unique_lock<std::mutex>& rGuard,
316 const css::beans::PropertyChangeEvent& rChangeEvent);
317 void firePropertyChangeListeners(
318 std::unique_lock<std::mutex>& rGuard,
320 const css::beans::PropertyChangeEvent& rChangeEvent);
This abstract class maps the methods of the interfaces XMultiPropertySet, XFastPropertySet and XPrope...
std::vector< sal_Int32 > m_handles
virtual void SAL_CALL removePropertyChangeListener(const ::rtl::OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override final
Ignored if the property is not bound.
comphelper::OInterfaceContainerHelper4< css::beans::XVetoableChangeListener > maVetoableChangeListeners
Container for the XVetoableChangeListener where the listeners want to listen to all properties.
virtual void getFastPropertyValue(std::unique_lock< std::mutex > &rGuard, css::uno::Any &rValue, sal_Int32 nHandle) const =0
The same as getFastPropertyValue, but return the value through rValue and nHandle is always valid.
virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyValues(const css::uno::Sequence<::rtl::OUString > &PropertyNames) override final
std::vector< css::uno::Any > m_oldValues
virtual bool convertFastPropertyValue(std::unique_lock< std::mutex > &rGuard, css::uno::Any &rConvertedValue, css::uno::Any &rOldValue, sal_Int32 nHandle, const css::uno::Any &rValue)=0
Converted the value rValue and return the result in rConvertedValue and the old value in rOldValue.
virtual css::uno::Any SAL_CALL getPropertyValue(const ::rtl::OUString &aPropertyName) override final
Throw UnknownPropertyException if the property with the name rPropertyName does not exist.
virtual void SAL_CALL removeVetoableChangeListener(const ::rtl::OUString &aPropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override final
Ignored if the property is not constrained.
virtual void SAL_CALL setPropertyValue(const ::rtl::OUString &rPropertyName, const css::uno::Any &aValue) override final
Throw UnknownPropertyException or PropertyVetoException if the property with the name rPropertyName d...
virtual void SAL_CALL addPropertyChangeListener(const ::rtl::OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override final
Ignored if the property is not bound.
OMultiTypeInterfaceContainerHelperVar4< sal_Int32, css::beans::XVetoableChangeListener > aVetoableLC
Container for the XPropertyVetoableListener.
void impl_fireAll(std::unique_lock< std::mutex > &rGuard, sal_Int32 *i_handles, const css::uno::Any *i_newValues, const css::uno::Any *i_oldValues, sal_Int32 i_count)
notifies the given changes in property's values, plus all property changes collected during recent |s...
std::vector< css::uno::Any > m_newValues
void setFastPropertyValues(std::unique_lock< std::mutex > &rGuard, sal_Int32 nSeqLen, sal_Int32 *pHandles, const css::uno::Any *pValues, sal_Int32 nHitCount)
Set multiple properties with the handles.
virtual void SAL_CALL removePropertiesChangeListener(const css::uno::Reference< css::beans::XPropertiesChangeListener > &Listener) override final
comphelper::OInterfaceContainerHelper4< css::beans::XPropertyChangeListener > maPropertyChangeListeners
Container for the XPropertyChangedListener where the listeners want to listen to all properties.
virtual void SAL_CALL addPropertiesChangeListener(const css::uno::Sequence<::rtl::OUString > &PropertyNames, const css::uno::Reference< css::beans::XPropertiesChangeListener > &Listener) override final
virtual void SAL_CALL firePropertiesChangeEvent(const css::uno::Sequence<::rtl::OUString > &PropertyNames, const css::uno::Reference< css::beans::XPropertiesChangeListener > &Listener) override final
virtual void setFastPropertyValue_NoBroadcast(std::unique_lock< std::mutex > &rGuard, sal_Int32 nHandle, const css::uno::Any &rValue)=0
The same as setFastPropertyValue; nHandle is always valid.
virtual void SAL_CALL setPropertyValues(const css::uno::Sequence<::rtl::OUString > &PropertyNames, const css::uno::Sequence< css::uno::Any > &Values) override
virtual void SAL_CALL setFastPropertyValue(sal_Int32 nHandle, const css::uno::Any &rValue) override final
Throw UnknownPropertyException or PropertyVetoException if the property with the name rPropertyName d...
comphelper::OInterfaceContainerHelper4< css::beans::XPropertiesChangeListener > maPropertiesChangeListeners
virtual cppu::IPropertyArrayHelper & getInfoHelper()=0
This abstract method must return the name to index table.
void fire(std::unique_lock< std::mutex > &rGuard, sal_Int32 *pnHandles, const css::uno::Any *pNewValues, const css::uno::Any *pOldValues, sal_Int32 nCount, bool bVetoable)
This method fire events to all registered property listeners.
OMultiTypeInterfaceContainerHelperVar4< sal_Int32, css::beans::XPropertyChangeListener > aBoundLC
Container for the XPropertyChangedListener.
virtual void SAL_CALL addVetoableChangeListener(const ::rtl::OUString &aPropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override final
Ignored if the property is not constrained.
This class is meant to be used as a base class for UNO object implementations that want to use std::m...
#define COMPHELPER_DLLPUBLIC
css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType, Interface1 *p1)