LibreOffice Module configmgr (master)  1
access.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #pragma once
21 
22 #include <sal/config.h>
23 
24 #include <set>
25 #include <vector>
26 #include "config_map.hxx"
27 
28 #include <com/sun/star/beans/XExactName.hpp>
29 #include <com/sun/star/beans/XHierarchicalPropertySet.hpp>
30 #include <com/sun/star/beans/XHierarchicalPropertySetInfo.hpp>
31 #include <com/sun/star/beans/XMultiHierarchicalPropertySet.hpp>
32 #include <com/sun/star/beans/XMultiPropertySet.hpp>
33 #include <com/sun/star/beans/XProperty.hpp>
34 #include <com/sun/star/beans/XPropertySet.hpp>
35 #include <com/sun/star/beans/XPropertySetInfo.hpp>
36 #include <com/sun/star/container/XContainer.hpp>
37 #include <com/sun/star/container/XHierarchicalName.hpp>
38 #include <com/sun/star/container/XHierarchicalNameReplace.hpp>
39 #include <com/sun/star/container/XNameContainer.hpp>
40 #include <com/sun/star/container/XNamed.hpp>
41 #include <com/sun/star/lang/XComponent.hpp>
42 #include <com/sun/star/lang/XServiceInfo.hpp>
43 #include <com/sun/star/lang/XTypeProvider.hpp>
44 #include <com/sun/star/lang/XSingleServiceFactory.hpp>
45 #include <com/sun/star/uno/Reference.hxx>
46 #include <com/sun/star/uno/Sequence.hxx>
47 #include <cppuhelper/weak.hxx>
48 #include <osl/interlck.h>
49 #include <rtl/ref.hxx>
50 #include <sal/types.h>
51 
52 #include "modifications.hxx"
53 #include "type.hxx"
54 
55 namespace com::sun::star {
56  namespace beans {
57  class XHierarchicalPropertySetInfo;
58  class XPropertiesChangeListener;
59  class XPropertyChangeListener;
60  class XVetoableChangeListener;
61  struct Property;
62  }
63  namespace container { class XContainerListener; }
64  namespace lang { class XEventListener; }
65  namespace uno {
66  class Any;
67  class Type;
68  class XInterface;
69  }
70  namespace util { struct ElementChange; }
71 }
72 
73 namespace configmgr {
74 
75 class Broadcaster;
76 class ChildAccess;
77 class Components;
78 class Node;
79 class RootAccess;
80 
81 class Access:
82  public cppu::OWeakObject, public css::lang::XTypeProvider,
83  public css::lang::XServiceInfo,
84  public css::lang::XComponent,
85  public css::container::XHierarchicalNameReplace,
86  public css::container::XContainer,
87  public css::beans::XExactName,
88  public css::beans::XPropertySetInfo,
89  public css::container::XHierarchicalName,
90  public css::container::XNamed,
91  public css::beans::XProperty,
92  public css::beans::XPropertySet,
93  public css::beans::XMultiPropertySet,
94  public css::beans::XHierarchicalPropertySet,
95  public css::beans::XMultiHierarchicalPropertySet,
96  public css::beans::XHierarchicalPropertySetInfo,
97  public css::container::XNameContainer,
98  public css::lang::XSingleServiceFactory
99 {
100 public:
101  oslInterlockedCount acquireCounting();
102 
103  void releaseNondeleting();
104 
105  bool isValue();
106 
108  void releaseChild(OUString const & name);
109 
110  virtual std::vector<OUString> getAbsolutePath() = 0;
111  virtual std::vector<OUString> getRelativePath() = 0;
112 
113  virtual OUString getRelativePathRepresentation() = 0;
114  virtual rtl::Reference< Node > getNode() = 0;
115 
116  virtual bool isFinalized() = 0;
117 
118  virtual void initBroadcaster(
119  Modifications::Node const & modifications, Broadcaster * broadcaster);
120 
121  using OWeakObject::acquire;
122  using OWeakObject::release;
123 
124  virtual css::uno::Sequence< css::uno::Type > SAL_CALL
125  getTypes() override;
126 
127  virtual css::uno::Sequence< sal_Int8 > SAL_CALL
128  getImplementationId() override;
129 
130  virtual OUString SAL_CALL getImplementationName() override;
131 
132  virtual sal_Bool SAL_CALL supportsService(OUString const & ServiceName) override;
133 
134  virtual css::uno::Sequence< OUString > SAL_CALL
135  getSupportedServiceNames() override;
136 
137  virtual void SAL_CALL dispose() override;
138 
139  virtual void SAL_CALL addEventListener(
140  css::uno::Reference< css::lang::XEventListener >
141  const & xListener) override;
142 
143  virtual void SAL_CALL removeEventListener(
144  css::uno::Reference< css::lang::XEventListener >
145  const & aListener) override;
146 
147  virtual css::uno::Type SAL_CALL getElementType() override;
148 
149  virtual sal_Bool SAL_CALL hasElements() override;
150 
151  virtual css::uno::Any SAL_CALL getByName(
152  OUString const & aName) override;
153 
154  virtual css::uno::Sequence< OUString > SAL_CALL
155  getElementNames() override;
156 
157  virtual sal_Bool SAL_CALL hasByName(OUString const & aName) override;
158 
159  virtual css::uno::Any SAL_CALL getByHierarchicalName(
160  OUString const & aName) override;
161 
162  virtual sal_Bool SAL_CALL hasByHierarchicalName(OUString const & aName) override;
163 
164  virtual void SAL_CALL replaceByHierarchicalName(
165  OUString const & aName, css::uno::Any const & aElement) override;
166 
167  virtual void SAL_CALL addContainerListener(
168  css::uno::Reference<
169  css::container::XContainerListener > const & xListener) override;
170 
171  virtual void SAL_CALL removeContainerListener(
172  css::uno::Reference<
173  css::container::XContainerListener > const & xListener) override;
174 
175  virtual OUString SAL_CALL getExactName(
176  OUString const & aApproximateName) override;
177 
178  virtual css::uno::Sequence< css::beans::Property >
179  SAL_CALL getProperties() override;
180 
181  virtual css::beans::Property SAL_CALL getPropertyByName(
182  OUString const & aName) override;
183 
184  virtual sal_Bool SAL_CALL hasPropertyByName(OUString const & Name) override;
185 
186  virtual OUString SAL_CALL getHierarchicalName() override;
187 
188  virtual OUString SAL_CALL composeHierarchicalName(
189  OUString const & aRelativeName) override;
190 
191  virtual OUString SAL_CALL getName() override;
192 
193  virtual void SAL_CALL setName(OUString const & aName) override;
194 
195  virtual css::beans::Property SAL_CALL getAsProperty() override;
196 
197  virtual
198  css::uno::Reference< css::beans::XPropertySetInfo >
199  SAL_CALL getPropertySetInfo() override;
200 
201  virtual void SAL_CALL setPropertyValue(
202  OUString const & aPropertyName,
203  css::uno::Any const & aValue) override;
204 
205  virtual css::uno::Any SAL_CALL getPropertyValue(
206  OUString const & PropertyName) override;
207 
208  virtual void SAL_CALL addPropertyChangeListener(
209  OUString const & aPropertyName,
210  css::uno::Reference<
211  css::beans::XPropertyChangeListener > const & xListener) override;
212 
213  virtual void SAL_CALL removePropertyChangeListener(
214  OUString const & aPropertyName,
215  css::uno::Reference<
216  css::beans::XPropertyChangeListener > const & aListener) override;
217 
218  virtual void SAL_CALL addVetoableChangeListener(
219  OUString const & PropertyName,
220  css::uno::Reference<
221  css::beans::XVetoableChangeListener > const & aListener) override;
222 
223  virtual void SAL_CALL removeVetoableChangeListener(
224  OUString const & PropertyName,
225  css::uno::Reference<
226  css::beans::XVetoableChangeListener > const & aListener) override;
227 
228  virtual void SAL_CALL setPropertyValues(
229  css::uno::Sequence< OUString > const & aPropertyNames,
230  css::uno::Sequence< css::uno::Any > const &
231  aValues) override;
232 
233  virtual css::uno::Sequence< css::uno::Any > SAL_CALL
235  css::uno::Sequence< OUString > const & aPropertyNames) override;
236 
237  virtual void SAL_CALL addPropertiesChangeListener(
238  css::uno::Sequence< OUString > const & aPropertyNames,
239  css::uno::Reference<
240  css::beans::XPropertiesChangeListener > const &
241  xListener) override;
242 
243  virtual void SAL_CALL removePropertiesChangeListener(
244  css::uno::Reference<
245  css::beans::XPropertiesChangeListener > const &
246  xListener) override;
247 
248  virtual void SAL_CALL firePropertiesChangeEvent(
249  css::uno::Sequence< OUString > const & aPropertyNames,
250  css::uno::Reference<
251  css::beans::XPropertiesChangeListener > const &
252  xListener) override;
253 
254  virtual
255  css::uno::Reference<
256  css::beans::XHierarchicalPropertySetInfo > SAL_CALL
258 
259  virtual void SAL_CALL setHierarchicalPropertyValue(
260  OUString const & aHierarchicalPropertyName,
261  css::uno::Any const & aValue) override;
262 
263  virtual css::uno::Any SAL_CALL getHierarchicalPropertyValue(
264  OUString const & aHierarchicalPropertyName) override;
265 
266  virtual void SAL_CALL setHierarchicalPropertyValues(
267  css::uno::Sequence< OUString > const &
268  aHierarchicalPropertyNames,
269  css::uno::Sequence< css::uno::Any > const &
270  Values) override;
271 
272  virtual css::uno::Sequence< css::uno::Any > SAL_CALL
274  css::uno::Sequence< OUString > const &
275  aHierarchicalPropertyNames) override;
276 
277  virtual css::beans::Property SAL_CALL
278  getPropertyByHierarchicalName(OUString const & aHierarchicalName) override;
279 
280  virtual sal_Bool SAL_CALL hasPropertyByHierarchicalName(
281  OUString const & aHierarchicalName) override;
282 
283  virtual void SAL_CALL replaceByName(
284  OUString const & aName, css::uno::Any const & aElement) override;
285 
286  virtual void SAL_CALL insertByName(
287  OUString const & aName, css::uno::Any const & aElement) override;
288 
289  virtual void SAL_CALL removeByName(OUString const & aName) override;
290 
291  virtual css::uno::Reference< css::uno::XInterface >
292  SAL_CALL createInstance() override;
293 
294  virtual css::uno::Reference< css::uno::XInterface >
296  css::uno::Sequence< css::uno::Any > const &
297  aArguments) override;
298 
299 protected:
300  explicit Access(Components & components);
301 
302  virtual ~Access() override;
303 
304  virtual OUString getNameInternal() = 0;
307 
308  virtual void addTypes(std::vector< css::uno::Type > * types)
309  const = 0;
310 
311  virtual void addSupportedServiceNames(
312  std::vector<OUString> * services) = 0;
313 
314  virtual void initDisposeBroadcaster(Broadcaster * broadcaster);
315  virtual void clearListeners() throw ();
316 
317  virtual css::uno::Any SAL_CALL queryInterface(
318  css::uno::Type const & aType) override;
319 
320  Components & getComponents() const { return components_;}
321 
323 
325  rtl::Reference< ChildAccess > getChild(OUString const & name);
326  std::vector< rtl::Reference< ChildAccess > > getAllChildren();
327 
328  void checkValue(
329  css::uno::Any const & value, Type type, bool nillable);
330 
332  OUString const & name, css::uno::Any const & value,
333  Modifications * localModifications);
334 
335  void reportChildChanges(
336  std::vector< css::util::ElementChange > * changes);
337 
338  void commitChildChanges(bool valid, Modifications * globalModifications);
339 
341  Modifications::Node const & modifications, Broadcaster * broadcaster,
342  std::vector< css::util::ElementChange > * changes);
343 
344  bool isDisposed() const { return disposed_;}
345 
346 private:
347  Access(const Access&) = delete;
348  Access& operator=(const Access&) = delete;
349 
350  struct ModifiedChild {
353 
354  ModifiedChild();
355 
357  rtl::Reference< ChildAccess > const & theChild,
358  bool theDirectlyModified);
359  };
360 
362 
364  ModifiedChildren::iterator const & childIterator);
365 
367  OUString const & name);
368 
369  rtl::Reference< ChildAccess > getSubChild(OUString const & path);
370 
371  bool setChildProperty(
372  OUString const & name, css::uno::Any const & value,
373  Modifications * localModifications);
374 
375  css::beans::Property asProperty();
376 
377  bool getByNameFast(const OUString & name, css::uno::Any & value);
379  const rtl::Reference< Node > &node);
380 
381  void checkFinalized();
382 
383  void checkKnownProperty(OUString const & descriptor);
384 
385  rtl::Reference< ChildAccess > getFreeSetMember( css::uno::Any const & value);
386 
388 
390 
391  typedef
392  std::multiset<
393  css::uno::Reference<
394  css::lang::XEventListener > >
396 
397  typedef
398  std::multiset<
399  css::uno::Reference<
400  css::container::XContainerListener > >
402 
403  typedef
404  std::multiset<
405  css::uno::Reference<
406  css::beans::XPropertyChangeListener > >
408 
411 
412  typedef
413  std::multiset<
414  css::uno::Reference<
415  css::beans::XVetoableChangeListener > >
417 
420 
421  typedef
422  std::multiset<
423  css::uno::Reference<
424  css::beans::XPropertiesChangeListener > >
426 
428  ModifiedChildren modifiedChildren_;
429  WeakChildMap cachedChildren_;
435  bool disposed_;
436 
437  std::shared_ptr<osl::Mutex> lock_;
438 
439 #if !defined NDEBUG
440 protected:
441  enum {
442  IS_ANY = 0, IS_GROUP = 0x01, IS_SET = 0x02, IS_EXTENSIBLE = 0x04,
443  IS_GROUP_MEMBER = 0x08, IS_SET_MEMBER = 0x10, IS_UPDATE = 0x20 };
444  bool thisIs(int what);
445 #endif
446 };
447 
448 }
449 
450 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
PropertiesChangeListeners propertiesChangeListeners_
Definition: access.hxx:434
exports com.sun.star.lib. util
virtual css::uno::Type SAL_CALL getElementType() override
Definition: access.cxx:328
virtual OUString getRelativePathRepresentation()=0
rtl::Reference< Node > getParentNode()
Definition: access.cxx:1358
virtual sal_Bool SAL_CALL hasPropertyByName(OUString const &Name) override
Definition: access.cxx:560
DisposeListeners disposeListeners_
Definition: access.hxx:430
bool isDisposed() const
Definition: access.hxx:344
virtual rtl::Reference< Access > getParentAccess()=0
Access(Components &components)
Definition: access.cxx:1215
std::multiset< css::uno::Reference< css::container::XContainerListener > > ContainerListeners
Definition: access.hxx:401
virtual sal_Bool SAL_CALL hasPropertyByHierarchicalName(OUString const &aHierarchicalName) override
Definition: access.cxx:1042
css::beans::Property asProperty()
Definition: access.cxx:2059
virtual sal_Bool SAL_CALL hasElements() override
Definition: access.cxx:351
Components & getComponents() const
Definition: access.hxx:320
virtual void SAL_CALL removePropertyChangeListener(OUString const &aPropertyName, css::uno::Reference< css::beans::XPropertyChangeListener > const &aListener) override
Definition: access.cxx:753
virtual void SAL_CALL replaceByHierarchicalName(OUString const &aName, css::uno::Any const &aElement) override
Definition: access.cxx:450
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments(css::uno::Sequence< css::uno::Any > const &aArguments) override
Definition: access.cxx:1202
ContainerListeners containerListeners_
Definition: access.hxx:431
virtual rtl::Reference< RootAccess > getRootAccess()=0
virtual void SAL_CALL replaceByName(OUString const &aName, css::uno::Any const &aElement) override
Definition: access.cxx:1050
void releaseChild(OUString const &name)
Definition: access.cxx:161
virtual void SAL_CALL removeVetoableChangeListener(OUString const &PropertyName, css::uno::Reference< css::beans::XVetoableChangeListener > const &aListener) override
Definition: access.cxx:799
virtual void addSupportedServiceNames(std::vector< OUString > *services)=0
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
Definition: access.cxx:171
virtual void SAL_CALL addPropertiesChangeListener(css::uno::Sequence< OUString > const &aPropertyNames, css::uno::Reference< css::beans::XPropertiesChangeListener > const &xListener) override
Definition: access.cxx:870
PropertyChangeListeners propertyChangeListeners_
Definition: access.hxx:432
virtual void SAL_CALL setHierarchicalPropertyValue(OUString const &aHierarchicalPropertyName, css::uno::Any const &aValue) override
Definition: access.cxx:929
OUString Name
std::multiset< css::uno::Reference< css::beans::XPropertiesChangeListener > > PropertiesChangeListeners
Definition: access.hxx:425
virtual css::uno::Sequence< css::uno::Any > SAL_CALL getPropertyValues(css::uno::Sequence< OUString > const &aPropertyNames) override
Definition: access.cxx:852
virtual void SAL_CALL removeContainerListener(css::uno::Reference< css::container::XContainerListener > const &xListener) override
Definition: access.cxx:514
std::multiset< css::uno::Reference< css::beans::XPropertyChangeListener > > PropertyChangeListenersElement
Definition: access.hxx:407
virtual void initBroadcaster(Modifications::Node const &modifications, Broadcaster *broadcaster)
Definition: access.cxx:165
virtual void SAL_CALL setName(OUString const &aName) override
Definition: access.cxx:613
void releaseNondeleting()
Definition: access.cxx:128
exports com.sun.star. container
void commitChildChanges(bool valid, Modifications *globalModifications)
Definition: access.cxx:1537
virtual sal_Bool SAL_CALL supportsService(OUString const &ServiceName) override
Definition: access.cxx:238
Sequence< PropertyValue > aArguments
std::vector< rtl::Reference< ChildAccess > > getAllChildren()
Definition: access.cxx:1448
virtual void clearListeners()
Definition: access.cxx:1273
virtual void SAL_CALL setPropertyValues(css::uno::Sequence< OUString > const &aPropertyNames, css::uno::Sequence< css::uno::Any > const &aValues) override
Definition: access.cxx:820
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
Definition: access.cxx:406
virtual void SAL_CALL setHierarchicalPropertyValues(css::uno::Sequence< OUString > const &aHierarchicalPropertyNames, css::uno::Sequence< css::uno::Any > const &Values) override
Definition: access.cxx:971
virtual void SAL_CALL dispose() override
Definition: access.cxx:273
bool getByNameFast(const OUString &name, css::uno::Any &value)
Definition: access.cxx:358
VetoableChangeListeners vetoableChangeListeners_
Definition: access.hxx:433
virtual ~Access() override
Definition: access.cxx:1220
virtual bool isFinalized()=0
virtual OUString SAL_CALL getHierarchicalName() override
Definition: access.cxx:567
rtl::Reference< ChildAccess > getChild(OUString const &name)
Definition: access.cxx:1363
virtual void addTypes(std::vector< css::uno::Type > *types) const =0
void reportChildChanges(std::vector< css::util::ElementChange > *changes)
Definition: access.cxx:1519
rtl::Reference< ChildAccess > child
Definition: access.hxx:351
void markChildAsModified(rtl::Reference< ChildAccess > const &child)
Definition: access.cxx:145
virtual css::uno::Any SAL_CALL getByName(OUString const &aName) override
Definition: access.cxx:394
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
Definition: access.cxx:689
void insertLocalizedValueChild(OUString const &name, css::uno::Any const &value, Modifications *localModifications)
Definition: access.cxx:1503
bool setChildProperty(OUString const &name, css::uno::Any const &value, Modifications *localModifications)
Definition: access.cxx:2045
virtual css::uno::Reference< css::beans::XHierarchicalPropertySetInfo > SAL_CALL getHierarchicalPropertySetInfo() override
Definition: access.cxx:924
virtual std::vector< OUString > getAbsolutePath()=0
void checkFinalized()
Definition: access.cxx:2115
void checkValue(css::uno::Any const &value, Type type, bool nillable)
Definition: access.cxx:1469
config_map< PropertyChangeListenersElement > PropertyChangeListeners
Definition: access.hxx:410
WeakChildMap cachedChildren_
Definition: access.hxx:429
virtual void SAL_CALL addVetoableChangeListener(OUString const &PropertyName, css::uno::Reference< css::beans::XVetoableChangeListener > const &aListener) override
Definition: access.cxx:774
virtual void SAL_CALL insertByName(OUString const &aName, css::uno::Any const &aElement) override
Definition: access.cxx:1090
rtl::Reference< ChildAccess > getSubChild(OUString const &path)
Definition: access.cxx:1964
void checkLocalizedPropertyAccess()
Definition: access.cxx:1348
config_map< ModifiedChild > ModifiedChildren
Definition: access.hxx:361
virtual OUString getNameInternal()=0
virtual css::beans::Property SAL_CALL getPropertyByName(OUString const &aName) override
Definition: access.cxx:548
unsigned char sal_Bool
rtl::Reference< Access > getNotificationRoot()
Definition: access.cxx:2180
virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const &aType) override
Definition: access.cxx:1290
virtual OUString SAL_CALL getImplementationName() override
Definition: access.cxx:230
virtual rtl::Reference< Node > getNode()=0
oslInterlockedCount acquireCounting()
Definition: access.cxx:124
virtual void initDisposeBroadcaster(Broadcaster *broadcaster)
Definition: access.cxx:1222
virtual sal_Bool SAL_CALL hasByHierarchicalName(OUString const &aName) override
Definition: access.cxx:442
virtual css::uno::Any SAL_CALL getPropertyValue(OUString const &PropertyName) override
Definition: access.cxx:717
void checkKnownProperty(OUString const &descriptor)
Definition: access.cxx:2123
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: access.cxx:243
virtual void SAL_CALL removePropertiesChangeListener(css::uno::Reference< css::beans::XPropertiesChangeListener > const &xListener) override
Definition: access.cxx:893
virtual void SAL_CALL addEventListener(css::uno::Reference< css::lang::XEventListener > const &xListener) override
Definition: access.cxx:294
virtual css::beans::Property SAL_CALL getPropertyByHierarchicalName(OUString const &aHierarchicalName) override
Definition: access.cxx:1029
exports com.sun.star. beans
rtl::Reference< ChildAccess > createUnmodifiedChild(const OUString &name, const rtl::Reference< Node > &node)
Definition: access.cxx:1932
void initBroadcasterAndChanges(Modifications::Node const &modifications, Broadcaster *broadcaster, std::vector< css::util::ElementChange > *changes)
Definition: access.cxx:1588
virtual void SAL_CALL removeByName(OUString const &aName) override
Definition: access.cxx:1150
bool thisIs(int what)
Definition: access.cxx:2191
std::vector< uno::Reference< sheet::XSpreadsheetDocument > > Components
config_map< VetoableChangeListenersElement > VetoableChangeListeners
Definition: access.hxx:419
virtual std::vector< OUString > getRelativePath()=0
virtual css::uno::Any SAL_CALL getHierarchicalPropertyValue(OUString const &aHierarchicalPropertyName) override
Definition: access.cxx:957
virtual void SAL_CALL setPropertyValue(OUString const &aPropertyName, css::uno::Any const &aValue) override
Definition: access.cxx:695
rtl::Reference< ChildAccess > getModifiedChild(ModifiedChildren::iterator const &childIterator)
Definition: access.cxx:1923
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance() override
Definition: access.cxx:1184
exports com.sun.star. lang
virtual css::uno::Any SAL_CALL getByHierarchicalName(OUString const &aName) override
Definition: access.cxx:429
virtual void SAL_CALL removeEventListener(css::uno::Reference< css::lang::XEventListener > const &aListener) override
Definition: access.cxx:316
OUString aName
virtual OUString SAL_CALL getName() override
Definition: access.cxx:606
rtl::Reference< ChildAccess > getFreeSetMember(css::uno::Any const &value)
Definition: access.cxx:2150
std::multiset< css::uno::Reference< css::lang::XEventListener > > DisposeListeners
Definition: access.hxx:395
virtual sal_Bool SAL_CALL hasByName(OUString const &aName) override
Definition: access.cxx:421
virtual OUString SAL_CALL getExactName(OUString const &aApproximateName) override
Definition: access.cxx:526
virtual void SAL_CALL firePropertiesChangeEvent(css::uno::Sequence< OUString > const &aPropertyNames, css::uno::Reference< css::beans::XPropertiesChangeListener > const &xListener) override
Definition: access.cxx:906
std::shared_ptr< osl::Mutex > lock_
Definition: access.hxx:437
Access & operator=(const Access &)=delete
virtual css::uno::Sequence< css::beans::Property > SAL_CALL getProperties() override
Definition: access.cxx:534
OUString name
Definition: components.cxx:83
virtual OUString SAL_CALL composeHierarchicalName(OUString const &aRelativeName) override
Definition: access.cxx:587
config_map< ChildAccess * > WeakChildMap
Definition: access.hxx:389
rtl::Reference< ChildAccess > getUnmodifiedChild(OUString const &name)
Definition: access.cxx:1941
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
Definition: access.cxx:222
ModifiedChildren modifiedChildren_
Definition: access.hxx:428
std::multiset< css::uno::Reference< css::beans::XVetoableChangeListener > > VetoableChangeListenersElement
Definition: access.hxx:416
Components & components_
Definition: access.hxx:427
virtual void SAL_CALL addContainerListener(css::uno::Reference< css::container::XContainerListener > const &xListener) override
Definition: access.cxx:492
virtual css::uno::Sequence< css::uno::Any > SAL_CALL getHierarchicalPropertyValues(css::uno::Sequence< OUString > const &aHierarchicalPropertyNames) override
Definition: access.cxx:1008
virtual void SAL_CALL addPropertyChangeListener(OUString const &aPropertyName, css::uno::Reference< css::beans::XPropertyChangeListener > const &xListener) override
Definition: access.cxx:729
virtual css::beans::Property SAL_CALL getAsProperty() override
Definition: access.cxx:681