2010-10-27 12:45:03 +01:00
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2012-07-02 17:12:00 +01:00
/*
* 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 .
*/
2000-09-18 15:18:56 +00:00
# ifndef _OCONNECTIONPOINTHELPER_HXX
# define _OCONNECTIONPOINTHELPER_HXX
# include <com/sun/star/lang/XConnectionPointContainer.hpp>
# include <com/sun/star/lang/XConnectionPoint.hpp>
# include <cppuhelper/weak.hxx>
# include <cppuhelper/propshlp.hxx>
# include "OConnectionPointContainerHelper.hxx"
// namespaces
2014-02-25 22:41:38 +01:00
2000-09-18 15:18:56 +00:00
namespace unocontrols {
// class declaration OConnectionPointHelper
2014-02-25 22:41:38 +01:00
2012-02-21 13:54:41 +01:00
class OConnectionPointHelper : public : : com : : sun : : star : : lang : : XConnectionPoint
2010-10-31 21:34:25 -07:00
, public : : cppu : : OWeakObject
2000-09-18 15:18:56 +00:00
{
// public methods
2014-02-25 22:41:38 +01:00
2000-09-18 15:18:56 +00:00
public :
// construct/destruct
2014-02-25 22:41:38 +01:00
2000-09-18 15:18:56 +00:00
/**_________________________________________________________________________________________________________
@ short
@ descr
@ seealso
@ param
@ return
@ onerror
*/
2010-10-31 21:34:25 -07:00
OConnectionPointHelper ( : : osl : : Mutex & aMutex ,
OConnectionPointContainerHelper * pContainerImplementation ,
2012-02-21 13:54:41 +01:00
: : com : : sun : : star : : uno : : Type aType ) ;
2000-09-18 15:18:56 +00:00
/**_________________________________________________________________________________________________________
@ short
@ descr
@ seealso
@ param
@ return
@ onerror
*/
virtual ~ OConnectionPointHelper ( ) ;
// XInterface
2014-02-25 22:41:38 +01:00
2000-09-18 15:18:56 +00:00
/**_______________________________________________________________________________________________________
@ short give answer , if interface is supported
@ descr The interfaces are searched by type .
@ seealso XInterface
@ param " rType " is the type of searched interface .
@ return Any information about found interface
@ onerror A RuntimeException is thrown .
*/
2012-02-21 13:54:41 +01:00
virtual : : com : : sun : : star : : uno : : Any SAL_CALL queryInterface ( const : : com : : sun : : star : : uno : : Type & aType )
2014-03-26 16:37:00 +01:00
throw ( : : com : : sun : : star : : uno : : RuntimeException , std : : exception ) SAL_OVERRIDE ;
2000-09-18 15:18:56 +00:00
/**_______________________________________________________________________________________________________
@ short increment refcount
@ descr -
@ seealso XInterface
@ seealso release ( )
@ param -
@ return -
@ onerror A RuntimeException is thrown .
*/
2014-03-26 16:37:00 +01:00
virtual void SAL_CALL acquire ( ) throw ( ) SAL_OVERRIDE ;
2000-09-18 15:18:56 +00:00
/**_______________________________________________________________________________________________________
@ short decrement refcount
@ descr -
@ seealso XInterface
@ seealso acquire ( )
@ param -
@ return -
@ onerror A RuntimeException is thrown .
*/
2014-03-26 16:37:00 +01:00
virtual void SAL_CALL release ( ) throw ( ) SAL_OVERRIDE ;
2000-09-18 15:18:56 +00:00
// XConnectionPoint
2014-02-25 22:41:38 +01:00
2000-09-18 15:18:56 +00:00
/**_________________________________________________________________________________________________________
@ short
@ descr
@ seealso
@ param
@ return
@ onerror
*/
2012-02-21 13:54:41 +01:00
virtual : : com : : sun : : star : : uno : : Type SAL_CALL getConnectionType ( )
2014-03-26 16:37:00 +01:00
throw ( : : com : : sun : : star : : uno : : RuntimeException , std : : exception ) SAL_OVERRIDE ;
2000-09-18 15:18:56 +00:00
/**_________________________________________________________________________________________________________
@ short
@ descr
@ seealso
@ param
@ return
@ onerror
*/
2012-02-21 13:54:41 +01:00
virtual : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : lang : : XConnectionPointContainer > SAL_CALL getConnectionPointContainer ( )
2014-03-26 16:37:00 +01:00
throw ( : : com : : sun : : star : : uno : : RuntimeException , std : : exception ) SAL_OVERRIDE ;
2000-09-18 15:18:56 +00:00
/**_________________________________________________________________________________________________________
@ short
@ descr
@ seealso
@ param
@ return
@ onerror
*/
2010-10-31 21:34:25 -07:00
virtual void SAL_CALL advise (
2012-02-21 13:54:41 +01:00
const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : uno : : XInterface > & xListener
2010-10-31 21:34:25 -07:00
) throw (
2012-02-21 13:54:41 +01:00
: : com : : sun : : star : : lang : : ListenerExistException ,
: : com : : sun : : star : : lang : : InvalidListenerException ,
2014-02-25 21:31:58 +01:00
: : com : : sun : : star : : uno : : RuntimeException , std : : exception
2014-03-26 16:37:00 +01:00
) SAL_OVERRIDE ;
2000-09-18 15:18:56 +00:00
/**_________________________________________________________________________________________________________
@ short
@ descr
@ seealso
@ param
@ return
@ onerror
*/
2012-02-21 13:54:41 +01:00
virtual void SAL_CALL unadvise ( const : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : uno : : XInterface > & xListener )
2014-03-26 16:37:00 +01:00
throw ( : : com : : sun : : star : : uno : : RuntimeException , std : : exception ) SAL_OVERRIDE ;
2000-09-18 15:18:56 +00:00
/**_________________________________________________________________________________________________________
@ short
@ descr
@ seealso
@ param
@ return
@ onerror
*/
2012-02-21 13:54:41 +01:00
virtual : : com : : sun : : star : : uno : : Sequence < : : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : uno : : XInterface > > SAL_CALL getConnections ( )
2014-03-26 16:37:00 +01:00
throw ( : : com : : sun : : star : : uno : : RuntimeException , std : : exception ) SAL_OVERRIDE ;
2000-09-18 15:18:56 +00:00
// private methods
2014-02-25 22:41:38 +01:00
2000-09-18 15:18:56 +00:00
private :
/**_________________________________________________________________________________________________________
@ short
@ descr
@ seealso
@ param
@ return
@ onerror
*/
2014-02-17 23:15:43 +01:00
bool impl_LockContainer ( ) ;
2000-09-18 15:18:56 +00:00
/**_________________________________________________________________________________________________________
@ short
@ descr
@ seealso
@ param
@ return
@ onerror
*/
void impl_UnlockContainer ( ) ;
// private variables
2014-02-25 22:41:38 +01:00
2000-09-18 15:18:56 +00:00
private :
2010-10-31 21:34:25 -07:00
: : osl : : Mutex & m_aSharedMutex ;
2012-02-21 13:54:41 +01:00
: : com : : sun : : star : : uno : : WeakReference < : : com : : sun : : star : : lang : : XConnectionPointContainer > m_oContainerWeakReference ; // Reference to container-class!. Don't use Reference<...>
2000-09-18 15:18:56 +00:00
// It is a ring-reference => and must be a wekreference!
2010-10-31 21:34:25 -07:00
OConnectionPointContainerHelper * m_pContainerImplementation ;
2012-02-21 13:54:41 +01:00
: : com : : sun : : star : : uno : : Type m_aInterfaceType ;
: : com : : sun : : star : : uno : : Reference < : : com : : sun : : star : : uno : : XInterface > m_xLock ;
2000-09-18 15:18:56 +00:00
} ; // class OConnectionPointHelper
} // namespace unocontrols
# endif // #ifndef _OCONNECTIONPOINTHELPER_HXX
2010-10-27 12:45:03 +01:00
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */