summaryrefslogtreecommitdiff
path: root/framework/inc/macros
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2020-07-08 20:31:00 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-07-09 08:27:53 +0200
commit6653107b838be22da2ceb6e9123dafe67b45dd91 (patch)
tree769d2981f3255905dfce762e16c42ff6a863acc9 /framework/inc/macros
parent5483d4e10aad27889b961b9cb94d7ba6c86aed0b (diff)
clean up macro usage
Change-Id: I06669718f692cc5e9e209b4e490365f4f016afdb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98389 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'framework/inc/macros')
-rw-r--r--framework/inc/macros/registration.hxx90
-rw-r--r--framework/inc/macros/xinterface.hxx145
-rw-r--r--framework/inc/macros/xserviceinfo.hxx183
-rw-r--r--framework/inc/macros/xtypeprovider.hxx119
4 files changed, 0 insertions, 537 deletions
diff --git a/framework/inc/macros/registration.hxx b/framework/inc/macros/registration.hxx
deleted file mode 100644
index 878bc89c44bb..000000000000
--- a/framework/inc/macros/registration.hxx
+++ /dev/null
@@ -1,90 +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 INCLUDED_FRAMEWORK_INC_MACROS_REGISTRATION_HXX
-#define INCLUDED_FRAMEWORK_INC_MACROS_REGISTRATION_HXX
-
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-
-//namespace framework{
-
-/*_________________________________________________________________________________________________________________
-
- macros for registration of services
- Please use follow public macros only!
-
- IFFACTORY( CLASS ) => use it as parameter for COMPONENT_GETFACTORY( IFFACTORIES )
- COMPONENTGETFACTORY( LIB, IFFACTORIES ) => use it to define exported function LIB_component_getFactory()
-
-_________________________________________________________________________________________________________________*/
-
-// public
-// use it as parameter for COMPONENT_GETFACTORY( IFFACTORIES )
-
-#define IFFACTORY( CLASS ) \
- /* If searched name found ... */ \
- /* You can't add some statements before follow line ... Here can be an ELSE-statement! */ \
- if ( CLASS::impl_getStaticImplementationName().equalsAscii( pImplementationName ) ) \
- { \
- /* ... then create right factory for this service. */ \
- /* xFactory and xServiceManager are local variables of method which use this macro. */ \
- xFactory = CLASS::impl_createFactory( xServiceManager ); \
- }
-
-// public
-// define method to instantiate new services
-
-#define COMPONENTGETFACTORY( LIB, IFFACTORIES ) \
- extern "C" SAL_DLLPUBLIC_EXPORT void* LIB##_component_getFactory( const char* pImplementationName, \
- void* pServiceManager , \
- void* /*pRegistryKey*/ ) \
- { \
- /* Set default return value for this operation - if it failed. */ \
- void* pReturn = nullptr; \
- if ( \
- ( pImplementationName != nullptr ) && \
- ( pServiceManager != nullptr ) \
- ) \
- { \
- /* Define variables which are used in following macros. */ \
- css::uno::Reference< css::uno::XInterface > xFactory; \
- css::uno::Reference< css::lang::XMultiServiceFactory > xServiceManager = static_cast< css::lang::XMultiServiceFactory* >( pServiceManager ); \
- /* These parameter will expand to */ \
- /* "IF_NAME_CREATECOMPONENTFACTORY(a) */ \
- /* else */ \
- /* ... */ \
- /* else */ \
- /* IF_NAME_CREATECOMPONENTFACTORY(z)" */ \
- IFFACTORIES \
- /* Factory is valid, if service was found. */ \
- if ( xFactory.is() ) \
- { \
- xFactory->acquire(); \
- pReturn = xFactory.get(); \
- } \
- } \
- /* Return with result of this operation. */ \
- return pReturn; \
- }
-
-//} // namespace framework
-
-#endif // INCLUDED_FRAMEWORK_INC_MACROS_REGISTRATION_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/inc/macros/xinterface.hxx b/framework/inc/macros/xinterface.hxx
deleted file mode 100644
index da070f23a077..000000000000
--- a/framework/inc/macros/xinterface.hxx
+++ /dev/null
@@ -1,145 +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 INCLUDED_FRAMEWORK_INC_MACROS_XINTERFACE_HXX
-#define INCLUDED_FRAMEWORK_INC_MACROS_XINTERFACE_HXX
-
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Type.hxx>
-#include <cppuhelper/queryinterface.hxx>
-
-namespace framework{
-
-/*_________________________________________________________________________________________________________________
-
- macros for declaration and definition of XInterface
- Please use follow public macros only!
-
- 1) DEFINE_XINTERFACE => use it in header to declare XInterface and his methods
- 2) DIRECT_INTERFACE( INTERFACE ) => use it as parameter INTERFACEx at 4) if interface not ambiguous
- 3) DERIVED_INTERFACE( BASEINTERFACE, DERIVEDINTERFACE ) => use it as parameter INTERFACEx at 4) if interface can be ambiguous
- 4) DECLARE_XINTERFACE_0( CLASS, BASECLASS ) => use it to define implementation of XInterface for 0 additional interface to baseclass
- DECLARE_XINTERFACE_1( CLASS, BASECLASS, INTERFACE1 ) => use it to define implementation of XInterface for 1 additional interface to baseclass
- ...
- DECLARE_XINTERFACE_16( CLASS, BASECLASS, INTERFACE1, ... , INTERFACE16 )
-
-_________________________________________________________________________________________________________________*/
-
-// private
-// implementation of XInterface::acquire()
-// XInterface::release()
-
-#define PRIVATE_DEFINE_XINTERFACE_ACQUIRE_RELEASE( CLASS, BASECLASS ) \
- void SAL_CALL CLASS::acquire() throw() \
- { \
- /* Don't use mutex in methods of XInterface! */ \
- BASECLASS::acquire(); \
- } \
- \
- void SAL_CALL CLASS::release() throw() \
- { \
- /* Don't use mutex in methods of XInterface! */ \
- BASECLASS::release(); \
- }
-
-// private
-// complete implementation of XInterface with max. 12 other interfaces!
-
-#define PRIVATE_DEFINE_XINTERFACE( CLASS, BASECLASS, INTERFACES ) \
- PRIVATE_DEFINE_XINTERFACE_ACQUIRE_RELEASE( CLASS, BASECLASS ) \
- css::uno::Any SAL_CALL CLASS::queryInterface( const css::uno::Type& aType ) \
- { \
- /* Attention: Don't use mutex or guard in this method!!! Is a method of XInterface. */ \
- /* Ask for my own supported interfaces ... */ \
- css::uno::Any aReturn ( ::cppu::queryInterface INTERFACES \
- ); \
- /* If searched interface not supported by this class ... */ \
- if ( !aReturn.hasValue() ) \
- { \
- /* ... ask baseclass for interfaces! */ \
- aReturn = BASECLASS::queryInterface( aType ); \
- } \
- /* Return result of this search. */ \
- return aReturn; \
- }
-
-// private
-// help macros to replace INTERFACES in queryInterface() [see before]
-
-#define PRIVATE_DEFINE_INTERFACE_11( INTERFACE1, INTERFACE2, INTERFACE3, INTERFACE4, INTERFACE5, INTERFACE6, INTERFACE7, INTERFACE8, INTERFACE9, INTERFACE10, INTERFACE11 ) \
- INTERFACE1, \
- INTERFACE2, \
- INTERFACE3, \
- INTERFACE4, \
- INTERFACE5, \
- INTERFACE6, \
- INTERFACE7, \
- INTERFACE8, \
- INTERFACE9, \
- INTERFACE10, \
- INTERFACE11
-
-// public
-// help macros for follow XInterface definitions
-
-// Use it as parameter for DEFINE_XINTERFACE_X(), if you CAN use an interface directly in queryInterface()!
-#define DIRECT_INTERFACE( INTERFACE ) \
- static_cast< INTERFACE* >( this )
-
-// Use it as parameter for DEFINE_XINTERFACE_X(), if you CAN'T use an interface directly in queryInterface()!
-// (zB at ambiguous errors!)
-#define DERIVED_INTERFACE( BASEINTERFACE, DERIVEDINTERFACE ) \
- static_cast< BASEINTERFACE* >( static_cast< DERIVEDINTERFACE* >( this ) )
-
-// public
-// declaration of XInterface
-
-#define FWK_DECLARE_XINTERFACE \
- virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override; \
- virtual void SAL_CALL acquire ( ) throw() override; \
- virtual void SAL_CALL release ( ) throw() override;
-
-// public
-// implementation of XInterface
-
-
-// implementation of XInterface with 11 additional interfaces for queryInterface()
-#define DEFINE_XINTERFACE_11( CLASS, BASECLASS, INTERFACE1, INTERFACE2, INTERFACE3, INTERFACE4, INTERFACE5, INTERFACE6, INTERFACE7, INTERFACE8, INTERFACE9, INTERFACE10, INTERFACE11 ) \
- PRIVATE_DEFINE_XINTERFACE ( CLASS, \
- BASECLASS, \
- ( aType, PRIVATE_DEFINE_INTERFACE_11 ( INTERFACE1 , \
- INTERFACE2 , \
- INTERFACE3 , \
- INTERFACE4 , \
- INTERFACE5 , \
- INTERFACE6 , \
- INTERFACE7 , \
- INTERFACE8 , \
- INTERFACE9 , \
- INTERFACE10 , \
- INTERFACE11 \
- ) \
- ) \
- )
-
-} // namespace framework
-
-#endif // INCLUDED_FRAMEWORK_INC_MACROS_XINTERFACE_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/inc/macros/xserviceinfo.hxx b/framework/inc/macros/xserviceinfo.hxx
deleted file mode 100644
index 9849c5d0e1a3..000000000000
--- a/framework/inc/macros/xserviceinfo.hxx
+++ /dev/null
@@ -1,183 +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 INCLUDED_FRAMEWORK_INC_MACROS_XSERVICEINFO_HXX
-#define INCLUDED_FRAMEWORK_INC_MACROS_XSERVICEINFO_HXX
-
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <cppuhelper/factory.hxx>
-#include <comphelper/processfactory.hxx>
-#include <cppuhelper/supportsservice.hxx>
-#include <rtl/ustring.hxx>
-
-namespace framework{
-
-/*
- macros for declaration and definition of XServiceInfo
- Please use follow public macros only!
-
- 2) DEFINE_XSERVICEINFO_MULTISERVICE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) => use it to define XServiceInfo for multi service mode
- 3) DEFINE_XSERVICEINFO_ONEINSTANCESERVICE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) => use it to define XServiceInfo for one instance service mode
- 4) DEFINE_INIT_SERVICE( CLASS ) => use it to implement your own impl_initService() method, which is necessary for initializing object by using his own reference!
-*/
-
-#define PRIVATE_DEFINE_XSERVICEINFO_BASE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- \
- OUString SAL_CALL CLASS::getImplementationName() \
- { \
- return impl_getStaticImplementationName(); \
- } \
- \
- sal_Bool SAL_CALL CLASS::supportsService( const OUString& sServiceName ) \
- { \
- return cppu::supportsService(this, sServiceName); \
- } \
- \
- css::uno::Sequence< OUString > SAL_CALL CLASS::getSupportedServiceNames() \
- { \
- return impl_getStaticSupportedServiceNames(); \
- } \
- \
- css::uno::Sequence< OUString > CLASS::impl_getStaticSupportedServiceNames() \
- { \
- css::uno::Sequence< OUString > seqServiceNames { SERVICENAME }; \
- return seqServiceNames; \
- } \
- \
- OUString CLASS::impl_getStaticImplementationName() \
- { \
- return IMPLEMENTATIONNAME; \
- }
-
-#define PRIVATE_DEFINE_XSERVICEINFO_OLDSTYLE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- PRIVATE_DEFINE_XSERVICEINFO_BASE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- /* Attention: To avoid against wrong ref counts during our own initialize procedure, we must */ \
- /* use right EXTERNAL handling of them. That's why you should do nothing in your ctor, which could*/ \
- /* work on your ref count! All other things are allowed. Do work with your own reference - please */ \
- /* use "impl_initService()" method. */ \
- css::uno::Reference< css::uno::XInterface > SAL_CALL CLASS::impl_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ) \
- { \
- /* create new instance of service */ \
- CLASS* pClass = new CLASS( xServiceManager ); \
- /* hold it alive by increasing his ref count!!! */ \
- css::uno::Reference< css::uno::XInterface > xService( static_cast< XINTERFACECAST* >(pClass), css::uno::UNO_QUERY ); \
- /* initialize new service instance ... he can use his own refcount ... we hold it! */ \
- pClass->impl_initService(); \
- /* return new created service as reference */ \
- return xService; \
- }
-
-#define PRIVATE_DEFINE_XSERVICEINFO_NEWSTYLE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- PRIVATE_DEFINE_XSERVICEINFO_BASE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- /* Attention: To avoid against wrong ref counts during our own initialize procedure, we must */ \
- /* use right EXTERNAL handling of them. That's why you should do nothing in your ctor, which could*/ \
- /* work on your ref count! All other things are allowed. Do work with your own reference - please */ \
- /* use "impl_initService()" method. */ \
- css::uno::Reference< css::uno::XInterface > SAL_CALL CLASS::impl_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager )\
- { \
- /* retrieve component context from the given service manager */ \
- css::uno::Reference< css::uno::XComponentContext > xComponentContext( \
- comphelper::getComponentContext( xServiceManager ) ); \
- /* create new instance of service */ \
- CLASS* pClass = new CLASS( xComponentContext ); \
- /* hold it alive by increasing his ref count!!! */ \
- css::uno::Reference< css::uno::XInterface > xService( static_cast< XINTERFACECAST* >(pClass), css::uno::UNO_QUERY ); \
- /* initialize new service instance ... he can use his own refcount ... we hold it! */ \
- pClass->impl_initService(); \
- /* return new created service as reference */ \
- return xService; \
- }
-
-#define PRIVATE_DEFINE_SINGLEFACTORY( CLASS ) \
- css::uno::Reference< css::lang::XSingleServiceFactory > CLASS::impl_createFactory( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ) \
- { \
- css::uno::Reference< css::lang::XSingleServiceFactory > xReturn ( cppu::createSingleFactory ( xServiceManager , \
- CLASS::impl_getStaticImplementationName() , \
- CLASS::impl_createInstance , \
- CLASS::impl_getStaticSupportedServiceNames() \
- ) \
- ); \
- return xReturn; \
- }
-
-#define PRIVATE_DEFINE_ONEINSTANCEFACTORY( CLASS ) \
- css::uno::Reference< css::lang::XSingleServiceFactory > CLASS::impl_createFactory( const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager ) \
- { \
- css::uno::Reference< css::lang::XSingleServiceFactory > xReturn ( cppu::createOneInstanceFactory ( xServiceManager , \
- CLASS::impl_getStaticImplementationName() , \
- CLASS::impl_createInstance , \
- CLASS::impl_getStaticSupportedServiceNames() \
- ) \
- ); \
- return xReturn; \
- }
-
-#define DECLARE_XSERVICEINFO_NOFACTORY \
- /* interface XServiceInfo */ \
- virtual OUString SAL_CALL getImplementationName ( ) override; \
- virtual sal_Bool SAL_CALL supportsService ( const OUString& sServiceName ) override; \
- virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames ( ) override; \
- /* Helper for XServiceInfo */ \
- static css::uno::Sequence< OUString > impl_getStaticSupportedServiceNames( ); \
- static OUString impl_getStaticImplementationName ( ); \
- /* Helper for initialization of service by using own reference! */ \
- void impl_initService ( ); \
-
-#define DEFINE_XSERVICEINFO_MULTISERVICE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- PRIVATE_DEFINE_XSERVICEINFO_OLDSTYLE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- PRIVATE_DEFINE_SINGLEFACTORY( CLASS )
-
-#define DEFINE_XSERVICEINFO_ONEINSTANCESERVICE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- PRIVATE_DEFINE_XSERVICEINFO_OLDSTYLE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- PRIVATE_DEFINE_ONEINSTANCEFACTORY( CLASS )
-
-#define DEFINE_XSERVICEINFO_MULTISERVICE_2( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- PRIVATE_DEFINE_XSERVICEINFO_NEWSTYLE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- PRIVATE_DEFINE_SINGLEFACTORY( CLASS )
-
-#define DEFINE_XSERVICEINFO_ONEINSTANCESERVICE_2( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- PRIVATE_DEFINE_XSERVICEINFO_NEWSTYLE( CLASS, XINTERFACECAST, SERVICENAME, IMPLEMENTATIONNAME ) \
- PRIVATE_DEFINE_ONEINSTANCEFACTORY( CLASS )
-
-// public
-// implementation of service initialize!
-// example of using: DEFINE_INIT_SERVICE( MyClassName,
-// {
-// ...
-// Reference< XInterface > xThis( this, UNO_QUERY );
-// myMember* pMember = new myMember( xThis );
-// ...
-// }
-// )
-#define DEFINE_INIT_SERVICE( CLASS, FUNCTIONBODY ) \
- void CLASS::impl_initService() \
- { \
- FUNCTIONBODY \
- }
-
-} // namespace framework
-
-#endif // INCLUDED_FRAMEWORK_INC_MACROS_XSERVICEINFO_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/inc/macros/xtypeprovider.hxx b/framework/inc/macros/xtypeprovider.hxx
deleted file mode 100644
index 27f9a0546b93..000000000000
--- a/framework/inc/macros/xtypeprovider.hxx
+++ /dev/null
@@ -1,119 +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 INCLUDED_FRAMEWORK_INC_MACROS_XTYPEPROVIDER_HXX
-#define INCLUDED_FRAMEWORK_INC_MACROS_XTYPEPROVIDER_HXX
-
-#include <com/sun/star/lang/XTypeProvider.hpp>
-
-#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/uno/Type.hxx>
-#include <cppuhelper/typeprovider.hxx>
-
-namespace framework{
-
-/*_________________________________________________________________________________________________________________
-
- macros for declaration and definition of XTypeProvider
- Please use follow public macros only!
-
- 1) DEFINE_XTYPEPROVIDER => use it in header to declare XTypeProvider and his methods
- 2) DECLARE_TYPEPROVIDER_0( CLASS ) => use it to define implementation of XTypeProvider for 0 supported type
- DECLARE_TYPEPROVIDER_1( CLASS, TYPE1 ) => use it to define implementation of XTypeProvider for 1 supported type
- ...
- DECLARE_TYPEPROVIDER_16( CLASS, TYPE1, ... , TYPE16 )
- 3) DEFINE_XTYPEPROVIDER_1_WITH_BASECLASS( CLASS, BASECLASS, TYPE1 ) => use it to define implementation of XTypeProvider for 1 additional supported type to baseclass
- ...
- DEFINE_XTYPEPROVIDER_5_WITH_BASECLASS( CLASS, BASECLASS, TYPE1, ..., TYPE5 )
-
-_________________________________________________________________________________________________________________*/
-
-// private
-// implementation of XTypeProvider::getImplementationId()
-
-#define PRIVATE_DEFINE_XTYPEPROVIDER_GETIMPLEMENTATIONID( CLASS ) \
- css::uno::Sequence< sal_Int8 > SAL_CALL CLASS::getImplementationId() \
- { \
- return css::uno::Sequence<sal_Int8>(); \
- }
-
-// private
-// help macros to replace TYPES in getTypes() [see before]
-
-#define PRIVATE_DEFINE_TYPE_11( TYPE1, TYPE2, TYPE3, TYPE4, TYPE5, TYPE6, TYPE7, TYPE8, TYPE9, TYPE10, TYPE11 ) \
- cppu::UnoType<TYPE1>::get(), \
- cppu::UnoType<TYPE2>::get(), \
- cppu::UnoType<TYPE3>::get(), \
- cppu::UnoType<TYPE4>::get(), \
- cppu::UnoType<TYPE5>::get(), \
- cppu::UnoType<TYPE6>::get(), \
- cppu::UnoType<TYPE7>::get(), \
- cppu::UnoType<TYPE8>::get(), \
- cppu::UnoType<TYPE9>::get(), \
- cppu::UnoType<TYPE10>::get(), \
- cppu::UnoType<TYPE11>::get()
-
-// private
-// complete implementation of XTypeProvider with max. 12 interfaces!
-
-#define PRIVATE_DEFINE_XTYPEPROVIDER( CLASS, TYPES ) \
- PRIVATE_DEFINE_XTYPEPROVIDER_GETIMPLEMENTATIONID( CLASS ) \
- css::uno::Sequence< css::uno::Type > SAL_CALL CLASS::getTypes() \
- { \
- /* Attention: "TYPES" will expand to "(...)"! */ \
- static cppu::OTypeCollection ourTypeCollection TYPES; \
- return ourTypeCollection.getTypes(); \
- }
-
-// public
-// declaration of XTypeProvider
-
-#define FWK_DECLARE_XTYPEPROVIDER \
- virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes () override;\
- virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override;
-
-// public
-// implementation of XTypeProvider
-
-// implementation of XTypeProvider without additional interface for getTypes()
-// XTypeProvider is used as the only one interface automatically.
-
-
-// implementation of XTypeProvider with 11 additional interfaces for getTypes()
-#define DEFINE_XTYPEPROVIDER_11( CLASS, TYPE1, TYPE2, TYPE3, TYPE4, TYPE5, TYPE6, TYPE7, TYPE8, TYPE9, TYPE10, TYPE11 ) \
- PRIVATE_DEFINE_XTYPEPROVIDER ( CLASS, \
- (PRIVATE_DEFINE_TYPE_11 ( TYPE1 , \
- TYPE2 , \
- TYPE3 , \
- TYPE4 , \
- TYPE5 , \
- TYPE6 , \
- TYPE7 , \
- TYPE8 , \
- TYPE9 , \
- TYPE10 , \
- TYPE11 \
- )) \
- )
-
-} // namespace framework
-
-#endif // INCLUDED_FRAMEWORK_INC_MACROS_XTYPEPROVIDER_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */