LCOV - code coverage report
Current view: top level - configmgr/source - access.hxx (source / functions) Hit Total Coverage
Test: commit c8344322a7af75b84dd3ca8f78b05543a976dfd5 Lines: 3 3 100.0 %
Date: 2015-06-13 12:38:46 Functions: 5 5 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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             : #ifndef INCLUDED_CONFIGMGR_SOURCE_ACCESS_HXX
      21             : #define INCLUDED_CONFIGMGR_SOURCE_ACCESS_HXX
      22             : 
      23             : #include <sal/config.h>
      24             : 
      25             : #include <map>
      26             : #include <memory>
      27             : #include <set>
      28             : #include <vector>
      29             : #include "config_map.hxx"
      30             : 
      31             : #include <com/sun/star/beans/PropertyVetoException.hpp>
      32             : #include <com/sun/star/beans/UnknownPropertyException.hpp>
      33             : #include <com/sun/star/beans/XExactName.hpp>
      34             : #include <com/sun/star/beans/XHierarchicalPropertySet.hpp>
      35             : #include <com/sun/star/beans/XHierarchicalPropertySetInfo.hpp>
      36             : #include <com/sun/star/beans/XMultiHierarchicalPropertySet.hpp>
      37             : #include <com/sun/star/beans/XMultiPropertySet.hpp>
      38             : #include <com/sun/star/beans/XProperty.hpp>
      39             : #include <com/sun/star/beans/XPropertySet.hpp>
      40             : #include <com/sun/star/beans/XPropertySetInfo.hpp>
      41             : #include <com/sun/star/container/ElementExistException.hpp>
      42             : #include <com/sun/star/container/NoSuchElementException.hpp>
      43             : #include <com/sun/star/container/XContainer.hpp>
      44             : #include <com/sun/star/container/XHierarchicalName.hpp>
      45             : #include <com/sun/star/container/XHierarchicalNameReplace.hpp>
      46             : #include <com/sun/star/container/XNameContainer.hpp>
      47             : #include <com/sun/star/container/XNamed.hpp>
      48             : #include <com/sun/star/lang/IllegalArgumentException.hpp>
      49             : #include <com/sun/star/lang/NoSupportException.hpp>
      50             : #include <com/sun/star/lang/WrappedTargetException.hpp>
      51             : #include <com/sun/star/lang/XComponent.hpp>
      52             : #include <com/sun/star/lang/XServiceInfo.hpp>
      53             : #include <com/sun/star/lang/XTypeProvider.hpp>
      54             : #include <com/sun/star/lang/XSingleServiceFactory.hpp>
      55             : #include <com/sun/star/uno/Exception.hpp>
      56             : #include <com/sun/star/uno/Reference.hxx>
      57             : #include <com/sun/star/uno/RuntimeException.hpp>
      58             : #include <com/sun/star/uno/Sequence.hxx>
      59             : #include <cppuhelper/weak.hxx>
      60             : #include <osl/interlck.h>
      61             : #include <rtl/ref.hxx>
      62             : #include <sal/types.h>
      63             : 
      64             : #include "modifications.hxx"
      65             : #include "path.hxx"
      66             : #include "type.hxx"
      67             : 
      68             : namespace com { namespace sun { namespace star {
      69             :     namespace beans {
      70             :         class XHierarchicalPropertySetInfo;
      71             :         class XPropertiesChangeListener;
      72             :         class XPropertyChangeListener;
      73             :         class XVetoableChangeListener;
      74             :         struct Property;
      75             :     }
      76             :     namespace container { class XContainerListener; }
      77             :     namespace lang { class XEventListener; }
      78             :     namespace uno {
      79             :         class Any;
      80             :         class Type;
      81             :         class XInterface;
      82             :     }
      83             :     namespace util { struct ElementChange; }
      84             : } } }
      85             : 
      86             : namespace configmgr {
      87             : 
      88             : class Broadcaster;
      89             : class ChildAccess;
      90             : class Components;
      91             : class Node;
      92             : class RootAccess;
      93             : 
      94             : class Access:
      95             :     public cppu::OWeakObject, public com::sun::star::lang::XTypeProvider,
      96             :     public com::sun::star::lang::XServiceInfo,
      97             :     public com::sun::star::lang::XComponent,
      98             :     public com::sun::star::container::XHierarchicalNameReplace,
      99             :     public com::sun::star::container::XContainer,
     100             :     public com::sun::star::beans::XExactName,
     101             :     public com::sun::star::beans::XPropertySetInfo,
     102             :     public com::sun::star::container::XHierarchicalName,
     103             :     public com::sun::star::container::XNamed,
     104             :     public com::sun::star::beans::XProperty,
     105             :     public com::sun::star::beans::XPropertySet,
     106             :     public com::sun::star::beans::XMultiPropertySet,
     107             :     public com::sun::star::beans::XHierarchicalPropertySet,
     108             :     public com::sun::star::beans::XMultiHierarchicalPropertySet,
     109             :     public com::sun::star::beans::XHierarchicalPropertySetInfo,
     110             :     public com::sun::star::container::XNameContainer,
     111             :     public com::sun::star::lang::XSingleServiceFactory
     112             : {
     113             : public:
     114             :     oslInterlockedCount acquireCounting();
     115             : 
     116             :     void releaseNondeleting();
     117             : 
     118             :     bool isValue();
     119             : 
     120             :     void markChildAsModified(rtl::Reference< ChildAccess > const & child);
     121             :     void releaseChild(OUString const & name);
     122             : 
     123             :     virtual Path getAbsolutePath() = 0;
     124             :     virtual Path getRelativePath() = 0;
     125             : 
     126             :     virtual OUString getRelativePathRepresentation() = 0;
     127             :     virtual rtl::Reference< Node > getNode() = 0;
     128             : 
     129             :     virtual bool isFinalized() = 0;
     130             : 
     131             :     virtual void initBroadcaster(
     132             :         Modifications::Node const & modifications, Broadcaster * broadcaster);
     133             : 
     134             :     using OWeakObject::acquire;
     135             :     using OWeakObject::release;
     136             : 
     137             :     virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL
     138             :     getTypes() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     139             : 
     140             :     virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL
     141             :     getImplementationId() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     142             : 
     143             :     virtual OUString SAL_CALL getImplementationName()
     144             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     145             : 
     146             :     virtual sal_Bool SAL_CALL supportsService(OUString const & ServiceName)
     147             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     148             : 
     149             :     virtual com::sun::star::uno::Sequence< OUString > SAL_CALL
     150             :     getSupportedServiceNames() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     151             : 
     152             :     virtual void SAL_CALL dispose()
     153             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     154             : 
     155             :     virtual void SAL_CALL addEventListener(
     156             :         com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >
     157             :             const & xListener)
     158             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     159             : 
     160             :     virtual void SAL_CALL removeEventListener(
     161             :         com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >
     162             :             const & aListener)
     163             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     164             : 
     165             :     virtual com::sun::star::uno::Type SAL_CALL getElementType()
     166             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     167             : 
     168             :     virtual sal_Bool SAL_CALL hasElements()
     169             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     170             : 
     171             :     virtual com::sun::star::uno::Any SAL_CALL getByName(
     172             :         OUString const & aName)
     173             :         throw (
     174             :             com::sun::star::container::NoSuchElementException,
     175             :             com::sun::star::lang::WrappedTargetException,
     176             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     177             : 
     178             :     virtual com::sun::star::uno::Sequence< OUString > SAL_CALL
     179             :     getElementNames() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     180             : 
     181             :     virtual sal_Bool SAL_CALL hasByName(OUString const & aName)
     182             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     183             : 
     184             :     virtual com::sun::star::uno::Any SAL_CALL getByHierarchicalName(
     185             :         OUString const & aName)
     186             :         throw (
     187             :             com::sun::star::container::NoSuchElementException,
     188             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     189             : 
     190             :     virtual sal_Bool SAL_CALL hasByHierarchicalName(OUString const & aName)
     191             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     192             : 
     193             :     virtual void SAL_CALL replaceByHierarchicalName(
     194             :         OUString const & aName, com::sun::star::uno::Any const & aElement)
     195             :         throw (
     196             :             com::sun::star::lang::IllegalArgumentException,
     197             :             com::sun::star::container::NoSuchElementException,
     198             :             com::sun::star::lang::WrappedTargetException,
     199             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     200             : 
     201             :     virtual void SAL_CALL addContainerListener(
     202             :         com::sun::star::uno::Reference<
     203             :             com::sun::star::container::XContainerListener > const & xListener)
     204             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     205             : 
     206             :     virtual void SAL_CALL removeContainerListener(
     207             :         com::sun::star::uno::Reference<
     208             :             com::sun::star::container::XContainerListener > const & xListener)
     209             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     210             : 
     211             :     virtual OUString SAL_CALL getExactName(
     212             :         OUString const & aApproximateName)
     213             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     214             : 
     215             :     virtual com::sun::star::uno::Sequence< com::sun::star::beans::Property >
     216             :     SAL_CALL getProperties() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     217             : 
     218             :     virtual com::sun::star::beans::Property SAL_CALL getPropertyByName(
     219             :         OUString const & aName)
     220             :         throw (
     221             :             com::sun::star::beans::UnknownPropertyException,
     222             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     223             : 
     224             :     virtual sal_Bool SAL_CALL hasPropertyByName(OUString const & Name)
     225             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     226             : 
     227             :     virtual OUString SAL_CALL getHierarchicalName()
     228             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     229             : 
     230             :     virtual OUString SAL_CALL composeHierarchicalName(
     231             :         OUString const & aRelativeName)
     232             :         throw (
     233             :             com::sun::star::lang::IllegalArgumentException,
     234             :             com::sun::star::lang::NoSupportException,
     235             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     236             : 
     237             :     virtual OUString SAL_CALL getName()
     238             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     239             : 
     240             :     virtual void SAL_CALL setName(OUString const & aName)
     241             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     242             : 
     243             :     virtual com::sun::star::beans::Property SAL_CALL getAsProperty()
     244             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     245             : 
     246             :     virtual
     247             :     com::sun::star::uno::Reference< com::sun::star::beans::XPropertySetInfo >
     248             :     SAL_CALL getPropertySetInfo() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     249             : 
     250             :     virtual void SAL_CALL setPropertyValue(
     251             :         OUString const & aPropertyName,
     252             :         com::sun::star::uno::Any const & aValue)
     253             :         throw (
     254             :             com::sun::star::beans::UnknownPropertyException,
     255             :             com::sun::star::beans::PropertyVetoException,
     256             :             com::sun::star::lang::IllegalArgumentException,
     257             :             com::sun::star::lang::WrappedTargetException,
     258             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     259             : 
     260             :     virtual com::sun::star::uno::Any SAL_CALL getPropertyValue(
     261             :         OUString const & PropertyName)
     262             :         throw (
     263             :             com::sun::star::beans::UnknownPropertyException,
     264             :             com::sun::star::lang::WrappedTargetException,
     265             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     266             : 
     267             :     virtual void SAL_CALL addPropertyChangeListener(
     268             :         OUString const & aPropertyName,
     269             :         com::sun::star::uno::Reference<
     270             :             com::sun::star::beans::XPropertyChangeListener > const & xListener)
     271             :         throw (
     272             :             com::sun::star::beans::UnknownPropertyException,
     273             :             com::sun::star::lang::WrappedTargetException,
     274             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     275             : 
     276             :     virtual void SAL_CALL removePropertyChangeListener(
     277             :         OUString const & aPropertyName,
     278             :         com::sun::star::uno::Reference<
     279             :             com::sun::star::beans::XPropertyChangeListener > const & aListener)
     280             :         throw (
     281             :             com::sun::star::beans::UnknownPropertyException,
     282             :             com::sun::star::lang::WrappedTargetException,
     283             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     284             : 
     285             :     virtual void SAL_CALL addVetoableChangeListener(
     286             :         OUString const & PropertyName,
     287             :         com::sun::star::uno::Reference<
     288             :             com::sun::star::beans::XVetoableChangeListener > const & aListener)
     289             :         throw (
     290             :             com::sun::star::beans::UnknownPropertyException,
     291             :             com::sun::star::lang::WrappedTargetException,
     292             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     293             : 
     294             :     virtual void SAL_CALL removeVetoableChangeListener(
     295             :         OUString const & PropertyName,
     296             :         com::sun::star::uno::Reference<
     297             :             com::sun::star::beans::XVetoableChangeListener > const & aListener)
     298             :         throw (
     299             :             com::sun::star::beans::UnknownPropertyException,
     300             :             com::sun::star::lang::WrappedTargetException,
     301             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     302             : 
     303             :     virtual void SAL_CALL setPropertyValues(
     304             :         com::sun::star::uno::Sequence< OUString > const & aPropertyNames,
     305             :         com::sun::star::uno::Sequence< com::sun::star::uno::Any > const &
     306             :             aValues)
     307             :         throw (
     308             :             com::sun::star::beans::PropertyVetoException,
     309             :             com::sun::star::lang::IllegalArgumentException,
     310             :             com::sun::star::lang::WrappedTargetException,
     311             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     312             : 
     313             :     virtual com::sun::star::uno::Sequence< com::sun::star::uno::Any > SAL_CALL
     314             :     getPropertyValues(
     315             :         com::sun::star::uno::Sequence< OUString > const & aPropertyNames)
     316             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     317             : 
     318             :     virtual void SAL_CALL addPropertiesChangeListener(
     319             :         com::sun::star::uno::Sequence< OUString > const & aPropertyNames,
     320             :         com::sun::star::uno::Reference<
     321             :             com::sun::star::beans::XPropertiesChangeListener > const &
     322             :                 xListener)
     323             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     324             : 
     325             :     virtual void SAL_CALL removePropertiesChangeListener(
     326             :         com::sun::star::uno::Reference<
     327             :             com::sun::star::beans::XPropertiesChangeListener > const &
     328             :                 xListener)
     329             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     330             : 
     331             :     virtual void SAL_CALL firePropertiesChangeEvent(
     332             :         com::sun::star::uno::Sequence< OUString > const & aPropertyNames,
     333             :         com::sun::star::uno::Reference<
     334             :             com::sun::star::beans::XPropertiesChangeListener > const &
     335             :                 xListener)
     336             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     337             : 
     338             :     virtual
     339             :     com::sun::star::uno::Reference<
     340             :         com::sun::star::beans::XHierarchicalPropertySetInfo > SAL_CALL
     341             :     getHierarchicalPropertySetInfo()
     342             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     343             : 
     344             :     virtual void SAL_CALL setHierarchicalPropertyValue(
     345             :         OUString const & aHierarchicalPropertyName,
     346             :         com::sun::star::uno::Any const & aValue)
     347             :         throw (
     348             :             com::sun::star::beans::UnknownPropertyException,
     349             :             com::sun::star::beans::PropertyVetoException,
     350             :             com::sun::star::lang::IllegalArgumentException,
     351             :             com::sun::star::lang::WrappedTargetException,
     352             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     353             : 
     354             :     virtual com::sun::star::uno::Any SAL_CALL getHierarchicalPropertyValue(
     355             :         OUString const & aHierarchicalPropertyName)
     356             :         throw (
     357             :             com::sun::star::beans::UnknownPropertyException,
     358             :             com::sun::star::lang::IllegalArgumentException,
     359             :             com::sun::star::lang::WrappedTargetException,
     360             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     361             : 
     362             :     virtual void SAL_CALL setHierarchicalPropertyValues(
     363             :         com::sun::star::uno::Sequence< OUString > const &
     364             :             aHierarchicalPropertyNames,
     365             :         com::sun::star::uno::Sequence< com::sun::star::uno::Any > const &
     366             :             Values)
     367             :         throw (
     368             :             com::sun::star::beans::PropertyVetoException,
     369             :             com::sun::star::lang::IllegalArgumentException,
     370             :             com::sun::star::lang::WrappedTargetException,
     371             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     372             : 
     373             :     virtual com::sun::star::uno::Sequence< com::sun::star::uno::Any > SAL_CALL
     374             :     getHierarchicalPropertyValues(
     375             :         com::sun::star::uno::Sequence< OUString > const &
     376             :             aHierarchicalPropertyNames)
     377             :         throw (
     378             :             com::sun::star::lang::IllegalArgumentException,
     379             :             com::sun::star::lang::WrappedTargetException,
     380             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     381             : 
     382             :     virtual com::sun::star::beans::Property SAL_CALL
     383             :     getPropertyByHierarchicalName(OUString const & aHierarchicalName)
     384             :         throw (
     385             :             com::sun::star::beans::UnknownPropertyException,
     386             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     387             : 
     388             :     virtual sal_Bool SAL_CALL hasPropertyByHierarchicalName(
     389             :         OUString const & aHierarchicalName)
     390             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     391             : 
     392             :     virtual void SAL_CALL replaceByName(
     393             :         OUString const & aName, com::sun::star::uno::Any const & aElement)
     394             :         throw (
     395             :             com::sun::star::lang::IllegalArgumentException,
     396             :             com::sun::star::container::NoSuchElementException,
     397             :             com::sun::star::lang::WrappedTargetException,
     398             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     399             : 
     400             :     virtual void SAL_CALL insertByName(
     401             :         OUString const & aName, com::sun::star::uno::Any const & aElement)
     402             :         throw (
     403             :             com::sun::star::lang::IllegalArgumentException,
     404             :             com::sun::star::container::ElementExistException,
     405             :             com::sun::star::lang::WrappedTargetException,
     406             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     407             : 
     408             :     virtual void SAL_CALL removeByName(OUString const & aName)
     409             :         throw (
     410             :             com::sun::star::container::NoSuchElementException,
     411             :             com::sun::star::lang::WrappedTargetException,
     412             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     413             : 
     414             :     virtual com::sun::star::uno::Reference< com::sun::star::uno::XInterface >
     415             :     SAL_CALL createInstance()
     416             :         throw (
     417             :             com::sun::star::uno::Exception,
     418             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     419             : 
     420             :     virtual com::sun::star::uno::Reference< com::sun::star::uno::XInterface >
     421             :     SAL_CALL createInstanceWithArguments(
     422             :         com::sun::star::uno::Sequence< com::sun::star::uno::Any > const &
     423             :             aArguments)
     424             :         throw (
     425             :             com::sun::star::uno::Exception,
     426             :             com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     427             : 
     428             : protected:
     429             :     explicit Access(Components & components);
     430             : 
     431             :     virtual ~Access();
     432             : 
     433             :     virtual OUString getNameInternal() = 0;
     434             :     virtual rtl::Reference< RootAccess > getRootAccess() = 0;
     435             :     virtual rtl::Reference< Access > getParentAccess() = 0;
     436             : 
     437             :     virtual void addTypes(std::vector< com::sun::star::uno::Type > * types)
     438             :         const = 0;
     439             : 
     440             :     virtual void addSupportedServiceNames(
     441             :         std::vector< OUString > * services) = 0;
     442             : 
     443             :     virtual void initDisposeBroadcaster(Broadcaster * broadcaster);
     444             :     virtual void clearListeners() throw ();
     445             : 
     446             :     virtual com::sun::star::uno::Any SAL_CALL queryInterface(
     447             :         com::sun::star::uno::Type const & aType)
     448             :         throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     449             : 
     450   109424652 :     Components & getComponents() const { return components_;}
     451             : 
     452             :     void checkLocalizedPropertyAccess();
     453             : 
     454             :     rtl::Reference< Node > getParentNode();
     455             :     rtl::Reference< ChildAccess > getChild(OUString const & name);
     456             :     std::vector< rtl::Reference< ChildAccess > > getAllChildren();
     457             : 
     458             :     void checkValue(
     459             :         com::sun::star::uno::Any const & value, Type type, bool nillable);
     460             : 
     461             :     void insertLocalizedValueChild(
     462             :         OUString const & name, com::sun::star::uno::Any const & value,
     463             :         Modifications * localModifications);
     464             : 
     465             :     void reportChildChanges(
     466             :         std::vector< com::sun::star::util::ElementChange > * changes);
     467             : 
     468             :     void commitChildChanges(bool valid, Modifications * globalModifications);
     469             : 
     470             :     void initBroadcasterAndChanges(
     471             :         Modifications::Node const & modifications, Broadcaster * broadcaster,
     472             :         std::vector< com::sun::star::util::ElementChange > * changes);
     473             : 
     474       15116 :     bool isDisposed() const { return disposed_;}
     475             : 
     476             : private:
     477             :     Access(const Access&) SAL_DELETED_FUNCTION;
     478             :     Access& operator=(const Access&) SAL_DELETED_FUNCTION;
     479             : 
     480     1427392 :     struct ModifiedChild {
     481             :         rtl::Reference< ChildAccess > child;
     482             :         bool directlyModified;
     483             : 
     484             :         ModifiedChild();
     485             : 
     486             :         ModifiedChild(
     487             :             rtl::Reference< ChildAccess > const & theChild,
     488             :             bool theDirectlyModified);
     489             :     };
     490             : 
     491             :     typedef config_map< ModifiedChild > ModifiedChildren;
     492             : 
     493             :     rtl::Reference< ChildAccess > getModifiedChild(
     494             :         ModifiedChildren::iterator const & childIterator);
     495             : 
     496             :     rtl::Reference< ChildAccess > getUnmodifiedChild(
     497             :         OUString const & name);
     498             : 
     499             :     rtl::Reference< ChildAccess > getSubChild(OUString const & path);
     500             : 
     501             :     bool setChildProperty(
     502             :         OUString const & name, css::uno::Any const & value,
     503             :         Modifications * localModifications);
     504             : 
     505             :     css::beans::Property asProperty();
     506             : 
     507             :     bool getByNameFast(const OUString & name, css::uno::Any & value);
     508             :     rtl::Reference< ChildAccess > createUnmodifiedChild(const OUString &name,
     509             :                                                         const rtl::Reference< Node > &node);
     510             : 
     511             :     void checkFinalized();
     512             : 
     513             :     void checkKnownProperty(OUString const & descriptor);
     514             : 
     515             :     rtl::Reference< ChildAccess > getFreeSetMember(
     516             :         com::sun::star::uno::Any const & value);
     517             : 
     518             :     rtl::Reference< Access > getNotificationRoot();
     519             : 
     520             :     typedef config_map< ChildAccess * > WeakChildMap;
     521             : 
     522             :     typedef
     523             :         std::multiset<
     524             :             com::sun::star::uno::Reference<
     525             :                 com::sun::star::lang::XEventListener > >
     526             :         DisposeListeners;
     527             : 
     528             :     typedef
     529             :         std::multiset<
     530             :             com::sun::star::uno::Reference<
     531             :                 com::sun::star::container::XContainerListener > >
     532             :         ContainerListeners;
     533             : 
     534             :     typedef
     535             :         std::multiset<
     536             :             com::sun::star::uno::Reference<
     537             :                 com::sun::star::beans::XPropertyChangeListener > >
     538             :         PropertyChangeListenersElement;
     539             : 
     540             :     typedef config_map< PropertyChangeListenersElement >
     541             :         PropertyChangeListeners;
     542             : 
     543             :     typedef
     544             :         std::multiset<
     545             :             com::sun::star::uno::Reference<
     546             :                 com::sun::star::beans::XVetoableChangeListener > >
     547             :         VetoableChangeListenersElement;
     548             : 
     549             :     typedef config_map< VetoableChangeListenersElement >
     550             :         VetoableChangeListeners;
     551             : 
     552             :     typedef
     553             :         std::multiset<
     554             :             com::sun::star::uno::Reference<
     555             :                 com::sun::star::beans::XPropertiesChangeListener > >
     556             :         PropertiesChangeListeners;
     557             : 
     558             :     Components & components_;
     559             :     ModifiedChildren modifiedChildren_;
     560             :     WeakChildMap cachedChildren_;
     561             :     DisposeListeners disposeListeners_;
     562             :     ContainerListeners containerListeners_;
     563             :     PropertyChangeListeners propertyChangeListeners_;
     564             :     VetoableChangeListeners vetoableChangeListeners_;
     565             :     PropertiesChangeListeners propertiesChangeListeners_;
     566             :     bool disposed_;
     567             : 
     568             :     std::shared_ptr<osl::Mutex> lock_;
     569             : 
     570             : #if !defined NDEBUG
     571             : protected:
     572             :     enum {
     573             :         IS_ANY = 0, IS_GROUP = 0x01, IS_SET = 0x02, IS_EXTENSIBLE = 0x04,
     574             :         IS_GROUP_MEMBER = 0x08, IS_SET_MEMBER = 0x10, IS_UPDATE = 0x20 };
     575             :     bool thisIs(int what);
     576             : #endif
     577             : };
     578             : 
     579             : }
     580             : 
     581             : #endif
     582             : 
     583             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.11