summaryrefslogtreecommitdiff
path: root/comphelper/inc/comphelper/proxyaggregation.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'comphelper/inc/comphelper/proxyaggregation.hxx')
-rw-r--r--comphelper/inc/comphelper/proxyaggregation.hxx221
1 files changed, 0 insertions, 221 deletions
diff --git a/comphelper/inc/comphelper/proxyaggregation.hxx b/comphelper/inc/comphelper/proxyaggregation.hxx
deleted file mode 100644
index 2c01a7a3587f..000000000000
--- a/comphelper/inc/comphelper/proxyaggregation.hxx
+++ /dev/null
@@ -1,221 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#ifndef COMPHELPER_PROXY_AGGREGATION
-#define COMPHELPER_PROXY_AGGREGATION
-
-#include <com/sun/star/uno/XAggregation.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-#include <cppuhelper/implbase1.hxx>
-#include <cppuhelper/interfacecontainer.hxx>
-#include <comphelper/uno3.hxx>
-#include <comphelper/broadcasthelper.hxx>
-#include <cppuhelper/compbase_ex.hxx>
-#include "comphelper/comphelperdllapi.h"
-
-/* class hierarchy herein:
-
- +-------------------+ helper class for aggregating the proxy to another object
- | OProxyAggregation | - not ref counted
- +-------------------+ - no UNO implementation, i.e. not derived from XInterface
- ^ (neither direct nor indirect)
- |
- |
- +----------------------------------+ helper class for aggregating a proxy to an XComponent
- | OComponentProxyAggregationHelper | - life time coupling: if the inner component (the "aggregate")
- +----------------------------------+ is disposed, the outer (the delegator) is disposed, too, and
- ^ vice versa
- | - UNO based, implementing XEventListener
- |
- +----------------------------+ component aggregating another XComponent
- | OComponentProxyAggregation | - life time coupling as above
- +----------------------------+ - ref-counted
- - implements an XComponent itself
-
- If you need to
-
- - wrap a foreign object which is a XComponent
- => use OComponentProxyAggregation
- - call componentAggregateProxyFor in your ctor
- - call implEnsureDisposeInDtor in your dtor
-
- - wrap a foreign object which is a XComponent, but already have ref-counting mechanisms
- inherited from somewhere else
- => use OComponentProxyAggregationHelper
- - override dispose - don't forget to call the base class' dispose!
- - call componentAggregateProxyFor in your ctor
-
- - wrap a foreign object which is no XComponent
- => use OProxyAggregation
- - call baseAggregateProxyFor in your ctor
-*/
-
-//.............................................................................
-namespace comphelper
-{
-//.............................................................................
-
- //=========================================================================
- //= OProxyAggregation
- //=========================================================================
- /** helper class for aggregating a proxy for a foreign object
- */
- class OProxyAggregation
- {
- private:
- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation > m_xProxyAggregate;
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XTypeProvider > m_xProxyTypeAccess;
- ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext;
-
- protected:
- inline const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& getComponentContext()
- {
- return m_xContext;
- }
-
- protected:
- OProxyAggregation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext );
- ~OProxyAggregation();
-
- /// to be called from within your ctor
- void baseAggregateProxyFor(
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxComponent,
- oslInterlockedCount& _rRefCount,
- ::cppu::OWeakObject& _rDelegator
- );
-
- // XInterface and XTypeProvider
- ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type& _rType ) throw (::com::sun::star::uno::RuntimeException);
- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw (::com::sun::star::uno::RuntimeException);
-
- private:
- OProxyAggregation( ); // never implemented
- OProxyAggregation( const OProxyAggregation& ); // never implemented
- OProxyAggregation& operator=( const OProxyAggregation& ); // never implemented
- };
-
- //=========================================================================
- //= OComponentProxyAggregationHelper
- //=========================================================================
- /** a helper class for aggregating a proxy to an XComponent
-
- <p>The object couples the life time of itself and the component: if one of the both
- dies (in a sense of being disposed), the other one dies, too.</p>
-
- <p>The class itself does not implement XComponent so you need to forward any XComponent::dispose
- calls which your derived class gets to the dispose method of this class.</p>
- */
-
- class COMPHELPER_DLLPUBLIC OComponentProxyAggregationHelper :public ::cppu::ImplHelper1 < com::sun::star::lang::XEventListener
- >
- ,private OProxyAggregation
- {
- private:
- typedef ::cppu::ImplHelper1 < ::com::sun::star::lang::XEventListener
- > BASE; // prevents some MSVC problems
-
- protected:
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >
- m_xInner;
- ::cppu::OBroadcastHelper& m_rBHelper;
-
- protected:
- // OProxyAggregation
- using OProxyAggregation::getComponentContext;
-
- // XInterface
- ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& _rType ) throw (::com::sun::star::uno::RuntimeException);
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER( )
-
- protected:
- OComponentProxyAggregationHelper(
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext,
- ::cppu::OBroadcastHelper& _rBHelper
- );
- virtual ~OComponentProxyAggregationHelper( );
-
- /// to be called from within your ctor
- void componentAggregateProxyFor(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& _rxComponent,
- oslInterlockedCount& _rRefCount,
- ::cppu::OWeakObject& _rDelegator
- );
-
- // XEventListener
- virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
-
- // XComponent
- virtual void SAL_CALL dispose() throw( ::com::sun::star::uno::RuntimeException );
-
- private:
- COMPHELPER_DLLPRIVATE OComponentProxyAggregationHelper( ); // never implemented
- COMPHELPER_DLLPRIVATE OComponentProxyAggregationHelper( const OComponentProxyAggregationHelper& ); // never implemented
- COMPHELPER_DLLPRIVATE OComponentProxyAggregationHelper& operator=( const OComponentProxyAggregationHelper& ); // never implemented
- };
-
- //=========================================================================
- //= OComponentProxyAggregation
- //=========================================================================
- class COMPHELPER_DLLPUBLIC OComponentProxyAggregation :public OBaseMutex
- ,public cppu::WeakComponentImplHelperBase
- ,public OComponentProxyAggregationHelper
- {
- protected:
- OComponentProxyAggregation(
- const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext,
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& _rxComponent
- );
-
- virtual ~OComponentProxyAggregation();
-
- // XInterface
- DECLARE_XINTERFACE()
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
- // OComponentHelper
- virtual void SAL_CALL disposing() throw (::com::sun::star::uno::RuntimeException);
-
- // XEventListener
- virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& _rSource ) throw (::com::sun::star::uno::RuntimeException);
-
- // XComponent/OComponentProxyAggregationHelper
- virtual void SAL_CALL dispose() throw( ::com::sun::star::uno::RuntimeException );
-
- protected:
- // be called from within the dtor of derived classes
- void implEnsureDisposeInDtor( );
-
- private:
- COMPHELPER_DLLPRIVATE OComponentProxyAggregation( ); // never implemented
- COMPHELPER_DLLPRIVATE OComponentProxyAggregation( const OComponentProxyAggregation& ); // never implemented
- COMPHELPER_DLLPRIVATE OComponentProxyAggregation& operator=( const OComponentProxyAggregation& ); // never implemented
- };
-
-//.............................................................................
-} // namespace comphelper
-//.............................................................................
-
-
-#endif // COMPHELPER_PROXY_AGGREGATION
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */