summaryrefslogtreecommitdiff
path: root/UnoControls/source/controls/OConnectionPointHelper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'UnoControls/source/controls/OConnectionPointHelper.cxx')
-rw-r--r--UnoControls/source/controls/OConnectionPointHelper.cxx275
1 files changed, 0 insertions, 275 deletions
diff --git a/UnoControls/source/controls/OConnectionPointHelper.cxx b/UnoControls/source/controls/OConnectionPointHelper.cxx
deleted file mode 100644
index a9f0e606d..000000000
--- a/UnoControls/source/controls/OConnectionPointHelper.cxx
+++ /dev/null
@@ -1,275 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * 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.
- *
- ************************************************************************/
-
-//______________________________________________________________________________________________________________
-// my own include
-//______________________________________________________________________________________________________________
-
-#include "OConnectionPointHelper.hxx"
-
-//______________________________________________________________________________________________________________
-// includes of other projects
-//______________________________________________________________________________________________________________
-
-//______________________________________________________________________________________________________________
-// include of my own project
-//______________________________________________________________________________________________________________
-#include "OConnectionPointContainerHelper.hxx"
-
-//______________________________________________________________________________________________________________
-// namespaces
-//______________________________________________________________________________________________________________
-
-using namespace ::rtl ;
-using namespace ::osl ;
-using namespace ::cppu ;
-using namespace ::com::sun::star::uno ;
-using namespace ::com::sun::star::lang ;
-
-namespace unocontrols{
-
-//______________________________________________________________________________________________________________
-// construct/destruct
-//______________________________________________________________________________________________________________
-
-OConnectionPointHelper::OConnectionPointHelper(
- Mutex& aMutex ,
- OConnectionPointContainerHelper* pContainerImplementation ,
- Type aType
-) : m_aSharedMutex ( aMutex )
- , m_oContainerWeakReference ( pContainerImplementation )
- , m_pContainerImplementation ( pContainerImplementation )
- , m_aInterfaceType ( aType )
-{
-}
-
-OConnectionPointHelper::~OConnectionPointHelper()
-{
-}
-
-//____________________________________________________________________________________________________________
-// XInterface
-//____________________________________________________________________________________________________________
-
-Any SAL_CALL OConnectionPointHelper::queryInterface( const Type& aType ) throw( RuntimeException )
-{
- // Attention:
- // Don't use mutex or guard in this method!!! Is a method of XInterface.
-
- // Ask for my own supported interfaces ...
- Any aReturn ( ::cppu::queryInterface( aType ,
- static_cast< XConnectionPoint* > ( this )
- )
- );
-
- // If searched interface not supported by this class ...
- if ( aReturn.hasValue() == sal_False )
- {
- // ... ask baseclasses.
- aReturn = OWeakObject::queryInterface( aType );
- }
-
- return aReturn ;
-}
-
-//____________________________________________________________________________________________________________
-// XInterface
-//____________________________________________________________________________________________________________
-
-void SAL_CALL OConnectionPointHelper::acquire() throw()
-{
- // Attention:
- // Don't use mutex or guard in this method!!! Is a method of XInterface.
-
- // Forward to baseclass
- OWeakObject::acquire();
-}
-
-//____________________________________________________________________________________________________________
-// XInterface
-//____________________________________________________________________________________________________________
-
-void SAL_CALL OConnectionPointHelper::release() throw()
-{
- // Attention:
- // Don't use mutex or guard in this method!!! Is a method of XInterface.
-
- // Forward to baseclass
- OWeakObject::release();
-}
-
-//______________________________________________________________________________________________________________
-// XConnectionPoint
-//______________________________________________________________________________________________________________
-
-Type SAL_CALL OConnectionPointHelper::getConnectionType() throw( RuntimeException )
-{
- // Ready for multithreading
- MutexGuard aGuard( m_aSharedMutex );
-
- // Set default return value, if method failed.
- if ( impl_LockContainer() == sal_False )
- {
- // Container not exist! Its an runtime error.
- throw RuntimeException();
- }
-
- // If container reference valid, return right type of supported interfaces of THIS connectionpoint.
- Type aReturnType = m_aInterfaceType ;
- // Don't forget this!
- impl_UnlockContainer();
-
- return aReturnType;
-}
-
-//______________________________________________________________________________________________________________
-// XConnectionPoint
-//______________________________________________________________________________________________________________
-
-Reference< XConnectionPointContainer > SAL_CALL OConnectionPointHelper::getConnectionPointContainer() throw( RuntimeException )
-{
- // Ready for multithreading
- MutexGuard aGuard( m_aSharedMutex );
- // Convert weakreference to correct uno3-reference and return value. It can be NULL, if container destroyed!
- return Reference< XConnectionPointContainer >( m_oContainerWeakReference.get(), UNO_QUERY );
-}
-
-//______________________________________________________________________________________________________________
-// XConnectionPoint
-//______________________________________________________________________________________________________________
-
-void SAL_CALL OConnectionPointHelper::advise( const Reference< XInterface >& xListener ) throw( ListenerExistException ,
- InvalidListenerException ,
- RuntimeException )
-{
- // Ready for multithreading
- MutexGuard aGuard( m_aSharedMutex );
-
- // If type of listener not the same for this special container ...
- Any aCheckType = xListener->queryInterface( m_aInterfaceType );
- if ( aCheckType.hasValue() )
- {
- // ... throw an exception.
- throw InvalidListenerException();
- }
-
- // ListenerExistException is obsolete!?
- // Its the same container for XConnectionPointContainer and XConnectionPoint. But only here we must control, if a listener already exist!?
- // You can add a listener more then one time at XConnectionPointContainer, but here only one ...
-
- // Operation is permitted only, if reference to container is valid!
- if ( impl_LockContainer() == sal_False )
- {
- // Container not exist! Its an runtime error.
- throw RuntimeException();
- }
- // Forward it to OConnectionPointHelperContainer!
- m_pContainerImplementation->advise( m_aInterfaceType, xListener );
- // Don't forget this!
- impl_UnlockContainer();
-}
-
-//______________________________________________________________________________________________________________
-// XConnectionPoint
-//______________________________________________________________________________________________________________
-
-void SAL_CALL OConnectionPointHelper::unadvise( const Reference< XInterface >& xListener ) throw( RuntimeException )
-{
- // Ready for multithreading
- MutexGuard aGuard( m_aSharedMutex );
- // Operation is permitted only, if reference to container is valid!
- if ( impl_LockContainer() == sal_False )
- {
- // Container not exist! Its an runtime error.
- throw RuntimeException();
-
- }
- // Forward it to OConnectionPointHelperContainer!
- m_pContainerImplementation->unadvise( m_aInterfaceType, xListener );
- // Don't forget this!
- impl_UnlockContainer();
-}
-
-//______________________________________________________________________________________________________________
-// XConnectionPoint
-//______________________________________________________________________________________________________________
-
-Sequence< Reference< XInterface > > SAL_CALL OConnectionPointHelper::getConnections() throw( RuntimeException )
-{
- // Ready for multithreading
- MutexGuard aGuard( m_aSharedMutex );
- // Operation is permitted only, if reference to container is valid!
- if ( impl_LockContainer() == sal_False )
- {
- // Container not exist! Its an runtime error.
- throw RuntimeException();
- }
- // Set default return value, if method failed.
- Sequence< Reference< XInterface > > seqReturnConnections = Sequence< Reference< XInterface > >();
- // Get reference to private member of OConnectionPointHelperContainer!
- OMultiTypeInterfaceContainerHelper& aSharedContainer = m_pContainerImplementation->impl_getMultiTypeContainer();
- // Get pointer to specialized container which hold all interfaces of searched type.
- OInterfaceContainerHelper* pSpecialContainer = aSharedContainer.getContainer( m_aInterfaceType );
- // Get elements of searched type, if somelse exist.
- if ( pSpecialContainer != NULL )
- {
- seqReturnConnections = pSpecialContainer->getElements();
- }
- // Don't forget this!
- impl_UnlockContainer();
-
- return seqReturnConnections;
-}
-
-//______________________________________________________________________________________________________________
-// private method
-//______________________________________________________________________________________________________________
-
-sal_Bool OConnectionPointHelper::impl_LockContainer()
-{
- // Convert weakreference to hard uno3-reference and return state.
- // If this reference different from NULL, there exist a hard reference to container. Container-instance can't be destroyed.
- // Don't forget to "unlock" this reference!
- m_xLock = m_oContainerWeakReference.get();
- return m_xLock.is();
-}
-
-//______________________________________________________________________________________________________________
-// private method
-//______________________________________________________________________________________________________________
-
-void OConnectionPointHelper::impl_UnlockContainer()
-{
- // Free hard uno3-reference to container.
- // see also "impl_LockContainer()"
- m_xLock = Reference< XInterface >();
-}
-
-} // namespace unocontrols
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */