22#include <com/sun/star/lang/XServiceInfo.hpp>
23#include <com/sun/star/lang/XMultiServiceFactory.hpp>
24#include <com/sun/star/container/XNamed.hpp>
25#include <com/sun/star/container/XNameAccess.hpp>
26#include <com/sun/star/ucb/XPropertySetRegistryFactory.hpp>
27#include <com/sun/star/ucb/XPropertySetRegistry.hpp>
28#include <com/sun/star/ucb/XPersistentPropertySet.hpp>
29#include <com/sun/star/uno/XComponentContext.hpp>
30#include <com/sun/star/beans/XPropertyContainer.hpp>
31#include <com/sun/star/beans/XPropertySetInfoChangeNotifier.hpp>
32#include <com/sun/star/beans/XPropertyAccess.hpp>
33#include <com/sun/star/lang/XComponent.hpp>
34#include <com/sun/star/lang/XInitialization.hpp>
39#include <unordered_map>
43 css::lang::XServiceInfo,
44 css::ucb::XPropertySetRegistryFactory,
45 css::lang::XInitialization >;
49 css::uno::Reference< css::uno::XComponentContext >
m_xContext;
54 explicit UcbStore(
const css::uno::Reference< css::uno::XComponentContext >& xContext );
63 virtual css::uno::Reference< css::ucb::XPropertySetRegistry > SAL_CALL
68 initialize(
const css::uno::Sequence< css::uno::Any >& aArguments )
override;
78 css::lang::XServiceInfo,
79 css::ucb::XPropertySetRegistry,
80 css::container::XNameAccess >
84 css::uno::Reference< css::uno::XComponentContext >
m_xContext;
95 css::uno::Reference< css::lang::XMultiServiceFactory >
102 const OUString& rNewKey );
106 const css::uno::Reference< css::uno::XComponentContext >& xContext,
107 const css::uno::Sequence< css::uno::Any >& rInitArgs);
117 virtual css::uno::Reference< css::ucb::XPersistentPropertySet > SAL_CALL
119 virtual void SAL_CALL
123 virtual css::uno::Type SAL_CALL
129 virtual css::uno::Any SAL_CALL
130 getByName(
const OUString& aName )
override;
131 virtual css::uno::Sequence< OUString > SAL_CALL
134 hasByName(
const OUString& aName )
override;
137 css::uno::Reference< css::uno::XInterface >
139 css::uno::Reference< css::uno::XInterface >
142 css::uno::Reference< css::uno::XInterface >
144 css::uno::Reference< css::uno::XInterface >
153 css::lang::XServiceInfo,
154 css::lang::XComponent,
155 css::ucb::XPersistentPropertySet,
156 css::container::XNamed,
157 css::beans::XPropertyContainer,
158 css::beans::XPropertySetInfoChangeNotifier,
159 css::beans::XPropertyAccess >
172 std::unique_lock<std::mutex>& rGuard,
173 const css::beans::PropertyChangeEvent& rEvent )
const;
175 std::unique_lock<std::mutex>& rGuard,
176 const css::beans::PropertySetInfoChangeEvent& evt )
const;
180 std::unique_lock<std::mutex>& rCreatorGuard,
191 virtual void SAL_CALL
193 virtual void SAL_CALL
194 addEventListener(
const css::uno::Reference< css::lang::XEventListener >& Listener )
override;
195 virtual void SAL_CALL
196 removeEventListener(
const css::uno::Reference< css::lang::XEventListener >& Listener )
override;
199 virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL
201 virtual void SAL_CALL
203 const css::uno::Any& aValue )
override;
204 virtual css::uno::Any SAL_CALL
206 virtual void SAL_CALL
208 const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener )
override;
209 virtual void SAL_CALL
211 const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener )
override;
212 virtual void SAL_CALL
214 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener )
override;
215 virtual void SAL_CALL
217 const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener )
override;
220 virtual css::uno::Reference< css::ucb::XPropertySetRegistry > SAL_CALL
222 virtual OUString SAL_CALL
226 virtual OUString SAL_CALL
228 virtual void SAL_CALL
229 setName(
const OUString& aName )
override;
232 virtual void SAL_CALL
234 sal_Int16 Attributes,
235 const css::uno::Any& DefaultValue )
override;
236 virtual void SAL_CALL
240 virtual void SAL_CALL
242 virtual void SAL_CALL
246 virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL
248 virtual void SAL_CALL
249 setPropertyValues(
const css::uno::Sequence< css::beans::PropertyValue >& aProps )
override;
virtual void SAL_CALL dispose() override
comphelper::OInterfaceContainerHelper4< css::beans::XPropertySetInfoChangeListener > m_aPropSetChangeListeners
virtual void SAL_CALL removeProperty(const OUString &Name) override
void notifyPropertyChangeEvent(std::unique_lock< std::mutex > &rGuard, const css::beans::PropertyChangeEvent &rEvent) const
comphelper::OInterfaceContainerHelper4< css::lang::XEventListener > m_aDisposeEventListeners
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
PropertyListeners_Impl m_aPropertyChangeListeners
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
virtual void SAL_CALL setPropertyValues(const css::uno::Sequence< css::beans::PropertyValue > &aProps) override
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
virtual void SAL_CALL removePropertySetInfoChangeListener(const css::uno::Reference< css::beans::XPropertySetInfoChangeListener > &Listener) override
PropertySetRegistry & getPropertySetRegistry()
void notifyPropertySetInfoChange(std::unique_lock< std::mutex > &rGuard, const css::beans::PropertySetInfoChangeEvent &evt) const
virtual OUString SAL_CALL getKey() override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual css::uno::Reference< css::ucb::XPropertySetRegistry > SAL_CALL getRegistry() override
virtual void SAL_CALL addPropertySetInfoChangeListener(const css::uno::Reference< css::beans::XPropertySetInfoChangeListener > &Listener) override
virtual void SAL_CALL setName(const OUString &aName) override
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > &Listener) override
rtl::Reference< PropertySetInfo_Impl > m_pInfo
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
rtl::Reference< PropertySetRegistry > m_pCreator
PersistentPropertySet(std::unique_lock< std::mutex > &rCreatorGuard, PropertySetRegistry &rCreator, OUString aKey)
virtual OUString SAL_CALL getImplementationName() override
virtual void SAL_CALL addProperty(const OUString &Name, sal_Int16 Attributes, const css::uno::Any &DefaultValue) override
virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL getPropertyValues() override
virtual ~PersistentPropertySet() override
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > &Listener) override
virtual OUString SAL_CALL getName() override
const OUString & getFullKeyImpl(std::unique_lock< std::mutex > &)
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
css::uno::Reference< css::uno::XComponentContext > m_xContext
virtual void SAL_CALL removePropertySet(const OUString &key) override
css::uno::Reference< css::uno::XInterface > getRootConfigReadAccessImpl(std::unique_lock< std::mutex > &l)
css::uno::Reference< css::uno::XInterface > getConfigWriteAccessImpl(std::unique_lock< std::mutex > &l, const OUString &rPath)
css::uno::Reference< css::lang::XMultiServiceFactory > getConfigProvider(std::unique_lock< std::mutex > &l)
css::uno::Reference< css::uno::XInterface > getRootConfigReadAccess()
virtual css::uno::Reference< css::ucb::XPersistentPropertySet > SAL_CALL openPropertySet(const OUString &key, sal_Bool create) override
css::uno::Reference< css::uno::XInterface > getConfigWriteAccess(const OUString &rPath)
const css::uno::Sequence< css::uno::Any > m_aInitArgs
PropertySetMap_Impl m_aPropSets
virtual css::uno::Type SAL_CALL getElementType() override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual OUString SAL_CALL getImplementationName() override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
bool m_bTriedToGetRootReadAccess
PropertySetRegistry(const css::uno::Reference< css::uno::XComponentContext > &xContext, const css::uno::Sequence< css::uno::Any > &rInitArgs)
css::uno::Reference< css::lang::XMultiServiceFactory > m_xConfigProvider
void renamePropertySet(const OUString &rOldKey, const OUString &rNewKey)
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
void remove(PersistentPropertySet *pSet)
virtual sal_Bool SAL_CALL hasElements() override
void add(std::unique_lock< std::mutex > &rCreatorGuard, PersistentPropertySet *pSet)
css::uno::Reference< css::uno::XInterface > m_xRootWriteAccess
bool m_bTriedToGetRootWriteAccess
css::uno::Reference< css::uno::XInterface > m_xRootReadAccess
virtual ~PropertySetRegistry() override
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
css::uno::Reference< css::uno::XComponentContext > m_xContext
UcbStore(const css::uno::Reference< css::uno::XComponentContext > &xContext)
virtual OUString SAL_CALL getImplementationName() override
virtual css::uno::Reference< css::ucb::XPropertySetRegistry > SAL_CALL createPropertySetRegistry(const OUString &URL) override
css::uno::Reference< css::ucb::XPropertySetRegistry > m_xTheRegistry
virtual ~UcbStore() override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
css::uno::Sequence< css::uno::Any > m_aInitArgs
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
std::unordered_map< OUString, PersistentPropertySet * > PropertySetMap_Impl
comphelper::OMultiTypeInterfaceContainerHelperVar4< OUString, css::beans::XPropertyChangeListener > PropertyListeners_Impl