summaryrefslogtreecommitdiff
path: root/configmgr/source/api2/notifierimpl.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'configmgr/source/api2/notifierimpl.hxx')
-rw-r--r--configmgr/source/api2/notifierimpl.hxx241
1 files changed, 0 insertions, 241 deletions
diff --git a/configmgr/source/api2/notifierimpl.hxx b/configmgr/source/api2/notifierimpl.hxx
deleted file mode 100644
index c07ba10e3f9f..000000000000
--- a/configmgr/source/api2/notifierimpl.hxx
+++ /dev/null
@@ -1,241 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: notifierimpl.hxx,v $
- * $Revision: 1.10 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef CONFIGMGR_API_NOTIFIERIMPL_HXX_
-#define CONFIGMGR_API_NOTIFIERIMPL_HXX_
-
-#include "listenercontainer.hxx"
-
-#include "noderef.hxx"
-#include "valueref.hxx"
-
-#include <com/sun/star/beans/XPropertyChangeListener.hpp>
-#include <com/sun/star/beans/XVetoableChangeListener.hpp>
-#include <com/sun/star/beans/XPropertiesChangeListener.hpp>
-#include <com/sun/star/beans/PropertyVetoException.hpp>
-#include <com/sun/star/container/XContainerListener.hpp>
-#include <com/sun/star/util/XChangesListener.hpp>
-
-#include "propertiesfilterednotifier.hxx"
-
-#include <vos/refernce.hxx>
-
-namespace configmgr
-{
- namespace configapi
- {
-// ---------------------------------------------------------------------------------------------------
-
- struct SubNodeHash
- {
- size_t operator() (const configuration::SubNodeID& rKey) const {return rKey.hashCode();}
- };
- struct SubNodeEq
- {
- bool operator() (const configuration::SubNodeID& lhs,const configuration::SubNodeID& rhs) const {return lhs == rhs;}
- };
- struct SubNodeToIndex
- {
- rtl::Reference< configuration::Tree > aTree;
-
- SubNodeToIndex( rtl::Reference< configuration::Tree > const& rTree ) : aTree(rTree) {}
-
- bool findKeysForIndex(unsigned int nNode, std::vector<configuration::SubNodeID>& aList)
- {
- aList.clear();
- configuration::getAllChildrenHelper(configuration::findNodeFromIndex(aTree,nNode), aList);
- return !aList.empty();
- }
- unsigned int findIndexForKey(configuration::SubNodeID const& aNode)
- {
- return aNode.getParentID().toIndex();
- }
- };
-
- /// manages collections of event listeners observing a whole config tree, thread-safe
- class NotifierImpl : public vos::OReference
- {
- public:
- SpecialListenerContainer <configuration::SubNodeID,SubNodeHash,SubNodeEq,SubNodeToIndex> m_aListeners;
-
- public:
- /// construct this around the given Implementation, for the given tree
- explicit
- NotifierImpl(rtl::Reference< configuration::Tree > const& aTree);
- ~NotifierImpl();
-
- /// Add a <type scope='com::sun::star::lang'>XEventListener</type> observing <var>aNode</var>.
- void add(configuration::NodeID const& aNode, uno::Reference< css::lang::XEventListener > const& xListener)
- {
- OSL_PRECOND(xListener.is(), "ERROR: Unexpected NULL listener");
-
- // ignore the names for now
- m_aListeners.addListener(aNode.toIndex(),getCppuType(&xListener),xListener.get());
- }
-
- /// Add a <type scope='com::sun::star::container'>XContainerListener</type> observing <var>aNode</var>.
- void add(configuration::NodeID const& aNode, uno::Reference< css::container::XContainerListener > const& xListener)
- {
- OSL_PRECOND(xListener.is(), "ERROR: Unexpected NULL listener");
-
- // ignore the names for now
- m_aListeners.addListener(aNode.toIndex(),getCppuType(&xListener),xListener.get());
- }
-
- /// Add a <type scope='com::sun::star::util'>XChangesListener</type> observing <var>aNode</var> and its descendants.
- void add(configuration::NodeID const& aNode, uno::Reference< css::util::XChangesListener > const& xListener)
- {
- OSL_PRECOND(xListener.is(), "ERROR: Unexpected NULL listener");
-
- // ignore the names for now
- m_aListeners.addListener(aNode.toIndex(),getCppuType(&xListener),xListener.get());
- }
-
- /// Add a <type scope='com::sun::star::beans'>XPropertyChangeListener</type> observing <var>aNode</var>.
- void addNamed(configuration::SubNodeID const& aNode, uno::Reference< css::beans::XPropertyChangeListener > const& xListener)
- {
- OSL_PRECOND(xListener.is(), "ERROR: Unexpected NULL listener");
-
- // ignore the names for now
- m_aListeners.addSpecialListener(aNode,xListener.get());
- }
- /// Add a <type scope='com::sun::star::beans'>XPropertyChangeListener</type> observing <var>aNode</var>.
- void addForAll(configuration::NodeID const& aNode, uno::Reference< css::beans::XPropertyChangeListener > const& xListener)
- {
- OSL_PRECOND(xListener.is(), "ERROR: Unexpected NULL listener");
-
- // ignore the names for now
- m_aListeners.addListener(aNode.toIndex(),getCppuType(&xListener),xListener.get());
- }
- /// Add a <type scope='com::sun::star::beans'>XVetoableChangeListener</type> constraining <var>aNode</var>.
- void addNamed(configuration::SubNodeID const& aNode, uno::Reference< css::beans::XVetoableChangeListener > const& xListener)
- {
- OSL_PRECOND(xListener.is(), "ERROR: Unexpected NULL listener");
-
- // ignore the names for now
- m_aListeners.addSpecialListener(aNode,xListener.get());
- }
- /// Add a <type scope='com::sun::star::beans'>XVetoableChangeListener</type> constraining <var>aNode</var>.
- void addForAll(configuration::NodeID const& aNode, uno::Reference< css::beans::XVetoableChangeListener > const& xListener)
- {
- OSL_PRECOND(xListener.is(), "ERROR: Unexpected NULL listener");
-
- // ignore the names for now
- m_aListeners.addListener(aNode.toIndex(),getCppuType(&xListener),xListener.get());
- }
-
- /** Add a <type scope='com::sun::star::beans'>XPropertiesChangeListener</type>
- observing all properties of <var>aNode</var>.
- */
- void add(configuration::NodeID const& aNode, uno::Reference< css::beans::XPropertiesChangeListener > const& xListener)
- {
- OSL_PRECOND(xListener.is(), "ERROR: Unexpected NULL listener");
-
- // ignore the names for now
- m_aListeners.addListener(aNode.toIndex(),getCppuType(&xListener),xListener.get());
- }
-
- /** Add a <type scope='com::sun::star::beans'>XPropertiesChangeListener</type>
- observing the properties of <var>aNode</var> (optimally only those given by <var>aNames</var>.
- */
- void add(configuration::NodeID const& aNode, uno::Reference< css::beans::XPropertiesChangeListener > const& xListener, uno::Sequence< rtl::OUString> const& aNames)
- {
- OSL_PRECOND(xListener.is(), "ERROR: Unexpected NULL listener");
- OSL_PRECOND(aNames.getLength() > 0, "ERROR: Unexpected empty sequence");
-
- uno::Reference< css::beans::XPropertiesChangeListener > xForwarder( new PropertiesFilteredNotifier(xListener,aNames) );
- // ignore the names for now
- add(aNode,xForwarder);
- }
-
- // ---------------------------------------------------------------------------------------------------
- /// Remove a <type scope='com::sun::star::lang'>XEventListener</type> observing <var>aNode</var>.
- void remove(configuration::NodeID const& aNode, uno::Reference< css::lang::XEventListener > const& xListener)
- {
- // ignore the names for now
- m_aListeners.removeListener(aNode.toIndex(),getCppuType(&xListener),xListener.get());
- }
-
- /// Remove a <type scope='com::sun::star::container'>XContainerListener</type> observing <var>aNode</var>.
- void remove(configuration::NodeID const& aNode, uno::Reference< css::container::XContainerListener > const& xListener)
- {
- // ignore the names for now
- m_aListeners.removeListener(aNode.toIndex(),getCppuType(&xListener),xListener.get());
- }
-
- /// Remove a <type scope='com::sun::star::util'>XChangesListener</type> observing <var>aNode</var> and its descendants.
- void remove(configuration::NodeID const& aNode, uno::Reference< css::util::XChangesListener > const& xListener)
- {
- // ignore the names for now
- m_aListeners.removeListener(aNode.toIndex(),getCppuType(&xListener),xListener.get());
- }
-
- /// Remove a <type scope='com::sun::star::beans'>XPropertyChangeListener</type> observing <var>aNode</var>.
- void removeNamed(configuration::SubNodeID const& aNode, uno::Reference< css::beans::XPropertyChangeListener > const& xListener)
- {
- // ignore the names for now
- m_aListeners.removeSpecialListener(aNode,xListener.get());
- }
- /// Remove a <type scope='com::sun::star::beans'>XPropertyChangeListener</type> observing <var>aNode</var>.
- void removeForAll(configuration::NodeID const& aNode, uno::Reference< css::beans::XPropertyChangeListener > const& xListener)
- {
- // ignore the names for now
- m_aListeners.removeListener(aNode.toIndex(),getCppuType(&xListener),xListener.get());
- }
- /// Remove a <type scope='com::sun::star::beans'>XVetoableChangeListener</type> constraining <var>aNode</var>.
- void removeNamed(configuration::SubNodeID const& aNode, uno::Reference< css::beans::XVetoableChangeListener > const& xListener)
- {
- // ignore the names for now
- m_aListeners.removeSpecialListener(aNode,xListener.get());
- }
- /// Remove a <type scope='com::sun::star::beans'>XVetoableChangeListener</type> constraining <var>aNode</var>.
- void removeForAll(configuration::NodeID const& aNode, uno::Reference< css::beans::XVetoableChangeListener > const& xListener)
- {
- // ignore the names for now
- m_aListeners.removeListener(aNode.toIndex(),getCppuType(&xListener),xListener.get());
- }
-
-
- /** Remove a <type scope='com::sun::star::beans'>XPropertiesChangeListener</type>
- observing any properties of <var>aNode</var>.
- */
- void remove(configuration::NodeID const& aNode, uno::Reference< css::beans::XPropertiesChangeListener > const& xListener)
- {
- // ignore the names for now
- m_aListeners.removeListener(aNode.toIndex(),getCppuType(&xListener),xListener.get());
- }
- // ---------------------------------------------------------------------------------------------------
- };
-
-// ---------------------------------------------------------------------------------------------------
- }
-}
-
-#endif // CONFIGMGR_API_NOTIFIERIMPL_HXX_