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

Generated by: LCOV version 1.10