diff options
author | David Tardon <dtardon@redhat.com> | 2013-04-19 18:54:16 +0200 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2013-04-24 05:17:10 +0000 |
commit | 6c7659b584ea7ed3652ca4eb9a2297f36310c365 (patch) | |
tree | adf631e2d3db309b0696babd9d026bce0996c215 /cppu | |
parent | 24500d6798007d84521eb24a81c121ebe69d3bfd (diff) |
move URE headers to include/
Change-Id: Ib48a12e902f2311c295b2007f08f44dee28f431d
Reviewed-on: https://gerrit.libreoffice.org/3499
Reviewed-by: David Tardon <dtardon@redhat.com>
Tested-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'cppu')
43 files changed, 0 insertions, 8730 deletions
diff --git a/cppu/CppunitTest_cppu_checkapi.mk b/cppu/CppunitTest_cppu_checkapi.mk deleted file mode 100644 index fe2c40f30430..000000000000 --- a/cppu/CppunitTest_cppu_checkapi.mk +++ /dev/null @@ -1,48 +0,0 @@ -# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*- -# -# Version: MPL 1.1 / GPLv3+ / LGPLv3+ -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License or as specified alternatively below. You may obtain a copy of -# the License at http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# Major Contributor(s): -# Copyright (C) 2011 Matúš Kukan <matus.kukan@gmail.com> (initial developer) -# -# All Rights Reserved. -# -# For minor contributions see the git repository. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 3 or later (the "GPLv3+"), or -# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), -# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable -# instead of those above. - -$(eval $(call gb_CppunitTest_CppunitTest,cppu_checkapi)) - -$(eval $(call gb_CppunitTest_use_custom_headers,cppu_checkapi,\ - cppu/allheaders \ -)) - -$(eval $(call gb_CppunitTest_add_exception_objects,cppu_checkapi,\ - cppu/qa/checkapi/strings \ -)) - -$(eval $(call gb_CppunitTest_use_internal_comprehensive_api,cppu_checkapi, \ - cppu \ - udkapi \ -)) - -$(eval $(call gb_CppunitTest_use_libraries,cppu_checkapi,\ - cppu \ - $(gb_UWINAPI) \ -)) - -# vim: set noet sw=4 ts=4: diff --git a/cppu/CustomTarget_cppu_allheaders.mk b/cppu/CustomTarget_cppu_allheaders.mk deleted file mode 100644 index 6959f5f5b104..000000000000 --- a/cppu/CustomTarget_cppu_allheaders.mk +++ /dev/null @@ -1,44 +0,0 @@ -# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*- -# -# Version: MPL 1.1 / GPLv3+ / LGPLv3+ -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License or as specified alternatively below. You may obtain a copy of -# the License at http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# Major Contributor(s): -# Copyright (C) 2011 Matúš Kukan <matus.kukan@gmail.com> (initial developer) -# -# All Rights Reserved. -# -# For minor contributions see the git repository. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 3 or later (the "GPLv3+"), or -# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), -# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable -# instead of those above. - -$(eval $(call gb_CustomTarget_CustomTarget,cppu/allheaders)) - -cppu_allheaders_DIR := $(call gb_CustomTarget_get_workdir,cppu/allheaders) - -$(call gb_CustomTarget_get_target,cppu/allheaders) : \ - $(cppu_allheaders_DIR)/cppu_allheaders.hxx - -$(cppu_allheaders_DIR)/cppu_allheaders.hxx : \ - $(call gb_Package_get_target,cppu_odk_headers) \ - | $(cppu_allheaders_DIR)/.dir - $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1) - printf '// Generated list of cppu includes\n' > $@ \ - $(foreach file,$(shell cat $<),\ - && printf '#include <%s>\n' $(subst $(INSTDIR)/$(gb_Package_SDKDIRNAME)/include/,,$(file)) >> $@ \ - ) - -# vim: set noet sw=4 ts=4: diff --git a/cppu/Library_cppu.mk b/cppu/Library_cppu.mk index dd6e4339b22e..3848a3dfcb8c 100644 --- a/cppu/Library_cppu.mk +++ b/cppu/Library_cppu.mk @@ -29,8 +29,6 @@ $(eval $(call gb_Library_Library,cppu)) $(eval $(call gb_Library_set_soversion_script,cppu,3,$(SRCDIR)/cppu/util/cppu.map)) -$(eval $(call gb_Library_use_package,cppu,cppu_odk_headers)) - $(eval $(call gb_Library_use_udk_api,cppu)) $(eval $(call gb_Library_add_defs,cppu,\ diff --git a/cppu/Module_cppu.mk b/cppu/Module_cppu.mk index c957320361a8..9ad0bfc6d184 100644 --- a/cppu/Module_cppu.mk +++ b/cppu/Module_cppu.mk @@ -28,18 +28,15 @@ $(eval $(call gb_Module_Module,cppu)) $(eval $(call gb_Module_add_targets,cppu,\ - CustomTarget_cppu_allheaders \ InternalUnoApi_cppu \ Library_affine_uno \ Library_cppu \ Library_log_uno \ Library_purpenvhelper \ Library_unsafe_uno \ - Package_cppu_odk_headers \ )) $(eval $(call gb_Module_add_check_targets,cppu,\ - CppunitTest_cppu_checkapi \ CppunitTest_cppu_qa_any \ CppunitTest_cppu_qa_recursion \ CppunitTest_cppu_qa_reference \ diff --git a/cppu/Package_cppu_odk_headers.mk b/cppu/Package_cppu_odk_headers.mk deleted file mode 100644 index 15459f769da1..000000000000 --- a/cppu/Package_cppu_odk_headers.mk +++ /dev/null @@ -1,85 +0,0 @@ -# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*- -# -# Version: MPL 1.1 / GPLv3+ / LGPLv3+ -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License or as specified alternatively below. You may obtain a copy of -# the License at http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# Major Contributor(s): -# Copyright (C) 2011 Matúš Kukan <matus.kukan@gmail.com> -# -# All Rights Reserved. -# -# For minor contributions see the git repository. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 3 or later (the "GPLv3+"), or -# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), -# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable -# instead of those above. - -$(eval $(call gb_Package_Package,cppu_odk_headers,$(SRCDIR)/cppu/inc)) - -$(eval $(call gb_Package_set_outdir,cppu_odk_headers,$(INSTDIR))) - -$(eval $(call gb_Package_add_files,cppu_odk_headers,$(gb_Package_SDKDIRNAME)/include/com/sun/star/uno,\ - com/sun/star/uno/Any.h \ - com/sun/star/uno/Any.hxx \ - com/sun/star/uno/genfunc.h \ - com/sun/star/uno/genfunc.hxx \ - com/sun/star/uno/Reference.h \ - com/sun/star/uno/Reference.hxx \ - com/sun/star/uno/Sequence.h \ - com/sun/star/uno/Sequence.hxx \ - com/sun/star/uno/Type.h \ - com/sun/star/uno/Type.hxx \ -)) - -$(eval $(call gb_Package_add_files,cppu_odk_headers,$(gb_Package_SDKDIRNAME)/include/cppu,\ - cppu/cppudllapi.h \ - cppu/EnvDcp.hxx \ - cppu/Enterable.hxx \ - cppu/EnvGuards.hxx \ - cppu/macros.hxx \ - cppu/Map.hxx \ - cppu/unotype.hxx \ -)) - -$(eval $(call gb_Package_add_files,cppu_odk_headers,$(gb_Package_SDKDIRNAME)/include/cppu/helper/purpenv,\ - cppu/helper/purpenv/Environment.hxx \ - cppu/helper/purpenv/Mapping.hxx \ -)) - -$(eval $(call gb_Package_add_files,cppu_odk_headers,$(gb_Package_SDKDIRNAME)/include/typelib,\ - typelib/typeclass.h \ - typelib/typedescription.h \ - typelib/typedescription.hxx \ - typelib/uik.h \ -)) - -$(eval $(call gb_Package_add_files,cppu_odk_headers,$(gb_Package_SDKDIRNAME)/include/uno,\ - uno/any2.h \ - uno/current_context.h \ - uno/current_context.hxx \ - uno/data.h \ - uno/dispatcher.h \ - uno/dispatcher.hxx \ - uno/Enterable.h \ - uno/EnvDcp.h \ - uno/environment.h \ - uno/environment.hxx \ - uno/lbnames.h \ - uno/mapping.h \ - uno/mapping.hxx \ - uno/sequence2.h \ - uno/threadpool.h \ -)) - -# vim: set noet sw=4 ts=4: diff --git a/cppu/inc/com/sun/star/uno/Any.h b/cppu/inc/com/sun/star/uno/Any.h deleted file mode 100644 index f1d03e8709b5..000000000000 --- a/cppu/inc/com/sun/star/uno/Any.h +++ /dev/null @@ -1,376 +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 _COM_SUN_STAR_UNO_ANY_H_ -#define _COM_SUN_STAR_UNO_ANY_H_ - -#include <uno/any2.h> -#include <typelib/typedescription.h> -#include <com/sun/star/uno/Type.h> -#include "cppu/unotype.hxx" -#include <rtl/alloc.h> - - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -/** C++ class representing an IDL any. - This class is used to transport any type defined in IDL. The class inherits from the - binary C representation of uno_Any. - You can insert a value by either using the <<= operators or the template function makeAny(). - No any can hold an any. You can extract values from an any by using the >>= operators which - return true if the any contains an assignable value (no data loss), e.g. the any contains a - short and you >>= it into a long variable. -*/ -class Any : public uno_Any -{ -public: - /// @cond INTERNAL - // these are here to force memory de/allocation to sal lib. - inline static void * SAL_CALL operator new ( size_t nSize ) SAL_THROW(()) - { return ::rtl_allocateMemory( nSize ); } - inline static void SAL_CALL operator delete ( void * pMem ) SAL_THROW(()) - { ::rtl_freeMemory( pMem ); } - inline static void * SAL_CALL operator new ( size_t, void * pMem ) SAL_THROW(()) - { return pMem; } - inline static void SAL_CALL operator delete ( void *, void * ) SAL_THROW(()) - {} - /// @endcond - - /** Default constructor: Any holds no value; its type is void. - */ - inline Any() SAL_THROW(()); - - /** Templated ctor. Sets a copy of the given value. - - @param value value of the Any - */ - template <typename T> - explicit inline Any( T const & value ); - /// Ctor support for C++ bool. - explicit inline Any( bool value ); - - /** Copy constructor: Sets value of the given any. - - @param rAny another any - */ - inline Any( const Any & rAny ) SAL_THROW(()); - - /** Constructor: Sets a copy of the given data. - - @param pData_ value - @param rType type of value - */ - inline Any( const void * pData_, const Type & rType ) SAL_THROW(()); - - /** Constructor: Sets a copy of the given data. - - @param pData_ value - @param pTypeDescr type of value - */ - inline Any( const void * pData_, typelib_TypeDescription * pTypeDescr ) SAL_THROW(()); - - /** Constructor: Sets a copy of the given data. - - @param pData_ value - @param pType type of value - */ - inline Any( const void * pData_, typelib_TypeDescriptionReference * pType ) SAL_THROW(()); - - /** Destructor: Destructs any content and frees memory. - */ - inline ~Any() SAL_THROW(()); - - /** Assignment operator: Sets the value of the given any. - - @param rAny another any (right side) - @return this any - */ - inline Any & SAL_CALL operator = ( const Any & rAny ) SAL_THROW(()); - - /** Gets the type of the set value. - - @return a Type object of the set value - */ - inline const Type & SAL_CALL getValueType() const SAL_THROW(()) - { return * reinterpret_cast< const Type * >( &pType ); } - /** Gets the type of the set value. - - @return the unacquired type description reference of the set value - */ - inline typelib_TypeDescriptionReference * SAL_CALL getValueTypeRef() const SAL_THROW(()) - { return pType; } - - /** Gets the type description of the set value. Provides ownership of the type description! - Call an explicit typelib_typedescription_release() to release afterwards. - - @param ppTypeDescr a pointer to type description pointer - */ - inline void SAL_CALL getValueTypeDescription( typelib_TypeDescription ** ppTypeDescr ) const SAL_THROW(()) - { ::typelib_typedescriptionreference_getDescription( ppTypeDescr, pType ); } - - /** Gets the type class of the set value. - - @return the type class of the set value - */ - inline TypeClass SAL_CALL getValueTypeClass() const SAL_THROW(()) - { return (TypeClass)pType->eTypeClass; } - - /** Gets the type name of the set value. - - @return the type name of the set value - */ - inline ::rtl::OUString SAL_CALL getValueTypeName() const SAL_THROW(()); - - /** Tests if any contains a value. - - @return true if any has a value, false otherwise - */ - inline sal_Bool SAL_CALL hasValue() const SAL_THROW(()) - { return (typelib_TypeClass_VOID != pType->eTypeClass); } - - /** Gets a pointer to the set value. - - @return a pointer to the set value - */ - inline const void * SAL_CALL getValue() const SAL_THROW(()) - { return pData; } - -#if ! defined(EXCEPTIONS_OFF) - /** Provides a value of specified type, so you can easily write e.g. - <pre> - sal_Int32 myVal = myAny.get<sal_Int32>(); - </pre> - Widening conversion without data loss is taken into account. - Throws a - <type scope="com::sun::star::uno">RuntimeException</type> - if the specified type cannot be provided. - - @return value of specified type - @exception <type scope="com::sun::star::uno">RuntimeException</type> - in case the specified type cannot be provided - */ - template <typename T> - inline T get() const; -#endif // ! defined(EXCEPTIONS_OFF) - - /** Sets a value. If the any already contains a value, that value will be destructed - and its memory freed. - - @param pData_ pointer to value - @param rType type of value - */ - inline void SAL_CALL setValue( const void * pData_, const Type & rType ) SAL_THROW(()); - /** Sets a value. If the any already contains a value, that value will be destructed - and its memory freed. - - @param pData_ pointer to value - @param pType type of value - */ - inline void SAL_CALL setValue( const void * pData_, typelib_TypeDescriptionReference * pType ) SAL_THROW(()); - /** Sets a value. If the any already contains a value, that value will be destructed - and its memory freed. - - @param pData_ pointer to value - @param pTypeDescr type description of value - */ - inline void SAL_CALL setValue( const void * pData_, typelib_TypeDescription * pTypeDescr ) SAL_THROW(()); - - /** Clears this any. If the any already contains a value, that value will be destructed - and its memory freed. After this has been called, the any does not contain a value. - */ - inline void SAL_CALL clear() SAL_THROW(()); - - /** Tests whether this any is extractable to a value of given type. - Widening conversion without data loss is taken into account. - - @param rType destination type - @return true if this any is extractable to value of given type (e.g. using >>= operator) - */ - inline sal_Bool SAL_CALL isExtractableTo( const Type & rType ) const SAL_THROW(()); - - /** Tests whether this any can provide a value of specified type. - Widening conversion without data loss is taken into account. - - @return true if this any can provide a value of specified type - (e.g. using >>= operator) - */ - template <typename T> - inline bool has() const; - - /** Equality operator: compares two anys. - The values need not be of equal type, e.g. a short integer is compared to a long integer. - - @param rAny another any (right side) - @return true if both any contains equal values - */ - inline sal_Bool SAL_CALL operator == ( const Any & rAny ) const SAL_THROW(()); - /** Unequality operator: compares two anys. - The values need not be of equal type, e.g. a short integer is compared to a long integer. - - @param rAny another any (right side) - @return true if both any contains unequal values - */ - inline sal_Bool SAL_CALL operator != ( const Any & rAny ) const SAL_THROW(()); - -private: - // not impl: forbid use with ambiguous type (sal_Unicode, sal_uInt16) - explicit Any( sal_uInt16 ); -#if defined(_MSC_VER) - // Omitting the following private declarations leads to an internal compiler - // error on MSVC (version 1310). - // not impl: forbid use with ambiguous type (sal_Unicode, sal_uInt16) -#if ! defined(EXCEPTIONS_OFF) - template <> - sal_uInt16 get<sal_uInt16>() const; -#endif // ! defined(EXCEPTIONS_OFF) - template <> - bool has<sal_uInt16>() const; -#endif // defined(_MSC_VER) -}; - -/** Template function to generically construct an any from a C++ value. - - @tparam C value type - @param value a value - @return an any -*/ -template< class C > -inline Any SAL_CALL makeAny( const C & value ) SAL_THROW(()); - -// additionally specialized for C++ bool -template<> -inline Any SAL_CALL makeAny( bool const & value ) SAL_THROW(()); - -class BaseReference; -class Type; - -/** Template binary <<= operator to set the value of an any. - - @tparam C value type - @param rAny destination any (left side) - @param value source value (right side) -*/ -template< class C > -inline void SAL_CALL operator <<= ( Any & rAny, const C & value ) SAL_THROW(()); - -// additionally for C++ bool: -inline void SAL_CALL operator <<= ( Any & rAny, bool const & value ) - SAL_THROW(()); - -/** Template binary >>= operator to assign a value from an any. - If the any does not contain a value that can be assigned without data loss, then this - operation will fail returning false. - - @tparam C value type - @param rAny source any (left side) - @param value destination value (right side) - @return true if assignment was possible without data loss -*/ -template< class C > -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, C & value ) SAL_THROW(()); - -/** Template equality operator: compares set value of left side any to right side value. - The values need not be of equal type, e.g. a short integer is compared to a long integer. - This operator can be implemented as template member function, if all supported compilers - can cope with template member functions. - - @tparam C value type - @param rAny another any (left side) - @param value a value (right side) - @return true if values are equal, false otherwise -*/ -template< class C > -inline sal_Bool SAL_CALL operator == ( const Any & rAny, const C & value ) SAL_THROW(()); -/** Template unequality operator: compares set value of left side any to right side value. - The values need not be of equal type, e.g. a short integer is compared to a long integer. - This operator can be implemented as template member function, if all supported compilers - can cope with template member functions. - - @tparam C value type - @param rAny another any (left side) - @param value a value (right side) - @return true if values are unequal, false otherwise -*/ -template< class C > -inline sal_Bool SAL_CALL operator != ( const Any & rAny, const C & value ) SAL_THROW(()); - -// additional specialized >>= and == operators -// bool -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_Bool & value ) SAL_THROW(()); -inline sal_Bool SAL_CALL operator == ( const Any & rAny, const sal_Bool & value ) SAL_THROW(()); -template<> -inline sal_Bool SAL_CALL operator >>= ( Any const & rAny, bool & value ) - SAL_THROW(()); -template<> -inline sal_Bool SAL_CALL operator == ( Any const & rAny, bool const & value ) - SAL_THROW(()); -// byte -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_Int8 & value ) SAL_THROW(()); -// short -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_Int16 & value ) SAL_THROW(()); -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_uInt16 & value ) SAL_THROW(()); -// long -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_Int32 & value ) SAL_THROW(()); -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_uInt32 & value ) SAL_THROW(()); -// hyper -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_Int64 & value ) SAL_THROW(()); -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_uInt64 & value ) SAL_THROW(()); -// float -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, float & value ) SAL_THROW(()); -// double -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, double & value ) SAL_THROW(()); -// string -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, ::rtl::OUString & value ) SAL_THROW(()); -inline sal_Bool SAL_CALL operator == ( const Any & rAny, const ::rtl::OUString & value ) SAL_THROW(()); -// type -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, Type & value ) SAL_THROW(()); -inline sal_Bool SAL_CALL operator == ( const Any & rAny, const Type & value ) SAL_THROW(()); -// any -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, Any & value ) SAL_THROW(()); -// interface -inline sal_Bool SAL_CALL operator == ( const Any & rAny, const BaseReference & value ) SAL_THROW(()); - -} -} -} -} - -/** Gets the meta type of IDL type any. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type any -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const ::com::sun::star::uno::Any * ) SAL_THROW(()) -{ - return ::cppu::UnoType< ::com::sun::star::uno::Any >::get(); -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/com/sun/star/uno/Any.hxx b/cppu/inc/com/sun/star/uno/Any.hxx deleted file mode 100644 index 6f3bda9692bd..000000000000 --- a/cppu/inc/com/sun/star/uno/Any.hxx +++ /dev/null @@ -1,596 +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 _COM_SUN_STAR_UNO_ANY_HXX_ -#define _COM_SUN_STAR_UNO_ANY_HXX_ - -#include <com/sun/star/uno/Any.h> -#include <uno/data.h> -#include <com/sun/star/uno/Type.hxx> -#include <com/sun/star/uno/XInterface.hpp> -#include <com/sun/star/uno/genfunc.hxx> -#include "cppu/unotype.hxx" - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -//__________________________________________________________________________________________________ -inline Any::Any() SAL_THROW(()) -{ - ::uno_any_construct( this, 0, 0, (uno_AcquireFunc)cpp_acquire ); -} - -//______________________________________________________________________________ -template <typename T> -inline Any::Any( T const & value ) -{ - ::uno_type_any_construct( - this, const_cast<T *>(&value), - ::cppu::getTypeFavourUnsigned(&value).getTypeLibType(), - (uno_AcquireFunc) cpp_acquire ); -} -//______________________________________________________________________________ -inline Any::Any( bool value ) -{ - sal_Bool b = value; - ::uno_type_any_construct( - this, &b, ::getCppuBooleanType().getTypeLibType(), - (uno_AcquireFunc) cpp_acquire ); -} - -//__________________________________________________________________________________________________ -inline Any::Any( const Any & rAny ) SAL_THROW(()) -{ - ::uno_type_any_construct( this, rAny.pData, rAny.pType, (uno_AcquireFunc)cpp_acquire ); -} -//__________________________________________________________________________________________________ -inline Any::Any( const void * pData_, const Type & rType ) SAL_THROW(()) -{ - ::uno_type_any_construct( - this, const_cast< void * >( pData_ ), rType.getTypeLibType(), - (uno_AcquireFunc)cpp_acquire ); -} -//__________________________________________________________________________________________________ -inline Any::Any( const void * pData_, typelib_TypeDescription * pTypeDescr ) SAL_THROW(()) -{ - ::uno_any_construct( - this, const_cast< void * >( pData_ ), pTypeDescr, (uno_AcquireFunc)cpp_acquire ); -} -//__________________________________________________________________________________________________ -inline Any::Any( const void * pData_, typelib_TypeDescriptionReference * pType_ ) SAL_THROW(()) -{ - ::uno_type_any_construct( - this, const_cast< void * >( pData_ ), pType_, (uno_AcquireFunc)cpp_acquire ); -} -//__________________________________________________________________________________________________ -inline Any::~Any() SAL_THROW(()) -{ - ::uno_any_destruct( - this, (uno_ReleaseFunc)cpp_release ); -} -//__________________________________________________________________________________________________ -inline Any & Any::operator = ( const Any & rAny ) SAL_THROW(()) -{ - if (this != &rAny) - { - ::uno_type_any_assign( - this, rAny.pData, rAny.pType, - (uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release ); - } - return *this; -} -//__________________________________________________________________________________________________ -inline ::rtl::OUString Any::getValueTypeName() const SAL_THROW(()) -{ - return ::rtl::OUString( pType->pTypeName ); -} -//__________________________________________________________________________________________________ -inline void Any::setValue( const void * pData_, const Type & rType ) SAL_THROW(()) -{ - ::uno_type_any_assign( - this, const_cast< void * >( pData_ ), rType.getTypeLibType(), - (uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release ); -} -//__________________________________________________________________________________________________ -inline void Any::setValue( const void * pData_, typelib_TypeDescriptionReference * pType_ ) SAL_THROW(()) -{ - ::uno_type_any_assign( - this, const_cast< void * >( pData_ ), pType_, - (uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release ); -} -//__________________________________________________________________________________________________ -inline void Any::setValue( const void * pData_, typelib_TypeDescription * pTypeDescr ) SAL_THROW(()) -{ - ::uno_any_assign( - this, const_cast< void * >( pData_ ), pTypeDescr, - (uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release ); -} -//__________________________________________________________________________________________________ -inline void Any::clear() SAL_THROW(()) -{ - ::uno_any_clear( - this, (uno_ReleaseFunc)cpp_release ); -} -//__________________________________________________________________________________________________ -inline sal_Bool Any::isExtractableTo( const Type & rType ) const SAL_THROW(()) -{ - return ::uno_type_isAssignableFromData( - rType.getTypeLibType(), pData, pType, - (uno_QueryInterfaceFunc)cpp_queryInterface, (uno_ReleaseFunc)cpp_release ); -} - -//______________________________________________________________________________ -template <typename T> -inline bool Any::has() const -{ - Type const & rType = ::cppu::getTypeFavourUnsigned(static_cast< T * >(0)); - return ::uno_type_isAssignableFromData( - rType.getTypeLibType(), pData, pType, - (uno_QueryInterfaceFunc) cpp_queryInterface, - (uno_ReleaseFunc) cpp_release ); -} -#if ! defined(__SUNPRO_CC) -// not impl: forbid use with ambiguous type (sal_Unicode, sal_uInt16) -template <> -bool Any::has<sal_uInt16>() const; -#endif // ! defined(__SUNPRO_CC) - -//__________________________________________________________________________________________________ -inline sal_Bool Any::operator == ( const Any & rAny ) const SAL_THROW(()) -{ - return ::uno_type_equalData( - pData, pType, rAny.pData, rAny.pType, - (uno_QueryInterfaceFunc)cpp_queryInterface, (uno_ReleaseFunc)cpp_release ); -} -//__________________________________________________________________________________________________ -inline sal_Bool Any::operator != ( const Any & rAny ) const SAL_THROW(()) -{ - return (! ::uno_type_equalData( - pData, pType, rAny.pData, rAny.pType, - (uno_QueryInterfaceFunc)cpp_queryInterface, (uno_ReleaseFunc)cpp_release )); -} - -//__________________________________________________________________________________________________ -template< class C > -inline Any SAL_CALL makeAny( const C & value ) SAL_THROW(()) -{ - return Any( &value, ::cppu::getTypeFavourUnsigned(&value) ); -} - -// additionally specialized for C++ bool -//______________________________________________________________________________ -template<> -inline Any SAL_CALL makeAny( bool const & value ) SAL_THROW(()) -{ - const sal_Bool b = value; - return Any( &b, ::getCppuBooleanType() ); -} - -//__________________________________________________________________________________________________ -#ifdef RTL_FAST_STRING -template< class C1, class C2 > -inline Any SAL_CALL makeAny( const rtl::OUStringConcat< C1, C2 >& value ) SAL_THROW(()) -{ - const rtl::OUString str( value ); - return Any( &str, ::cppu::getTypeFavourUnsigned(&str) ); -} -#endif -//__________________________________________________________________________________________________ -template< class C > -inline void SAL_CALL operator <<= ( Any & rAny, const C & value ) SAL_THROW(()) -{ - const Type & rType = ::cppu::getTypeFavourUnsigned(&value); - ::uno_type_any_assign( - &rAny, const_cast< C * >( &value ), rType.getTypeLibType(), - (uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release ); -} - -// additionally for C++ bool: -//______________________________________________________________________________ -inline void SAL_CALL operator <<= ( Any & rAny, bool const & value ) - SAL_THROW(()) -{ - sal_Bool b = value; - ::uno_type_any_assign( - &rAny, &b, ::getCppuBooleanType().getTypeLibType(), - (uno_AcquireFunc) cpp_acquire, (uno_ReleaseFunc) cpp_release ); -} - -//______________________________________________________________________________ -#ifdef RTL_FAST_STRING -template< class C1, class C2 > -inline void SAL_CALL operator <<= ( Any & rAny, const rtl::OUStringConcat< C1, C2 >& value ) - SAL_THROW(()) -{ - const rtl::OUString str( value ); - const Type & rType = ::cppu::getTypeFavourUnsigned(&str); - ::uno_type_any_assign( - &rAny, const_cast< rtl::OUString * >( &str ), rType.getTypeLibType(), - (uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release ); -} -#endif -//__________________________________________________________________________________________________ -template< class C > -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, C & value ) SAL_THROW(()) -{ - const Type & rType = ::cppu::getTypeFavourUnsigned(&value); - return ::uno_type_assignData( - &value, rType.getTypeLibType(), - rAny.pData, rAny.pType, - (uno_QueryInterfaceFunc)cpp_queryInterface, - (uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release ); -} - -// bool -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const ::com::sun::star::uno::Any & rAny, sal_Bool & value ) SAL_THROW(()) -{ - if (typelib_TypeClass_BOOLEAN == rAny.pType->eTypeClass) - { - value = (* reinterpret_cast< const sal_Bool * >( rAny.pData ) != sal_False); - return sal_True; - } - return sal_False; -} -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator == ( const Any & rAny, const sal_Bool & value ) SAL_THROW(()) -{ - return (typelib_TypeClass_BOOLEAN == rAny.pType->eTypeClass && - (value != sal_False) == (* reinterpret_cast< const sal_Bool * >( rAny.pData ) != sal_False)); -} - -//______________________________________________________________________________ -template<> -inline sal_Bool SAL_CALL operator >>= ( Any const & rAny, bool & value ) - SAL_THROW(()) -{ - if (rAny.pType->eTypeClass == typelib_TypeClass_BOOLEAN) - { - value = *reinterpret_cast< sal_Bool const * >( - rAny.pData ) != sal_False; - return true; - } - return false; -} - -//______________________________________________________________________________ -template<> -inline sal_Bool SAL_CALL operator == ( Any const & rAny, bool const & value ) - SAL_THROW(()) -{ - return (rAny.pType->eTypeClass == typelib_TypeClass_BOOLEAN && - (value == - (*reinterpret_cast< sal_Bool const * >( rAny.pData ) - != sal_False))); -} - -// byte -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const ::com::sun::star::uno::Any & rAny, sal_Int8 & value ) SAL_THROW(()) -{ - if (typelib_TypeClass_BYTE == rAny.pType->eTypeClass) - { - value = * reinterpret_cast< const sal_Int8 * >( rAny.pData ); - return sal_True; - } - return sal_False; -} -// short -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_Int16 & value ) SAL_THROW(()) -{ - switch (rAny.pType->eTypeClass) - { - case typelib_TypeClass_BYTE: - value = * reinterpret_cast< const sal_Int8 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_SHORT: - case typelib_TypeClass_UNSIGNED_SHORT: - value = * reinterpret_cast< const sal_Int16 * >( rAny.pData ); - return sal_True; - default: - return sal_False; - } -} -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_uInt16 & value ) SAL_THROW(()) -{ - switch (rAny.pType->eTypeClass) - { - case typelib_TypeClass_BYTE: - value = (sal_uInt16)( * reinterpret_cast< const sal_Int8 * >( rAny.pData ) ); - return sal_True; - case typelib_TypeClass_SHORT: - case typelib_TypeClass_UNSIGNED_SHORT: - value = * reinterpret_cast< const sal_uInt16 * >( rAny.pData ); - return sal_True; - default: - return sal_False; - } -} -// long -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_Int32 & value ) SAL_THROW(()) -{ - switch (rAny.pType->eTypeClass) - { - case typelib_TypeClass_BYTE: - value = * reinterpret_cast< const sal_Int8 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_SHORT: - value = * reinterpret_cast< const sal_Int16 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_UNSIGNED_SHORT: - value = * reinterpret_cast< const sal_uInt16 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_LONG: - case typelib_TypeClass_UNSIGNED_LONG: - value = * reinterpret_cast< const sal_Int32 * >( rAny.pData ); - return sal_True; - default: - return sal_False; - } -} -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_uInt32 & value ) SAL_THROW(()) -{ - switch (rAny.pType->eTypeClass) - { - case typelib_TypeClass_BYTE: - value = (sal_uInt32)( * reinterpret_cast< const sal_Int8 * >( rAny.pData ) ); - return sal_True; - case typelib_TypeClass_SHORT: - value = (sal_uInt32)( * reinterpret_cast< const sal_Int16 * >( rAny.pData ) ); - return sal_True; - case typelib_TypeClass_UNSIGNED_SHORT: - value = * reinterpret_cast< const sal_uInt16 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_LONG: - case typelib_TypeClass_UNSIGNED_LONG: - value = * reinterpret_cast< const sal_uInt32 * >( rAny.pData ); - return sal_True; - default: - return sal_False; - } -} -// hyper -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_Int64 & value ) SAL_THROW(()) -{ - switch (rAny.pType->eTypeClass) - { - case typelib_TypeClass_BYTE: - value = * reinterpret_cast< const sal_Int8 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_SHORT: - value = * reinterpret_cast< const sal_Int16 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_UNSIGNED_SHORT: - value = * reinterpret_cast< const sal_uInt16 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_LONG: - value = * reinterpret_cast< const sal_Int32 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_UNSIGNED_LONG: - value = * reinterpret_cast< const sal_uInt32 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_HYPER: - case typelib_TypeClass_UNSIGNED_HYPER: - value = * reinterpret_cast< const sal_Int64 * >( rAny.pData ); - return sal_True; - default: - return sal_False; - } -} -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, sal_uInt64 & value ) SAL_THROW(()) -{ - switch (rAny.pType->eTypeClass) - { - case typelib_TypeClass_BYTE: - value = (sal_uInt64)( * reinterpret_cast< const sal_Int8 * >( rAny.pData ) ); - return sal_True; - case typelib_TypeClass_SHORT: - value = (sal_uInt64)( * reinterpret_cast< const sal_Int16 * >( rAny.pData ) ); - return sal_True; - case typelib_TypeClass_UNSIGNED_SHORT: - value = * reinterpret_cast< const sal_uInt16 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_LONG: - value = (sal_uInt64)( * reinterpret_cast< const sal_Int32 * >( rAny.pData ) ); - return sal_True; - case typelib_TypeClass_UNSIGNED_LONG: - value = * reinterpret_cast< const sal_uInt32 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_HYPER: - case typelib_TypeClass_UNSIGNED_HYPER: - value = * reinterpret_cast< const sal_uInt64 * >( rAny.pData ); - return sal_True; - default: - return sal_False; - } -} -// float -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, float & value ) SAL_THROW(()) -{ - switch (rAny.pType->eTypeClass) - { - case typelib_TypeClass_BYTE: - value = * reinterpret_cast< const sal_Int8 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_SHORT: - value = * reinterpret_cast< const sal_Int16 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_UNSIGNED_SHORT: - value = * reinterpret_cast< const sal_uInt16 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_FLOAT: - value = * reinterpret_cast< const float * >( rAny.pData ); - return sal_True; - default: - return sal_False; - } -} -// double -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, double & value ) SAL_THROW(()) -{ - switch (rAny.pType->eTypeClass) - { - case typelib_TypeClass_BYTE: - value = * reinterpret_cast< const sal_Int8 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_SHORT: - value = * reinterpret_cast< const sal_Int16 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_UNSIGNED_SHORT: - value = * reinterpret_cast< const sal_uInt16 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_LONG: - value = * reinterpret_cast< const sal_Int32 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_UNSIGNED_LONG: - value = * reinterpret_cast< const sal_uInt32 * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_FLOAT: - value = * reinterpret_cast< const float * >( rAny.pData ); - return sal_True; - case typelib_TypeClass_DOUBLE: - value = * reinterpret_cast< const double * >( rAny.pData ); - return sal_True; - default: - return sal_False; - } -} -// string -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, ::rtl::OUString & value ) SAL_THROW(()) -{ - if (typelib_TypeClass_STRING == rAny.pType->eTypeClass) - { - value = * reinterpret_cast< const ::rtl::OUString * >( rAny.pData ); - return sal_True; - } - return sal_False; -} -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator == ( const Any & rAny, const ::rtl::OUString & value ) SAL_THROW(()) -{ - return (typelib_TypeClass_STRING == rAny.pType->eTypeClass && - value.equals( * reinterpret_cast< const ::rtl::OUString * >( rAny.pData ) )); -} -// type -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, Type & value ) SAL_THROW(()) -{ - if (typelib_TypeClass_TYPE == rAny.pType->eTypeClass) - { - value = * reinterpret_cast< const Type * >( rAny.pData ); - return sal_True; - } - return sal_False; -} -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator == ( const Any & rAny, const Type & value ) SAL_THROW(()) -{ - return (typelib_TypeClass_TYPE == rAny.pType->eTypeClass && - value.equals( * reinterpret_cast< const Type * >( rAny.pData ) )); -} -// any -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator >>= ( const Any & rAny, Any & value ) SAL_THROW(()) -{ - if (&rAny != &value) - { - ::uno_type_any_assign( - &value, rAny.pData, rAny.pType, - (uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release ); - } - return sal_True; -} -// interface -//__________________________________________________________________________________________________ -inline sal_Bool SAL_CALL operator == ( const Any & rAny, const BaseReference & value ) SAL_THROW(()) -{ - if (typelib_TypeClass_INTERFACE == rAny.pType->eTypeClass) - { - return reinterpret_cast< const BaseReference * >( rAny.pData )->operator == ( value ); - } - return sal_False; -} - -// operator to compare to an any. -//__________________________________________________________________________________________________ -template< class C > -inline sal_Bool SAL_CALL operator == ( const Any & rAny, const C & value ) SAL_THROW(()) -{ - const Type & rType = ::cppu::getTypeFavourUnsigned(&value); - return ::uno_type_equalData( - rAny.pData, rAny.pType, - const_cast< C * >( &value ), rType.getTypeLibType(), - (uno_QueryInterfaceFunc)cpp_queryInterface, (uno_ReleaseFunc)cpp_release ); -} -// operator to compare to an any. may use specialized operators ==. -//__________________________________________________________________________________________________ -template< class C > -inline sal_Bool SAL_CALL operator != ( const Any & rAny, const C & value ) SAL_THROW(()) -{ - return (! operator == ( rAny, value )); -} - -#if ! defined(EXCEPTIONS_OFF) -extern "C" rtl_uString * SAL_CALL cppu_Any_extraction_failure_msg( - uno_Any const * pAny, typelib_TypeDescriptionReference * pType ) - SAL_THROW_EXTERN_C(); - -//______________________________________________________________________________ -template <typename T> -T Any::get() const -{ - T value = T(); - if (! (*this >>= value)) { - throw RuntimeException( - ::rtl::OUString( - cppu_Any_extraction_failure_msg( - this, - ::cppu::getTypeFavourUnsigned(&value).getTypeLibType() ), - SAL_NO_ACQUIRE ), - Reference<XInterface>() ); - } - return value; -} -// not impl: forbid use with ambiguous type (sal_Unicode, sal_uInt16) -template <> -sal_uInt16 Any::get<sal_uInt16>() const; -#endif // ! defined(EXCEPTIONS_OFF) - -} -} -} -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/com/sun/star/uno/Reference.h b/cppu/inc/com/sun/star/uno/Reference.h deleted file mode 100644 index 94551a087063..000000000000 --- a/cppu/inc/com/sun/star/uno/Reference.h +++ /dev/null @@ -1,519 +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 _COM_SUN_STAR_UNO_REFERENCE_H_ -#define _COM_SUN_STAR_UNO_REFERENCE_H_ - -#include <rtl/alloc.h> - - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -class RuntimeException; -class XInterface; -class Type; -class Any; - -/** Enum defining UNO_REF_NO_ACQUIRE for setting reference without acquiring a given interface. - Deprecated, please use SAL_NO_ACQUIRE. - @deprecated -*/ -enum UnoReference_NoAcquire -{ - /** This enum value can be used for creating a reference granting a given interface, - i.e. transferring ownership to it. - */ - UNO_REF_NO_ACQUIRE -}; - -/** This base class serves as a base class for all template reference classes and - has been introduced due to compiler problems with templated operators ==, =!. -*/ -class BaseReference -{ -protected: - /** the interface pointer - */ - XInterface * _pInterface; - - /** Queries given interface for type rType. - - @param pInterface interface pointer - @param rType interface type - @return interface of demanded type (may be null) - */ - inline static XInterface * SAL_CALL iquery( XInterface * pInterface, const Type & rType ) - SAL_THROW( (RuntimeException) ); -#ifndef EXCEPTIONS_OFF - /** Queries given interface for type rType. - Throws a RuntimeException if the demanded interface cannot be queried. - - @param pInterface interface pointer - @param rType interface type - @return interface of demanded type - */ - inline static XInterface * SAL_CALL iquery_throw( XInterface * pInterface, const Type & rType ) - SAL_THROW( (RuntimeException) ); -#endif - -public: - /** Gets interface pointer. This call does not acquire the interface. - - @return UNacquired interface pointer - */ - inline XInterface * SAL_CALL get() const SAL_THROW(()) - { return _pInterface; } - - /** Checks if reference is null. - - @return true if reference acquires an interface, i.e. true if it is not null - */ - inline sal_Bool SAL_CALL is() const SAL_THROW(()) - { return (0 != _pInterface); } - - /** Equality operator: compares two interfaces - Checks if both references are null or refer to the same object. - - @param pInterface another interface - @return true if both references are null or refer to the same object, false otherwise - */ - inline sal_Bool SAL_CALL operator == ( XInterface * pInterface ) const SAL_THROW(()); - /** Unequality operator: compares two interfaces - Checks if both references are null or refer to the same object. - - @param pInterface another interface - @return false if both references are null or refer to the same object, true otherwise - */ - inline sal_Bool SAL_CALL operator != ( XInterface * pInterface ) const SAL_THROW(()); - - /** Equality operator: compares two interfaces - Checks if both references are null or refer to the same object. - - @param rRef another reference - @return true if both references are null or refer to the same object, false otherwise - */ - inline sal_Bool SAL_CALL operator == ( const BaseReference & rRef ) const SAL_THROW(()); - /** Unequality operator: compares two interfaces - Checks if both references are null or refer to the same object. - - @param rRef another reference - @return false if both references are null or refer to the same object, true otherwise - */ - inline sal_Bool SAL_CALL operator != ( const BaseReference & rRef ) const SAL_THROW(()); - - /** Needed by some STL containers. - - @param rRef another reference - @return true, if this reference is less than rRef - */ - inline sal_Bool SAL_CALL operator < ( const BaseReference & rRef ) const SAL_THROW(()); -}; - -/** Enum defining UNO_QUERY for implicit interface query. -*/ -enum UnoReference_Query -{ - /** This enum value can be used for implicit interface query. - */ - UNO_QUERY, -}; -#ifndef EXCEPTIONS_OFF -/** Enum defining UNO_QUERY_THROW for implicit interface query. - If the demanded interface is unavailable, then a RuntimeException is thrown. -*/ -enum UnoReference_QueryThrow -{ - /** This enum value can be used for implicit interface query. - */ - UNO_QUERY_THROW, -}; -/** Enum defining UNO_SET_THROW for throwing if attempts are made to assign a null - interface - - @since UDK 3.2.8 -*/ -enum UnoReference_SetThrow -{ - UNO_SET_THROW -}; -#endif - -/** Template reference class for interface type derived from BaseReference. - A special constructor given the UNO_QUERY identifier queries interfaces - for reference type. -*/ -template< class interface_type > -class Reference : public BaseReference -{ - /** Queries given interface for type interface_type. - - @param pInterface interface pointer - @return interface of demanded type (may be null) - */ - inline static XInterface * SAL_CALL iquery( XInterface * pInterface ) - SAL_THROW( (RuntimeException) ); -#ifndef EXCEPTIONS_OFF - /** Queries given interface for type interface_type. - Throws a RuntimeException if the demanded interface cannot be queried. - - @param pInterface interface pointer - @return interface of demanded type - */ - inline static XInterface * SAL_CALL iquery_throw( XInterface * pInterface ) - SAL_THROW( (RuntimeException) ); - /** Returns the given interface if it is not <NULL/>, throws a RuntimeException otherwise. - - @param pInterface interface pointer - @return pInterface - */ - inline static interface_type * SAL_CALL iset_throw( interface_type * pInterface ) - SAL_THROW( (RuntimeException) ); -#endif - - /** Cast from an "interface pointer" (e.g., BaseReference::_pInterface) to a - pointer to this interface_type. - - To work around ambiguities in the case of multiple-inheritance interface - types (which inherit XInterface more than once), use reinterpret_cast - (resp. a sequence of two static_casts, to avoid warnings about - reinterpret_cast used between related classes) to switch from a pointer - to XInterface to a pointer to this derived interface_type. In - principle, this is not guaranteed to work. In practice, it seems to - work on all supported platforms. - */ - static inline interface_type * castFromXInterface(XInterface * p) { - return static_cast< interface_type * >(static_cast< void * >(p)); - } - - /** Cast from a pointer to this interface_type to an "interface pointer" - (e.g., BaseReference::_pInterface). - - To work around ambiguities in the case of multiple-inheritance interface - types (which inherit XInterface more than once), use reinterpret_cast - (resp. a sequence of two static_casts, to avoid warnings about - reinterpret_cast used between related classes) to switch from a pointer - to this derived interface_type to a pointer to XInterface. In - principle, this is not guaranteed to work. In practice, it seems to - work on all supported platforms. - */ - static inline XInterface * castToXInterface(interface_type * p) { - return static_cast< XInterface * >(static_cast< void * >(p)); - } - -public: - /// @cond INTERNAL - // these are here to force memory de/allocation to sal lib. - inline static void * SAL_CALL operator new ( ::size_t nSize ) SAL_THROW(()) - { return ::rtl_allocateMemory( nSize ); } - inline static void SAL_CALL operator delete ( void * pMem ) SAL_THROW(()) - { ::rtl_freeMemory( pMem ); } - inline static void * SAL_CALL operator new ( ::size_t, void * pMem ) SAL_THROW(()) - { return pMem; } - inline static void SAL_CALL operator delete ( void *, void * ) SAL_THROW(()) - {} - /// @endcond - - /** Destructor: Releases interface if set. - */ - inline ~Reference() SAL_THROW(()); - - /** Default Constructor: Sets null reference. - */ - inline Reference() SAL_THROW(()); - - /** Copy constructor: Copies interface reference. - - @param rRef another reference - */ - inline Reference( const Reference< interface_type > & rRef ) SAL_THROW(()); - /** Constructor: Sets given interface pointer. - - @param pInterface an interface pointer - */ - inline Reference( interface_type * pInterface ) SAL_THROW(()); - - /** Constructor: Sets given interface pointer without acquiring it. - - @param pInterface another reference - @param dummy SAL_NO_ACQUIRE to force obvious distinction to other constructors - */ - inline Reference( interface_type * pInterface, __sal_NoAcquire dummy) SAL_THROW(()); - /** Constructor: Sets given interface pointer without acquiring it. - Deprecated, please use SAL_NO_ACQUIRE version. - - @deprecated - @param pInterface another reference - @param dummy UNO_REF_NO_ACQUIRE to force obvious distinction to other constructors - */ - inline Reference( interface_type * pInterface, UnoReference_NoAcquire dummy ) SAL_THROW(()); - - /** Constructor: Queries given interface for reference interface type (interface_type). - - @param rRef another reference - @param dummy UNO_QUERY to force obvious distinction to other constructors - */ - inline Reference( const BaseReference & rRef, UnoReference_Query dummy ) SAL_THROW( (RuntimeException) ); - /** Constructor: Queries given interface for reference interface type (interface_type). - - @param pInterface an interface pointer - @param dummy UNO_QUERY to force obvious distinction to other constructors - */ - inline Reference( XInterface * pInterface, UnoReference_Query dummy) SAL_THROW( (RuntimeException) ); - /** Constructor: Queries given any for reference interface type (interface_type). - - @param rAny an any - @param dummy UNO_QUERY to force obvious distinction to other constructors - */ - inline Reference( const Any & rAny, UnoReference_Query dummy) SAL_THROW( (RuntimeException) ); -#ifndef EXCEPTIONS_OFF - /** Constructor: Queries given interface for reference interface type (interface_type). - Throws a RuntimeException if the demanded interface cannot be queried. - - @param rRef another reference - @param dummy UNO_QUERY_THROW to force obvious distinction - to other constructors - */ - inline Reference( const BaseReference & rRef, UnoReference_QueryThrow dummy ) SAL_THROW( (RuntimeException) ); - /** Constructor: Queries given interface for reference interface type (interface_type). - Throws a RuntimeException if the demanded interface cannot be queried. - - @param pInterface an interface pointer - @param dummy UNO_QUERY_THROW to force obvious distinction - to other constructors - */ - inline Reference( XInterface * pInterface, UnoReference_QueryThrow dummy ) SAL_THROW( (RuntimeException) ); - /** Constructor: Queries given any for reference interface type (interface_type). - Throws a RuntimeException if the demanded interface cannot be queried. - - @param rAny an any - @param dummy UNO_QUERY_THROW to force obvious distinction - to other constructors - */ - inline Reference( const Any & rAny, UnoReference_QueryThrow dummy ) SAL_THROW( (RuntimeException) ); - /** Constructor: assigns from the given interface of the same type. Throws a RuntimeException - if the source interface is NULL. - - @param rRef another interface reference of the same type - @param dummy UNO_SET_THROW to distinguish from default copy constructor - - @since UDK 3.2.8 - */ - inline Reference( const Reference< interface_type > & rRef, UnoReference_SetThrow dummy ) SAL_THROW( (RuntimeException) ); - /** Constructor: assigns from the given interface of the same type. Throws a RuntimeException - if the source interface is NULL. - - @param pInterface an interface pointer - @param dummy UNO_SET_THROW to distinguish from default assignment constructor - - @since UDK 3.2.8 - */ - inline Reference( interface_type * pInterface, UnoReference_SetThrow dummy ) SAL_THROW( (RuntimeException) ); -#endif - - /** Cast operator to Reference< XInterface >: Reference objects are binary compatible and - any interface must be derived from com.sun.star.uno.XInterface. - This a useful direct cast possibility. - */ - inline SAL_CALL operator const Reference< XInterface > & () const SAL_THROW(()) - { return * reinterpret_cast< const Reference< XInterface > * >( this ); } - - /** Dereference operator: Used to call interface methods. - - @return UNacquired interface pointer - */ - inline interface_type * SAL_CALL operator -> () const SAL_THROW(()) - { return castFromXInterface(_pInterface); } - - /** Gets interface pointer. This call does not acquire the interface. - - @return UNacquired interface pointer - */ - inline interface_type * SAL_CALL get() const SAL_THROW(()) - { return castFromXInterface(_pInterface); } - - /** Clears reference, i.e. releases interface. Reference is null after clear() call. - */ - inline void SAL_CALL clear() SAL_THROW(()); - - /** Sets the given interface. An interface already set will be released. - - @param rRef another reference - @return true, if non-null interface was set - */ - inline sal_Bool SAL_CALL set( const Reference< interface_type > & rRef ) SAL_THROW(()); - /** Sets the given interface. An interface already set will be released. - - @param pInterface another interface - @return true, if non-null interface was set - */ - inline sal_Bool SAL_CALL set( interface_type * pInterface ) SAL_THROW(()); - - /** Sets interface pointer without acquiring it. An interface already set will be released. - - @param pInterface an interface pointer - @param dummy SAL_NO_ACQUIRE to force obvious distinction to set methods - @return true, if non-null interface was set - */ - inline sal_Bool SAL_CALL set( interface_type * pInterface, __sal_NoAcquire dummy) SAL_THROW(()); - /** Sets interface pointer without acquiring it. An interface already set will be released. - Deprecated, please use SAL_NO_ACQUIRE version. - - @deprecated - @param pInterface an interface pointer - @param dummy UNO_REF_NO_ACQUIRE to force obvious distinction to set methods - @return true, if non-null interface was set - */ - inline sal_Bool SAL_CALL set( interface_type * pInterface, UnoReference_NoAcquire dummy) SAL_THROW(()); - - /** Queries given interface for reference interface type (interface_type) and sets it. - An interface already set will be released. - - @param pInterface an interface pointer - @param dummy UNO_QUERY to force obvious distinction to set methods - @return true, if non-null interface was set - */ - inline sal_Bool SAL_CALL set( XInterface * pInterface, UnoReference_Query dummy ) SAL_THROW( (RuntimeException) ); - /** Queries given interface for reference interface type (interface_type) and sets it. - An interface already set will be released. - - @param rRef another reference - @param dummy UNO_QUERY to force obvious distinction to set methods - @return true, if non-null interface was set - */ - inline sal_Bool SAL_CALL set( const BaseReference & rRef, UnoReference_Query dummy) SAL_THROW( (RuntimeException) ); - - /** Queries given any for reference interface type (interface_type) - and sets it. An interface already set will be released. - - @param rAny - an Any containing an interface - @param dummy - UNO_QUERY to force obvious distinction - to set methods - @return - true, if non-null interface was set - */ - inline bool set( Any const & rAny, UnoReference_Query dummy ); - -#ifndef EXCEPTIONS_OFF - /** Queries given interface for reference interface type (interface_type) and sets it. - An interface already set will be released. - Throws a RuntimeException if the demanded interface cannot be set. - - @param pInterface an interface pointer - @param dummy UNO_QUERY_THROW to force obvious distinction - to set methods - */ - inline void SAL_CALL set( XInterface * pInterface, UnoReference_QueryThrow dummy ) SAL_THROW( (RuntimeException) ); - /** Queries given interface for reference interface type (interface_type) and sets it. - An interface already set will be released. - Throws a RuntimeException if the demanded interface cannot be set. - - @param rRef another reference - @param dummy UNO_QUERY_THROW to force obvious distinction - to set methods - */ - inline void SAL_CALL set( const BaseReference & rRef, UnoReference_QueryThrow dummy ) SAL_THROW( (RuntimeException) ); - - /** Queries given any for reference interface type (interface_type) and - sets it. An interface already set will be released. - Throws a RuntimeException if the demanded interface cannot be set. - - @param rAny - an Any containing an interface - @param dummy - UNO_QUERY_THROW to force obvious distinction to set methods - */ - inline void set( Any const & rAny, UnoReference_QueryThrow dummy); - /** sets the given interface - An interface already set will be released. - Throws a RuntimeException if the source interface is @b NULL. - - @param pInterface an interface pointer - @param dummy UNO_SET_THROW to force obvious distinction to other set methods - - @since UDK 3.2.8 - */ - inline void SAL_CALL set( interface_type * pInterface, UnoReference_SetThrow dummy) SAL_THROW( (RuntimeException) ); - /** sets the given interface - An interface already set will be released. - Throws a RuntimeException if the source interface is @b NULL. - - @param rRef an interface reference - @param dummy UNO_SET_THROW to force obvious distinction to other set methods - - @since UDK 3.2.8 - */ - inline void SAL_CALL set( const Reference< interface_type > & rRef, UnoReference_SetThrow dummy) SAL_THROW( (RuntimeException) ); - -#endif - - /** Assignment operator: Acquires given interface pointer and sets reference. - An interface already set will be released. - - @param pInterface an interface pointer - @return this reference - */ - inline Reference< interface_type > & SAL_CALL operator = ( interface_type * pInterface ) SAL_THROW(()); - /** Assignment operator: Acquires given interface reference and sets reference. - An interface already set will be released. - - @param rRef an interface reference - @return this reference - */ - inline Reference< interface_type > & SAL_CALL operator = ( const Reference< interface_type > & rRef ) SAL_THROW(()); - - /** Queries given interface reference for type interface_type. - - @param rRef interface reference - @return interface reference of demanded type (may be null) - */ - inline static Reference< interface_type > SAL_CALL query( const BaseReference & rRef ) SAL_THROW( (RuntimeException) ); - /** Queries given interface for type interface_type. - - @param pInterface interface pointer - @return interface reference of demanded type (may be null) - */ - inline static Reference< interface_type > SAL_CALL query( XInterface * pInterface ) SAL_THROW( (RuntimeException) ); -}; - -/// @cond INTERNAL -/** Enables boost::mem_fn and boost::bind to recognize Reference. -*/ -template <typename T> -inline T * get_pointer( Reference<T> const& r ) -{ - return r.get(); -} -/// @endcond - -} -} -} -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/com/sun/star/uno/Reference.hxx b/cppu/inc/com/sun/star/uno/Reference.hxx deleted file mode 100644 index aa39810159d3..000000000000 --- a/cppu/inc/com/sun/star/uno/Reference.hxx +++ /dev/null @@ -1,423 +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 _COM_SUN_STAR_UNO_REFERENCE_HXX_ -#define _COM_SUN_STAR_UNO_REFERENCE_HXX_ - -#include <com/sun/star/uno/Reference.h> -#include <com/sun/star/uno/RuntimeException.hpp> -#include <com/sun/star/uno/XInterface.hpp> -#include <com/sun/star/uno/genfunc.hxx> - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -//__________________________________________________________________________________________________ -inline XInterface * BaseReference::iquery( - XInterface * pInterface, const Type & rType ) - SAL_THROW( (RuntimeException) ) -{ - if (pInterface) - { - Any aRet( pInterface->queryInterface( rType ) ); - if (typelib_TypeClass_INTERFACE == aRet.pType->eTypeClass) - { - XInterface * pRet = static_cast< XInterface * >( aRet.pReserved ); - aRet.pReserved = 0; - return pRet; - } - } - return 0; -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline XInterface * Reference< interface_type >::iquery( - XInterface * pInterface ) SAL_THROW( (RuntimeException) ) -{ - return BaseReference::iquery(pInterface, interface_type::static_type()); -} -#ifndef EXCEPTIONS_OFF -extern "C" rtl_uString * SAL_CALL cppu_unsatisfied_iquery_msg( - typelib_TypeDescriptionReference * pType ) - SAL_THROW_EXTERN_C(); -extern "C" rtl_uString * SAL_CALL cppu_unsatisfied_iset_msg( - typelib_TypeDescriptionReference * pType ) - SAL_THROW_EXTERN_C(); -//__________________________________________________________________________________________________ -inline XInterface * BaseReference::iquery_throw( - XInterface * pInterface, const Type & rType ) - SAL_THROW( (RuntimeException) ) -{ - XInterface * pQueried = iquery( pInterface, rType ); - if (pQueried) - return pQueried; - throw RuntimeException( - ::rtl::OUString( cppu_unsatisfied_iquery_msg( rType.getTypeLibType() ), SAL_NO_ACQUIRE ), - Reference< XInterface >( pInterface ) ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline XInterface * Reference< interface_type >::iquery_throw( - XInterface * pInterface ) SAL_THROW( (RuntimeException) ) -{ - return BaseReference::iquery_throw( - pInterface, interface_type::static_type()); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline interface_type * Reference< interface_type >::iset_throw( - interface_type * pInterface ) SAL_THROW( (RuntimeException) ) -{ - if (pInterface) - { - castToXInterface(pInterface)->acquire(); - return pInterface; - } - throw RuntimeException( - ::rtl::OUString( cppu_unsatisfied_iset_msg( interface_type::static_type().getTypeLibType() ), SAL_NO_ACQUIRE ), - NULL ); -} -#endif - -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::~Reference() SAL_THROW(()) -{ - if (_pInterface) - _pInterface->release(); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference() SAL_THROW(()) -{ - _pInterface = 0; -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference( const Reference< interface_type > & rRef ) SAL_THROW(()) -{ - _pInterface = rRef._pInterface; - if (_pInterface) - _pInterface->acquire(); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference( interface_type * pInterface ) SAL_THROW(()) -{ - _pInterface = castToXInterface(pInterface); - if (_pInterface) - _pInterface->acquire(); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference( interface_type * pInterface, __sal_NoAcquire ) SAL_THROW(()) -{ - _pInterface = castToXInterface(pInterface); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference( interface_type * pInterface, UnoReference_NoAcquire ) SAL_THROW(()) -{ - _pInterface = castToXInterface(pInterface); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference( const BaseReference & rRef, UnoReference_Query ) SAL_THROW( (RuntimeException) ) -{ - _pInterface = iquery( rRef.get() ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference( XInterface * pInterface, UnoReference_Query ) SAL_THROW( (RuntimeException) ) -{ - _pInterface = iquery( pInterface ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference( const Any & rAny, UnoReference_Query ) SAL_THROW( (RuntimeException) ) -{ - _pInterface = (typelib_TypeClass_INTERFACE == rAny.pType->eTypeClass - ? iquery( static_cast< XInterface * >( rAny.pReserved ) ) : 0); -} -#ifndef EXCEPTIONS_OFF -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference( const BaseReference & rRef, UnoReference_QueryThrow ) SAL_THROW( (RuntimeException) ) -{ - _pInterface = iquery_throw( rRef.get() ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference( XInterface * pInterface, UnoReference_QueryThrow ) SAL_THROW( (RuntimeException) ) -{ - _pInterface = iquery_throw( pInterface ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference( const Any & rAny, UnoReference_QueryThrow ) SAL_THROW( (RuntimeException) ) -{ - _pInterface = iquery_throw( typelib_TypeClass_INTERFACE == rAny.pType->eTypeClass - ? static_cast< XInterface * >( rAny.pReserved ) : 0 ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference( const Reference< interface_type > & rRef, UnoReference_SetThrow ) SAL_THROW( (RuntimeException) ) -{ - _pInterface = castToXInterface( iset_throw( rRef.get() ) ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type >::Reference( interface_type * pInterface, UnoReference_SetThrow ) SAL_THROW( (RuntimeException) ) -{ - _pInterface = castToXInterface( iset_throw( pInterface ) ); -} -#endif - -//__________________________________________________________________________________________________ -template< class interface_type > -inline void Reference< interface_type >::clear() SAL_THROW(()) -{ - if (_pInterface) - { - XInterface * const pOld = _pInterface; - _pInterface = 0; - pOld->release(); - } -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline sal_Bool Reference< interface_type >::set( - interface_type * pInterface ) SAL_THROW(()) -{ - if (pInterface) - castToXInterface(pInterface)->acquire(); - XInterface * const pOld = _pInterface; - _pInterface = castToXInterface(pInterface); - if (pOld) - pOld->release(); - return (0 != pInterface); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline sal_Bool Reference< interface_type >::set( - interface_type * pInterface, __sal_NoAcquire ) SAL_THROW(()) -{ - XInterface * const pOld = _pInterface; - _pInterface = castToXInterface(pInterface); - if (pOld) - pOld->release(); - return (0 != pInterface); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline sal_Bool Reference< interface_type >::set( - interface_type * pInterface, UnoReference_NoAcquire ) SAL_THROW(()) -{ - return set( pInterface, SAL_NO_ACQUIRE ); -} - -//__________________________________________________________________________________________________ -template< class interface_type > -inline sal_Bool Reference< interface_type >::set( - const Reference< interface_type > & rRef ) SAL_THROW(()) -{ - return set( castFromXInterface( rRef._pInterface ) ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline sal_Bool Reference< interface_type >::set( - XInterface * pInterface, UnoReference_Query ) SAL_THROW( (RuntimeException) ) -{ - return set( castFromXInterface(iquery( pInterface )), SAL_NO_ACQUIRE ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline sal_Bool Reference< interface_type >::set( - const BaseReference & rRef, UnoReference_Query ) SAL_THROW( (RuntimeException) ) -{ - return set( castFromXInterface(iquery( rRef.get() )), SAL_NO_ACQUIRE ); -} - -//______________________________________________________________________________ -template< class interface_type > -inline bool Reference< interface_type >::set( - Any const & rAny, UnoReference_Query ) -{ - return set( - castFromXInterface( - iquery( - rAny.pType->eTypeClass == typelib_TypeClass_INTERFACE - ? static_cast< XInterface * >( rAny.pReserved ) : 0 )), - SAL_NO_ACQUIRE ); -} - -#ifndef EXCEPTIONS_OFF -//__________________________________________________________________________________________________ -template< class interface_type > -inline void Reference< interface_type >::set( - XInterface * pInterface, UnoReference_QueryThrow ) SAL_THROW( (RuntimeException) ) -{ - set( castFromXInterface(iquery_throw( pInterface )), SAL_NO_ACQUIRE ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline void Reference< interface_type >::set( - const BaseReference & rRef, UnoReference_QueryThrow ) SAL_THROW( (RuntimeException) ) -{ - set( castFromXInterface(iquery_throw( rRef.get() )), SAL_NO_ACQUIRE ); -} - -//______________________________________________________________________________ -template< class interface_type > -inline void Reference< interface_type >::set( - Any const & rAny, UnoReference_QueryThrow ) -{ - set( castFromXInterface( - iquery_throw( - rAny.pType->eTypeClass == typelib_TypeClass_INTERFACE - ? static_cast< XInterface * >( rAny.pReserved ) : 0 )), - SAL_NO_ACQUIRE ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline void Reference< interface_type >::set( - interface_type * pInterface, UnoReference_SetThrow ) SAL_THROW( (RuntimeException) ) -{ - set( iset_throw( pInterface ), SAL_NO_ACQUIRE ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline void Reference< interface_type >::set( - const Reference< interface_type > & rRef, UnoReference_SetThrow ) SAL_THROW( (RuntimeException) ) -{ - set( rRef.get(), UNO_SET_THROW ); -} - -#endif - -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type > & Reference< interface_type >::operator = ( - interface_type * pInterface ) SAL_THROW(()) -{ - set( pInterface ); - return *this; -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type > & Reference< interface_type >::operator = ( - const Reference< interface_type > & rRef ) SAL_THROW(()) -{ - set( castFromXInterface( rRef._pInterface ) ); - return *this; -} - -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type > Reference< interface_type >::query( - const BaseReference & rRef ) SAL_THROW( (RuntimeException) ) -{ - return Reference< interface_type >( - castFromXInterface(iquery( rRef.get() )), SAL_NO_ACQUIRE ); -} -//__________________________________________________________________________________________________ -template< class interface_type > -inline Reference< interface_type > Reference< interface_type >::query( - XInterface * pInterface ) SAL_THROW( (RuntimeException) ) -{ - return Reference< interface_type >( - castFromXInterface(iquery( pInterface )), SAL_NO_ACQUIRE ); -} - -//################################################################################################## - -//__________________________________________________________________________________________________ -inline sal_Bool BaseReference::operator == ( XInterface * pInterface ) const SAL_THROW(()) -{ - if (_pInterface == pInterface) - return sal_True; -#ifndef EXCEPTIONS_OFF - try - { -#endif - // only the query to XInterface must return the same pointer if they belong to same objects - Reference< XInterface > x1( _pInterface, UNO_QUERY ); - Reference< XInterface > x2( pInterface, UNO_QUERY ); - return (x1._pInterface == x2._pInterface); -#ifndef EXCEPTIONS_OFF - } - catch (RuntimeException &) - { - return sal_False; - } -#endif -} - -//______________________________________________________________________________ -inline sal_Bool BaseReference::operator < ( - const BaseReference & rRef ) const SAL_THROW(()) -{ - if (_pInterface == rRef._pInterface) - return sal_False; -#if ! defined EXCEPTIONS_OFF - try - { -#endif - // only the query to XInterface must return the same pointer: - Reference< XInterface > x1( _pInterface, UNO_QUERY ); - Reference< XInterface > x2( rRef, UNO_QUERY ); - return (x1._pInterface < x2._pInterface); -#if ! defined EXCEPTIONS_OFF - } - catch (RuntimeException &) - { - return sal_False; - } -#endif -} - -//__________________________________________________________________________________________________ -inline sal_Bool BaseReference::operator != ( XInterface * pInterface ) const SAL_THROW(()) -{ - return (! operator == ( pInterface )); -} -//__________________________________________________________________________________________________ -inline sal_Bool BaseReference::operator == ( const BaseReference & rRef ) const SAL_THROW(()) -{ - return operator == ( rRef._pInterface ); -} -//__________________________________________________________________________________________________ -inline sal_Bool BaseReference::operator != ( const BaseReference & rRef ) const SAL_THROW(()) -{ - return (! operator == ( rRef._pInterface )); -} - -} -} -} -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/com/sun/star/uno/Sequence.h b/cppu/inc/com/sun/star/uno/Sequence.h deleted file mode 100644 index ed754cf3ccf2..000000000000 --- a/cppu/inc/com/sun/star/uno/Sequence.h +++ /dev/null @@ -1,282 +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 _COM_SUN_STAR_UNO_SEQUENCE_H_ -#define _COM_SUN_STAR_UNO_SEQUENCE_H_ - -#include "typelib/typedescription.h" -#include "uno/sequence2.h" -#include "com/sun/star/uno/Type.h" -#include "rtl/alloc.h" - -#if ! defined EXCEPTIONS_OFF -#include <new> -#endif - - -namespace rtl -{ -class ByteSequence; -} - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -/** Template C++ class representing an IDL sequence. Template argument is the - sequence element type. C++ Sequences are reference counted and shared, - so the sequence keeps a handle to its data. To keep value semantics, - copies are only generated if the sequence is to be modified (new handle). - - @tparam E element type of sequence -*/ -template< class E > -class Sequence -{ - /** sequence handle - */ - uno_Sequence * _pSequence; - -public: - /// @cond INTERNAL - - // these are here to force memory de/allocation to sal lib. - inline static void * SAL_CALL operator new ( ::size_t nSize ) - SAL_THROW(()) - { return ::rtl_allocateMemory( nSize ); } - inline static void SAL_CALL operator delete ( void * pMem ) - SAL_THROW(()) - { ::rtl_freeMemory( pMem ); } - inline static void * SAL_CALL operator new ( ::size_t, void * pMem ) - SAL_THROW(()) - { return pMem; } - inline static void SAL_CALL operator delete ( void *, void * ) - SAL_THROW(()) - {} - - /** Static pointer to typelib type of sequence. - Don't use directly, call getCppuType(). - */ - static typelib_TypeDescriptionReference * s_pType; - - /// @endcond - - /** typedefs the element type of the sequence - */ - typedef E ElementType; - - /** Default constructor: Creates an empty sequence. - */ - inline Sequence() SAL_THROW(()); - - /** Copy constructor: Creates a copy of given sequence. - - @param rSeq another sequence of same type - */ - inline Sequence( const Sequence< E > & rSeq ) SAL_THROW(()); - - /** Constructor: Takes over ownership of given sequence. - - @param pSequence a sequence - @param dummy SAL_NO_ACQUIRE to force obvious distinction to other - constructors - */ - inline Sequence( uno_Sequence * pSequence, __sal_NoAcquire dummy ) - SAL_THROW(()); - - /** Constructor: Creates a copy of given elements. - - @param pElements an array of elements - @param len length of array - */ - inline Sequence( const E * pElements, sal_Int32 len ); - - /** Constructor: Creates a default constructed sequence of given length. - - @param len initial sequence length - */ - inline explicit Sequence( sal_Int32 len ); - - /** Destructor: Releases sequence handle. Last handle will destruct - elements and free memory. - */ - inline ~Sequence() SAL_THROW(()); - - /** Assignment operator: Acquires given sequence handle and releases - previously set handle. - - @param rSeq another sequence of same type - @return this sequence - */ - inline Sequence< E > & SAL_CALL operator = ( const Sequence< E > & rSeq ) - SAL_THROW(()); - - /** Gets length of the sequence. - - @return length of sequence - */ - inline sal_Int32 SAL_CALL getLength() const SAL_THROW(()) - { return _pSequence->nElements; } - - /** Tests whether the sequence has elements, i.e. elements count is - greater than zero. - - @return true, if elements count is greater than zero - */ - inline sal_Bool SAL_CALL hasElements() const SAL_THROW(()) - { return (_pSequence->nElements > 0); } - - /** Gets a pointer to elements array for reading. - If the sequence has a length of 0, then the returned pointer is - undefined. - - @return pointer to elements array - */ - inline const E * SAL_CALL getConstArray() const SAL_THROW(()) - { return reinterpret_cast< const E * >( _pSequence->elements ); } - - /** Gets a pointer to elements array for reading and writing. - In general if the sequence has a handle acquired by other sequences - (reference count > 1), then a new sequence is created copy constructing - all elements to keep value semantics! - If the sequence has a length of 0, then the returned pointer is - undefined. - - @return pointer to elements array - */ - inline E * SAL_CALL getArray(); - - /** Non-const index operator: Obtains a reference to element indexed at - given position. - The implementation does not check for array bounds! - In general if the sequence has a handle acquired by other sequences - (reference count > 1), then a new sequence is created copy constructing - all elements to keep value semantics! - - @param nIndex index - @return non-const C++ reference to element - */ - inline E & SAL_CALL operator [] ( sal_Int32 nIndex ); - - /** Const index operator: Obtains a reference to element indexed at - given position. The implementation does not check for array bounds! - - @param nIndex index - @return const C++ reference to element - */ - inline const E & SAL_CALL operator [] ( sal_Int32 nIndex ) const - SAL_THROW(()); - - /** Equality operator: Compares two sequences. - - @param rSeq another sequence of same type (right side) - @return true if both sequences are equal, false otherwise - */ - inline sal_Bool SAL_CALL operator == ( const Sequence< E > & rSeq ) const - SAL_THROW(()); - - /** Unequality operator: Compares two sequences. - - @param rSeq another sequence of same type (right side) - @return false if both sequences are equal, true otherwise - */ - inline sal_Bool SAL_CALL operator != ( const Sequence< E > & rSeq ) const - SAL_THROW(()); - - /** Reallocates sequence to new length. - If the new length is smaller than the former, then upper elements will - be destructed (and their memory freed). If the new length is greater - than the former, then upper (new) elements are default constructed. - If the sequence has a handle acquired by other sequences - (reference count > 1), then the remaining elements are copy constructed - to a new sequence handle to keep value semantics! - - @param nSize new size of sequence - */ - inline void SAL_CALL realloc( sal_Int32 nSize ); - - /** Provides UNacquired sequence handle. - - @return UNacquired sequence handle - */ - inline uno_Sequence * SAL_CALL get() const SAL_THROW(()) - { return _pSequence; } -}; - -/** Creates a UNO byte sequence from a SAL byte sequence. - - @param rByteSequence a byte sequence - @return a UNO byte sequence -*/ -inline ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL toUnoSequence( - const ::rtl::ByteSequence & rByteSequence ) SAL_THROW(()); - -} -} -} -} - -/** Gets the meta type of IDL sequence. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @tparam E element type of sequence - @return type of IDL sequence -*/ -template< class E > -inline const ::com::sun::star::uno::Type & -SAL_CALL getCppuType( const ::com::sun::star::uno::Sequence< E > * ) - SAL_THROW(()); - -/** Gets the meta type of IDL sequence. - This function has been introduced, because one cannot get the (templated) - cppu type out of C++ array types. Array types have special - getCppuArrayTypeN() functions. - - @attention - the given element type must be the same as the template argument type! - @tparam E element type of sequence - @param rElementType element type of sequence - @return type of IDL sequence -*/ -template< class E > -inline const ::com::sun::star::uno::Type & -SAL_CALL getCppuSequenceType( const ::com::sun::star::uno::Type & rElementType ) - SAL_THROW(()); - -/** Gets the meta type of IDL sequence< char >. - This function has been introduced due to ambiguities with unsigned short. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL sequence< char > -*/ -inline const ::com::sun::star::uno::Type & -SAL_CALL getCharSequenceCppuType() SAL_THROW(()); - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/com/sun/star/uno/Sequence.hxx b/cppu/inc/com/sun/star/uno/Sequence.hxx deleted file mode 100644 index a23fd3b48225..000000000000 --- a/cppu/inc/com/sun/star/uno/Sequence.hxx +++ /dev/null @@ -1,306 +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 _COM_SUN_STAR_UNO_SEQUENCE_HXX_ -#define _COM_SUN_STAR_UNO_SEQUENCE_HXX_ - -#include "sal/config.h" - -#include <cassert> - -#include "osl/interlck.h" -#include "com/sun/star/uno/Sequence.h" -#include "typelib/typedescription.h" -#include "uno/data.h" -#include "com/sun/star/uno/genfunc.hxx" -#include "cppu/unotype.hxx" - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -/// @cond INTERNAL -template< class E > -typelib_TypeDescriptionReference * Sequence< E >::s_pType = 0; -/// @endcond - -//______________________________________________________________________________ -template< class E > -inline Sequence< E >::Sequence() SAL_THROW(()) -{ - const Type & rType = ::cppu::getTypeFavourUnsigned( this ); - ::uno_type_sequence_construct( - &_pSequence, rType.getTypeLibType(), - 0, 0, (uno_AcquireFunc)cpp_acquire ); - // no bad_alloc, because empty sequence is statically allocated in cppu -} - -//______________________________________________________________________________ -template< class E > -inline Sequence< E >::Sequence( const Sequence< E > & rSeq ) SAL_THROW(()) -{ - osl_atomic_increment( &rSeq._pSequence->nRefCount ); - _pSequence = rSeq._pSequence; -} - -//______________________________________________________________________________ -template< class E > -inline Sequence< E >::Sequence( - uno_Sequence * pSequence, __sal_NoAcquire ) SAL_THROW(()) - : _pSequence( pSequence ) -{ -} - -//______________________________________________________________________________ -template< class E > -inline Sequence< E >::Sequence( const E * pElements, sal_Int32 len ) -{ - const Type & rType = ::cppu::getTypeFavourUnsigned( this ); -#if ! defined EXCEPTIONS_OFF - sal_Bool success = -#endif - ::uno_type_sequence_construct( - &_pSequence, rType.getTypeLibType(), - const_cast< E * >( pElements ), len, (uno_AcquireFunc)cpp_acquire ); -#if ! defined EXCEPTIONS_OFF - if (! success) - throw ::std::bad_alloc(); -#endif -} - -//______________________________________________________________________________ -template< class E > -inline Sequence< E >::Sequence( sal_Int32 len ) -{ - const Type & rType = ::cppu::getTypeFavourUnsigned( this ); -#if ! defined EXCEPTIONS_OFF - sal_Bool success = -#endif - ::uno_type_sequence_construct( - &_pSequence, rType.getTypeLibType(), - 0, len, (uno_AcquireFunc)cpp_acquire ); -#if ! defined EXCEPTIONS_OFF - if (! success) - throw ::std::bad_alloc(); -#endif -} - -//______________________________________________________________________________ -template< class E > -inline Sequence< E >::~Sequence() SAL_THROW(()) -{ - const Type & rType = ::cppu::getTypeFavourUnsigned( this ); - ::uno_type_destructData( - this, rType.getTypeLibType(), (uno_ReleaseFunc)cpp_release ); -} - -//______________________________________________________________________________ -template< class E > -inline Sequence< E > & Sequence< E >::operator = ( const Sequence< E > & rSeq ) SAL_THROW(()) -{ - const Type & rType = ::cppu::getTypeFavourUnsigned( this ); - ::uno_type_sequence_assign( - &_pSequence, rSeq._pSequence, rType.getTypeLibType(), (uno_ReleaseFunc)cpp_release ); - return *this; -} - -//______________________________________________________________________________ -template< class E > -inline sal_Bool Sequence< E >::operator == ( const Sequence< E > & rSeq ) const - SAL_THROW(()) -{ - if (_pSequence == rSeq._pSequence) - return sal_True; - const Type & rType = ::cppu::getTypeFavourUnsigned( this ); - return ::uno_type_equalData( - const_cast< Sequence< E > * >( this ), rType.getTypeLibType(), - const_cast< Sequence< E > * >( &rSeq ), rType.getTypeLibType(), - (uno_QueryInterfaceFunc)cpp_queryInterface, - (uno_ReleaseFunc)cpp_release ); -} - -//______________________________________________________________________________ -template< class E > -inline sal_Bool Sequence< E >::operator != ( const Sequence< E > & rSeq ) const - SAL_THROW(()) -{ - return (! operator == ( rSeq )); -} - -//______________________________________________________________________________ -template< class E > -inline E * Sequence< E >::getArray() -{ - const Type & rType = ::cppu::getTypeFavourUnsigned( this ); -#if ! defined EXCEPTIONS_OFF - sal_Bool success = -#endif - ::uno_type_sequence_reference2One( - &_pSequence, rType.getTypeLibType(), - (uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release ); -#if ! defined EXCEPTIONS_OFF - if (! success) - throw ::std::bad_alloc(); -#endif - return reinterpret_cast< E * >( _pSequence->elements ); -} - -//______________________________________________________________________________ -template< class E > -inline E & Sequence< E >::operator [] ( sal_Int32 nIndex ) -{ - assert( nIndex >= 0 && nIndex < getLength() ); - return getArray()[ nIndex ]; -} - -//______________________________________________________________________________ -template< class E > -inline const E & Sequence< E >::operator [] ( sal_Int32 nIndex ) const - SAL_THROW(()) -{ - assert( nIndex >= 0 && nIndex < getLength() ); - return reinterpret_cast< const E * >( _pSequence->elements )[ nIndex ]; -} - -//______________________________________________________________________________ -template< class E > -inline void Sequence< E >::realloc( sal_Int32 nSize ) -{ - const Type & rType = ::cppu::getTypeFavourUnsigned( this ); -#if !defined EXCEPTIONS_OFF - sal_Bool success = -#endif - ::uno_type_sequence_realloc( - &_pSequence, rType.getTypeLibType(), nSize, - (uno_AcquireFunc)cpp_acquire, (uno_ReleaseFunc)cpp_release ); -#if !defined EXCEPTIONS_OFF - if (!success) - throw ::std::bad_alloc(); -#endif -} - -//------------------------------------------------------------------------------ -inline ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL toUnoSequence( - const ::rtl::ByteSequence & rByteSequence ) SAL_THROW(()) -{ - return ::com::sun::star::uno::Sequence< sal_Int8 >( - * reinterpret_cast< const ::com::sun::star::uno::Sequence< sal_Int8 > * >( &rByteSequence ) ); -} - -} -} -} -} - -namespace cppu { - -template< typename T > inline ::com::sun::star::uno::Type const & -getTypeFavourUnsigned( - SAL_UNUSED_PARAMETER ::com::sun::star::uno::Sequence< T > const *) -{ - if (::com::sun::star::uno::Sequence< T >::s_pType == 0) { - ::typelib_static_sequence_type_init( - &::com::sun::star::uno::Sequence< T >::s_pType, - (::cppu::getTypeFavourUnsigned( - static_cast< - typename ::com::sun::star::uno::Sequence< T >::ElementType * >( - 0)). - getTypeLibType())); - } - return detail::getTypeFromTypeDescriptionReference( - &::com::sun::star::uno::Sequence< T >::s_pType); -} - -template< typename T > inline ::com::sun::star::uno::Type const & -getTypeFavourChar( - SAL_UNUSED_PARAMETER ::com::sun::star::uno::Sequence< T > const *) -{ - //TODO On certain platforms with weak memory models, the following code can - // result in some threads observing that td points to garbage: - static typelib_TypeDescriptionReference * td = 0; - if (td == 0) { - ::typelib_static_sequence_type_init( - &td, - (::cppu::getTypeFavourChar( - static_cast< - typename ::com::sun::star::uno::Sequence< T >::ElementType * >( - 0)). - getTypeLibType())); - } - return detail::getTypeFromTypeDescriptionReference(&td); -} - -} - -// generic sequence template -template< class E > -inline const ::com::sun::star::uno::Type & -SAL_CALL getCppuType( - SAL_UNUSED_PARAMETER const ::com::sun::star::uno::Sequence< E > * ) - SAL_THROW(()) -{ - return ::cppu::getTypeFavourUnsigned( - static_cast< ::com::sun::star::uno::Sequence< E > * >(0)); -} - -// generic sequence template for given element type (e.g. C++ arrays) -template< class E > -inline const ::com::sun::star::uno::Type & -SAL_CALL getCppuSequenceType( const ::com::sun::star::uno::Type & rElementType ) - SAL_THROW(()) -{ - if (! ::com::sun::star::uno::Sequence< E >::s_pType) - { - ::typelib_static_sequence_type_init( - & ::com::sun::star::uno::Sequence< E >::s_pType, - rElementType.getTypeLibType() ); - } - return * reinterpret_cast< const ::com::sun::star::uno::Type * >( - & ::com::sun::star::uno::Sequence< E >::s_pType ); -} - -#if (defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x500)) -static typelib_TypeDescriptionReference * s_pType_com_sun_star_uno_Sequence_Char = 0; -#endif - -// char sequence -inline const ::com::sun::star::uno::Type & -SAL_CALL getCharSequenceCppuType() SAL_THROW(()) -{ -#if !( defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x500)) - static typelib_TypeDescriptionReference * s_pType_com_sun_star_uno_Sequence_Char = 0; -#endif - if (! s_pType_com_sun_star_uno_Sequence_Char) - { - const ::com::sun::star::uno::Type & rElementType = ::getCharCppuType(); - ::typelib_static_sequence_type_init( - & s_pType_com_sun_star_uno_Sequence_Char, - rElementType.getTypeLibType() ); - } - return * reinterpret_cast< const ::com::sun::star::uno::Type * >( - & s_pType_com_sun_star_uno_Sequence_Char ); -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/com/sun/star/uno/Type.h b/cppu/inc/com/sun/star/uno/Type.h deleted file mode 100644 index 1d71910b28ec..000000000000 --- a/cppu/inc/com/sun/star/uno/Type.h +++ /dev/null @@ -1,460 +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 _COM_SUN_STAR_UNO_TYPE_H_ -#define _COM_SUN_STAR_UNO_TYPE_H_ - -#include <typelib/typedescription.h> -#include <com/sun/star/uno/TypeClass.hdl> -#include <cppu/macros.hxx> -#include <rtl/ustring.hxx> -#include <rtl/alloc.h> - - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -/** Enum defining UNO_TYPE_NO_ACQUIRE for type description reference transfer. -*/ -enum UnoType_NoAcquire -{ - /** This enum value can be used for creating a Type object granting a given type description - reference, i.e. transferring ownership to it. - */ - UNO_TYPE_NO_ACQUIRE -}; - -/** C++ class representing an IDL meta type. This class is used to represent a a type, - i.e. a type name and its type class. - Internally the type holds a C type description reference of the runtime. - You can obtain a full type description of a type by calling member function getDescription(). - - @see typelib_TypeDescriptionReference -*/ -class Type -{ - /** the C typelib reference pointer - */ - typelib_TypeDescriptionReference * _pType; - -public: - /// @cond INTERNAL - // these are here to force memory de/allocation to sal lib. - inline static void * SAL_CALL operator new ( size_t nSize ) SAL_THROW(()) - { return ::rtl_allocateMemory( nSize ); } - inline static void SAL_CALL operator delete ( void * pMem ) SAL_THROW(()) - { ::rtl_freeMemory( pMem ); } - inline static void * SAL_CALL operator new ( size_t, void * pMem ) SAL_THROW(()) - { return pMem; } - inline static void SAL_CALL operator delete ( void *, void * ) SAL_THROW(()) - {} - /// @endcond - - /** Default Constructor: Type is set to void. - */ - inline Type() SAL_THROW(()); - - /** Constructor: Type is constructed by given name and type class. - - @param eTypeClass type class of type - @param rTypeName name of type - */ - inline Type( TypeClass eTypeClass, const ::rtl::OUString & rTypeName ) SAL_THROW(()); - - /** Constructor: Type is constructed by given name and type class. - - @param eTypeClass type class of type - @param pTypeName name of type - */ - inline Type( TypeClass eTypeClass, const sal_Char * pTypeName ) SAL_THROW(()); - - /** Constructor: Type is (copy) constructed by given C type description reference. - - @param pType C type description reference - */ - inline Type( typelib_TypeDescriptionReference * pType ) SAL_THROW(()); - - /** Constructor: Type is (copy) constructed by given C type description reference - without acquiring it. - - @param pType C type description reference - @param dummy UNO_TYPE_NO_ACQUIRE to force obvious distinction to other constructors - */ - inline Type( typelib_TypeDescriptionReference * pType, UnoType_NoAcquire dummy ) SAL_THROW(()); - /** Constructor: Type is (copy) constructed by given C type description reference - without acquiring it. - - @param pType C type description reference - @param dummy SAL_NO_ACQUIRE to force obvious distinction to other constructors - */ - inline Type( typelib_TypeDescriptionReference * pType, __sal_NoAcquire dummy ) SAL_THROW(()); - - /** Copy constructor: Type is copy constructed by given type. - - @param rType another type - */ - inline Type( const Type & rType ) SAL_THROW(()); - - /** Destructor: Releases acquired C type description reference. - */ - inline ~Type() SAL_THROW(()) - { ::typelib_typedescriptionreference_release( _pType ); } - - /** Assignment operator: Acquires right side type and releases previously set type. - - @param rType another type (right side) - @return this type - */ - inline Type & SAL_CALL operator = ( const Type & rType ) SAL_THROW(()); - - /** Gets the type class of set type. - - @return type class of set type - */ - inline TypeClass SAL_CALL getTypeClass() const SAL_THROW(()) - { return (TypeClass)_pType->eTypeClass; } - - /** Gets the name of the set type. - - @return name of the set type - */ - inline ::rtl::OUString SAL_CALL getTypeName() const SAL_THROW(()); - - /** Obtains a full type description of set type. - - @param ppDescr [inout] type description - */ - inline void SAL_CALL getDescription( typelib_TypeDescription ** ppDescr ) const SAL_THROW(()) - { ::typelib_typedescriptionreference_getDescription( ppDescr, _pType ); } - - /** Gets the C typelib type description reference pointer. Does not acquire the reference! - - @return UNacquired type description reference - */ - inline typelib_TypeDescriptionReference * SAL_CALL getTypeLibType() const SAL_THROW(()) - { return _pType; } - - /** Tests if values of this reflected type can be assigned by values of given type. - This includes widening conversion (e.g., long assignable from short), as long as there - is no data loss. - - @param rType another type - @return true if values of this type can be assigned from values of given type, - false otherwise - */ - inline sal_Bool SAL_CALL isAssignableFrom( const Type & rType ) const SAL_THROW(()) - { return ::typelib_typedescriptionreference_isAssignableFrom( _pType, rType._pType ); } - - /** Compares two types. - - @param rType another type - @return true if both types refer the same type, false otherwise - */ - inline sal_Bool SAL_CALL equals( const Type & rType ) const SAL_THROW(()) - { return ::typelib_typedescriptionreference_equals( _pType, rType._pType ); } - /** Equality operator: Compares two types. - - @param rType another type - @return true if both types refer the same type, false otherwise - */ - inline sal_Bool SAL_CALL operator == ( const Type & rType ) const SAL_THROW(()) - { return ::typelib_typedescriptionreference_equals( _pType, rType._pType ); } - /** Unequality operator: Compares two types. - - @param rType another type - @return false if both types refer the same type, true otherwise - */ - inline sal_Bool SAL_CALL operator != ( const Type & rType ) const SAL_THROW(()) - { return (! ::typelib_typedescriptionreference_equals( _pType, rType._pType )); } -}; - -/** Helper class to specify a type pointer for idl arrays. -*/ -template< class T > -class Array -{ -public: - static typelib_TypeDescriptionReference * s_pType; -}; - -} -} -} -} - -/** Gets the meta type of IDL type "type". - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type "type" -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const ::com::sun::star::uno::Type * ) SAL_THROW(()); - -/** Gets the meta type of IDL type void. - @return type of IDL type void -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuVoidType() SAL_THROW(()); -/** Gets the meta type of IDL type void. - - @return type of IDL type void -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getVoidCppuType() SAL_THROW(()); - -/** Gets the meta type of IDL type boolean. - - @return type of IDL type boolean -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuBooleanType() SAL_THROW(()); -/** Gets the meta type of IDL type boolean. - - @return type of IDL type boolean -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getBooleanCppuType() SAL_THROW(()); -/** Gets the meta type of IDL type boolean. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type boolean -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_Bool * ) SAL_THROW(()); -/** Gets the meta type of IDL type boolean. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type boolean -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( - bool const * ) SAL_THROW(()); - -/** Gets the meta type of IDL type char. - - @return type of IDL type char -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCharCppuType() SAL_THROW(()); -/** Gets the meta type of IDL type char. - - @return type of IDL type char -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuCharType() SAL_THROW(()); - -/** Gets the meta type of IDL type byte. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type byte -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_Int8 * ) SAL_THROW(()); - -/** Gets the meta type of IDL type string. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type string -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const ::rtl::OUString * ) SAL_THROW(()); - -/** Gets the meta type of IDL type short. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type short -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_Int16 * ) SAL_THROW(()); - -/** Gets the meta type of IDL type unsigned short. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type unsigned short -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_uInt16 * ) SAL_THROW(()); - -/** Gets the meta type of IDL type long. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type long -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_Int32 * ) SAL_THROW(()); - -/** Gets the meta type of IDL type unsigned long. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type unsigned long -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_uInt32 * ) SAL_THROW(()); - -/** Gets the meta type of IDL type hyper. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type hyper -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_Int64 * ) SAL_THROW(()); - -/** Gets the meta type of IDL type unsigned hyper. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type unsigned hyper -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const sal_uInt64 * ) SAL_THROW(()); - -/** Gets the meta type of IDL type float. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type float -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const float * ) SAL_THROW(()); - -/** Gets the meta type of IDL type double. - - There are cases (involving templates) where uses of getCppuType are known to - not compile. Use cppu::UnoType or cppu::getTypeFavourUnsigned instead. - - The dummy parameter is just a typed pointer for function signature. - - @return type of IDL type double -*/ -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( const double * ) SAL_THROW(()); - -/** Array template function to get meta type for one-dimensional arrays. - - @param pT array pointer - @return type of array -*/ -template< class T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuArrayType1( T * pT ) SAL_THROW(()); -/** Array template function to get meta type for two-dimensional arrays. - - @param pT array pointer - @return type of array -*/ -template< class T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuArrayType2( T * pT ) SAL_THROW(()); -/** Array template function to get meta type for three-dimensional arrays. - - @param pT array pointer - @return type of array -*/ -template< class T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuArrayType3( T * pT ) SAL_THROW(()); -/** Array template function to get meta type for four-dimensional arrays. - - @param pT array pointer - @return type of array -*/ -template< class T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuArrayType4( T * pT ) SAL_THROW(()); -/** Array template function to get meta type for five-dimensional arrays. - - @param pT array pointer - @return type of array -*/ -template< class T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuArrayType5( T * pT ) SAL_THROW(()); -/** Array template function to get meta type for six-dimensional arrays. - - @param pT array pointer - @return type of array -*/ -template< class T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuArrayType6( T * pT ) SAL_THROW(()); - -/** Gets the meta type of an IDL type. - - The difference between this function template (with a type parameter) and - the overloaded getCppuType function with a single (dummy) parameter of a - specific type is that this function template may not work for the UNO type - "unsigned short" (sal_uInt16 in C++), while the overloaded one-parameter - function may not work for the UNO type "char" (sal_Unicode in C++, which may - have the same underlying C++ type as sal_uInt16 on certain platforms). - - @return type of the given IDL type - - @deprecated - Use cppu::UnoType instead (or the internal-only cppu::getTypeFavourChar). - Also note that getCppuType< com::sun::star::uno::Sequence< sal_Unicode > >() - does not work as expected. - - @since UDK 3.2.0 -*/ -template< typename T > inline const ::com::sun::star::uno::Type & SAL_CALL -getCppuType() SAL_THROW(()); - -/** Gets the meta type of IDL type char. - - @return type of IDL type char - - @deprecated - Use cppu::UnoType instead (or the internal-only cppu::getTypeFavourChar). - Also note that getCppuType< com::sun::star::uno::Sequence< sal_Unicode > >() - does not work as expected. - - @since UDK 3.2.0 -*/ -template<> inline const ::com::sun::star::uno::Type & SAL_CALL -getCppuType< sal_Unicode >() SAL_THROW(()); - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/com/sun/star/uno/Type.hxx b/cppu/inc/com/sun/star/uno/Type.hxx deleted file mode 100644 index 40528af116ad..000000000000 --- a/cppu/inc/com/sun/star/uno/Type.hxx +++ /dev/null @@ -1,321 +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 _COM_SUN_STAR_UNO_TYPE_HXX_ -#define _COM_SUN_STAR_UNO_TYPE_HXX_ - -#include <osl/mutex.hxx> -#include <com/sun/star/uno/Type.h> -#include "cppu/unotype.hxx" - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -//__________________________________________________________________________________________________ -inline Type::Type() SAL_THROW(()) -{ - _pType = reinterpret_cast< const ::com::sun::star::uno::Type * >( - ::typelib_static_type_getByTypeClass( typelib_TypeClass_VOID ) )->getTypeLibType(); - ::typelib_typedescriptionreference_acquire( _pType ); -} -//__________________________________________________________________________________________________ -inline Type::Type( TypeClass eTypeClass, const ::rtl::OUString & rTypeName ) SAL_THROW(()) - : _pType( 0 ) -{ - ::typelib_typedescriptionreference_new( &_pType, (typelib_TypeClass)eTypeClass, rTypeName.pData ); -} -//__________________________________________________________________________________________________ -inline Type::Type( TypeClass eTypeClass, const sal_Char * pTypeName ) SAL_THROW(()) - : _pType( 0 ) -{ - ::typelib_typedescriptionreference_newByAsciiName( &_pType, (typelib_TypeClass)eTypeClass, pTypeName ); -} -//__________________________________________________________________________________________________ -inline Type::Type( typelib_TypeDescriptionReference * pType ) SAL_THROW(()) - : _pType( pType ) -{ - ::typelib_typedescriptionreference_acquire( _pType ); -} -//__________________________________________________________________________________________________ -inline Type::Type( typelib_TypeDescriptionReference * pType, UnoType_NoAcquire ) SAL_THROW(()) - : _pType( pType ) -{ -} -//__________________________________________________________________________________________________ -inline Type::Type( typelib_TypeDescriptionReference * pType, __sal_NoAcquire ) SAL_THROW(()) - : _pType( pType ) -{ -} -//__________________________________________________________________________________________________ -inline Type::Type( const Type & rType ) SAL_THROW(()) - : _pType( rType._pType ) -{ - ::typelib_typedescriptionreference_acquire( _pType ); -} -//__________________________________________________________________________________________________ -inline ::rtl::OUString Type::getTypeName() const SAL_THROW(()) -{ - return ::rtl::OUString( _pType->pTypeName ); -} -//__________________________________________________________________________________________________ -inline Type & Type::operator = ( const Type & rType ) SAL_THROW(()) -{ - ::typelib_typedescriptionreference_assign( &_pType, rType._pType ); - return *this; -} - -//__________________________________________________________________________________________________ -template< class T > -typelib_TypeDescriptionReference * Array< T >::s_pType = 0; - -} -} -} -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const ::com::sun::star::uno::Type * ) SAL_THROW(()) -{ - return ::cppu::UnoType< ::com::sun::star::uno::Type >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuVoidType() SAL_THROW(()) -{ - return ::cppu::UnoType< ::cppu::UnoVoidType >::get(); -} -inline const ::com::sun::star::uno::Type & SAL_CALL getVoidCppuType() SAL_THROW(()) -{ - return ::cppu::UnoType< ::cppu::UnoVoidType >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuBooleanType() SAL_THROW(()) -{ - return ::cppu::UnoType< bool >::get(); -} -inline const ::com::sun::star::uno::Type & SAL_CALL getBooleanCppuType() SAL_THROW(()) -{ - return ::cppu::UnoType< bool >::get(); -} -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const sal_Bool * ) SAL_THROW(()) -{ - return ::cppu::UnoType< bool >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( - SAL_UNUSED_PARAMETER bool const * ) SAL_THROW(()) -{ - return ::cppu::UnoType< bool >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCharCppuType() SAL_THROW(()) -{ - return ::cppu::UnoType< ::cppu::UnoCharType >::get(); -} -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuCharType() SAL_THROW(()) -{ - return ::cppu::UnoType< ::cppu::UnoCharType >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const sal_Int8 * ) SAL_THROW(()) -{ - return ::cppu::UnoType< ::sal_Int8 >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const ::rtl::OUString * ) SAL_THROW(()) -{ - return ::cppu::UnoType< ::rtl::OUString >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const sal_Int16 * ) SAL_THROW(()) -{ - return ::cppu::UnoType< ::sal_Int16 >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const sal_uInt16 * ) SAL_THROW(()) -{ - return ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const sal_Int32 * ) SAL_THROW(()) -{ - return ::cppu::UnoType< ::sal_Int32 >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const sal_uInt32 * ) SAL_THROW(()) -{ - return ::cppu::UnoType< ::sal_uInt32 >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const sal_Int64 * ) SAL_THROW(()) -{ - return ::cppu::UnoType< ::sal_Int64 >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const sal_uInt64 * ) SAL_THROW(()) -{ - return ::cppu::UnoType< ::sal_uInt64 >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const float * ) SAL_THROW(()) -{ - return ::cppu::UnoType< float >::get(); -} - -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType( SAL_UNUSED_PARAMETER const double * ) SAL_THROW(()) -{ - return ::cppu::UnoType< double >::get(); -} - -template< class T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuArrayType1( T * pT ) SAL_THROW(()) -{ - if (! ::com::sun::star::uno::Array< T >::s_pType) - { - const ::com::sun::star::uno::Type & rElementType = - ::cppu::getTypeFavourUnsigned( *pT ); - sal_Int32 size = sizeof( **pT ); - sal_Int32 dim1 = sizeof( *pT ) / size; - ::typelib_static_array_type_init( - & ::com::sun::star::uno::Array< T >::s_pType, rElementType.getTypeLibType(), - 1, dim1 ); - } - return * reinterpret_cast< const ::com::sun::star::uno::Type * >( - & ::com::sun::star::uno::Array< T >::s_pType ); -} - -template< class T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuArrayType2( T * pT ) SAL_THROW(()) -{ - if (! ::com::sun::star::uno::Array< T >::s_pType) - { - const ::com::sun::star::uno::Type & rElementType = - ::cppu::getTypeFavourUnsigned( **pT ); - sal_Int32 size = sizeof( ***pT ); - sal_Int32 dim2 = sizeof( **pT ) / size; - sal_Int32 dim1 = sizeof( *pT ) / dim2 / size; - ::typelib_static_array_type_init( - & ::com::sun::star::uno::Array< T >::s_pType, rElementType.getTypeLibType(), - 2, dim1, dim2 ); - } - return * reinterpret_cast< const ::com::sun::star::uno::Type * >( - & ::com::sun::star::uno::Array< T >::s_pType ); -} - -template< class T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuArrayType3( T * pT ) SAL_THROW(()) -{ - if (! ::com::sun::star::uno::Array< T >::s_pType) - { - const ::com::sun::star::uno::Type & rElementType = - ::cppu::getTypeFavourUnsigned( ***pT ); - sal_Int32 size = sizeof( ****pT ); - sal_Int32 dim3 = sizeof( ***pT ) / size; - sal_Int32 dim2 = sizeof( **pT ) / dim3 / size; - sal_Int32 dim1 = sizeof( *pT ) / (dim2 * dim3)/ size; - ::typelib_static_array_type_init( - & ::com::sun::star::uno::Array< T >::s_pType, rElementType.getTypeLibType(), - 3, dim1, dim2, dim3 ); - } - return * reinterpret_cast< const ::com::sun::star::uno::Type * >( - & ::com::sun::star::uno::Array< T >::s_pType ); -} - -template< class T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuArrayType4( T * pT ) SAL_THROW(()) -{ - if (! ::com::sun::star::uno::Array< T >::s_pType) - { - const ::com::sun::star::uno::Type & rElementType = - ::cppu::getTypeFavourUnsigned( ****pT ); - sal_Int32 size = sizeof( *****pT ); - sal_Int32 dim4 = sizeof( ****pT ) / size; - sal_Int32 dim3 = sizeof( ***pT ) / dim4 / size; - sal_Int32 dim2 = sizeof( **pT ) / (dim3 * dim4) / size; - sal_Int32 dim1 = sizeof( *pT ) / (dim2 * dim3 * dim4) / size; - ::typelib_static_array_type_init( - & ::com::sun::star::uno::Array< T >::s_pType, rElementType.getTypeLibType(), - 4, dim1, dim2, dim3, dim4 ); - } - return * reinterpret_cast< const ::com::sun::star::uno::Type * >( - & ::com::sun::star::uno::Array< T >::s_pType ); -} - -template< class T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuArrayType5( T * pT ) SAL_THROW(()) -{ - if (! ::com::sun::star::uno::Array< T >::s_pType) - { - const ::com::sun::star::uno::Type & rElementType = - ::cppu::getTypeFavourUnsigned( *****pT ); - sal_Int32 size = sizeof( ******pT ); - sal_Int32 dim5 = sizeof( *****pT ) / size; - sal_Int32 dim4 = sizeof( ****pT ) / dim5 / size; - sal_Int32 dim3 = sizeof( ***pT ) / (dim4 * dim5) / size; - sal_Int32 dim2 = sizeof( **pT ) / (dim3 * dim4 * dim5) / size; - sal_Int32 dim1 = sizeof( *pT ) / (dim2 * dim3 * dim4 * dim5) / size; - ::typelib_static_array_type_init( - & ::com::sun::star::uno::Array< T >::s_pType, rElementType.getTypeLibType(), - 5, dim1, dim2, dim3, dim4, dim5 ); - } - return * reinterpret_cast< const ::com::sun::star::uno::Type * >( - & ::com::sun::star::uno::Array< T >::s_pType ); -} - -template< class T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuArrayType6( T * pT ) SAL_THROW(()) -{ - if (! ::com::sun::star::uno::Array< T >::s_pType) - { - const ::com::sun::star::uno::Type & rElementType = - ::cppu::getTypeFavourUnsigned( ******pT ); - sal_Int32 size = sizeof( *******pT ); - sal_Int32 dim6 = sizeof( ******pT ) / size; - sal_Int32 dim5 = sizeof( *****pT ) / dim6 / size; - sal_Int32 dim4 = sizeof( ****pT ) / (dim5 * dim6) / size; - sal_Int32 dim3 = sizeof( ***pT ) / (dim4 * dim5 * dim6) / size; - sal_Int32 dim2 = sizeof( **pT ) / (dim3 * dim4 * dim5 * dim6) / size; - sal_Int32 dim1 = sizeof( *pT ) / (dim2 * dim3 * dim4 * dim5 * dim6) / size; - ::typelib_static_array_type_init( - & ::com::sun::star::uno::Array< T >::s_pType, rElementType.getTypeLibType(), - 6, dim1, dim2, dim3, dim4, dim5, dim6 ); - } - return * reinterpret_cast< const ::com::sun::star::uno::Type * >( - & ::com::sun::star::uno::Array< T >::s_pType ); -} - -template< typename T > -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType() SAL_THROW(()) -{ - return ::cppu::UnoType< T >::get(); -} - -template<> -inline const ::com::sun::star::uno::Type & SAL_CALL getCppuType< sal_Unicode >() - SAL_THROW(()) -{ - return ::cppu::UnoType< ::cppu::UnoCharType >::get(); -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/com/sun/star/uno/genfunc.h b/cppu/inc/com/sun/star/uno/genfunc.h deleted file mode 100644 index 12b6ad7d4640..000000000000 --- a/cppu/inc/com/sun/star/uno/genfunc.h +++ /dev/null @@ -1,63 +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 _COM_SUN_STAR_UNO_GENFUNC_H_ -#define _COM_SUN_STAR_UNO_GENFUNC_H_ - -#include "sal/types.h" - -typedef struct _typelib_TypeDescriptionReference typelib_TypeDescriptionReference; - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -/** Function to acquire a C++ interface. - - @param pCppI C++ interface pointer -*/ -inline void SAL_CALL cpp_acquire( void * pCppI ) - SAL_THROW(()); -/** Function to release a C++ interface. - - @param pCppI C++ interface pointer -*/ -inline void SAL_CALL cpp_release( void * pCppI ) - SAL_THROW(()); -/** Function to query for a C++ interface. - - @param pCppI C++ interface pointer - @param pType demanded interface type - @return acquired C++ interface pointer or null -*/ -inline void * SAL_CALL cpp_queryInterface( void * pCppI, typelib_TypeDescriptionReference * pType ) - SAL_THROW(()); - -} -} -} -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/com/sun/star/uno/genfunc.hxx b/cppu/inc/com/sun/star/uno/genfunc.hxx deleted file mode 100644 index d523123733e4..000000000000 --- a/cppu/inc/com/sun/star/uno/genfunc.hxx +++ /dev/null @@ -1,82 +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 _COM_SUN_STAR_UNO_GENFUNC_HXX_ -#define _COM_SUN_STAR_UNO_GENFUNC_HXX_ - -#include <com/sun/star/uno/genfunc.h> -#include <com/sun/star/uno/Any.hxx> - - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -//================================================================================================== -inline void SAL_CALL cpp_acquire( void * pCppI ) - SAL_THROW(()) -{ - reinterpret_cast< XInterface * >( pCppI )->acquire(); -} -//================================================================================================== -inline void SAL_CALL cpp_release( void * pCppI ) - SAL_THROW(()) -{ - reinterpret_cast< XInterface * >( pCppI )->release(); -} -//================================================================================================== -inline void * SAL_CALL cpp_queryInterface( void * pCppI, typelib_TypeDescriptionReference * pType ) - SAL_THROW(()) -{ - if (pCppI) - { -#ifndef EXCEPTIONS_OFF - try - { -#endif - Any aRet( reinterpret_cast< XInterface * >( pCppI )->queryInterface( - * reinterpret_cast< const Type * >( &pType ) ) ); - if (typelib_TypeClass_INTERFACE == aRet.pType->eTypeClass) - { - XInterface * pRet = reinterpret_cast< XInterface * >( aRet.pReserved ); - aRet.pReserved = 0; - return pRet; - } -#ifndef EXCEPTIONS_OFF - } - catch (RuntimeException &) - { - } -#endif - } - return 0; -} - -} -} -} -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/cppu/Enterable.hxx b/cppu/inc/cppu/Enterable.hxx deleted file mode 100644 index 6bb4a9c274d4..000000000000 --- a/cppu/inc/cppu/Enterable.hxx +++ /dev/null @@ -1,108 +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_cppu_Enterable_hxx -#define INCLUDED_cppu_Enterable_hxx - -#include "uno/Enterable.h" -#include "rtl/ustring.hxx" - -namespace cppu -{ -/** C++ wrapper for binary C Enterable - (http://wiki.services.openoffice.org/wiki/Uno/Cpp/Spec/Environment_Stack) - - @see uno_Enterable - @since UDK 3.2.7 -*/ -class Enterable : public uno_Enterable -{ -public: - /* These methods need to be implemented in a derived class. - */ - virtual void v_enter (void) = 0; - virtual void v_leave (void) = 0; - virtual void v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam) = 0; - virtual void v_callOut_v (uno_EnvCallee * pCallee, va_list * pParam) = 0; - virtual int v_isValid (rtl::OUString * pReason) = 0; - - virtual ~Enterable() {} - -public: - inline explicit Enterable(void); - - inline void enter(void) {m_enter(this);} - inline void leave(void) {m_leave(this);} - - inline void callInto_v(uno_EnvCallee * pCallee, va_list * pParam) {m_callInto_v(this, pCallee, pParam);} - inline void callOut_v (uno_EnvCallee * pCallee, va_list * pParam) {m_callOut_v (this, pCallee, pParam);} - - inline void callInto(uno_EnvCallee * pCallee, ...); - inline void callOut (uno_EnvCallee * pCallee, ...); - - inline int isValid (rtl::OUString * pReason) {return m_isValid(this, (rtl_uString **)pReason);} - -private: - Enterable(Enterable const &); - Enterable & operator = (Enterable const &); -}; - -extern "C" inline void Enterable_call_enter (void * context) { ((Enterable *)context)->v_enter(); } -extern "C" inline void Enterable_call_leave (void * context) { ((Enterable *)context)->v_leave(); } -extern "C" inline void Enterable_call_callInto_v(void * context, uno_EnvCallee * pCallee, va_list * pParam) - { ((Enterable *)context)->v_callInto_v(pCallee, pParam); } -extern "C" inline void Enterable_call_callOut_v (void * context, uno_EnvCallee * pCallee, va_list * pParam) - { ((Enterable *)context)->v_callOut_v(pCallee, pParam); } -extern "C" inline int Enterable_call_isValid (void * context, rtl_uString ** pReason) - {return ((Enterable *)context)->v_isValid((rtl::OUString *)pReason);} - - -Enterable::Enterable(void) -{ - m_enter = Enterable_call_enter; - m_leave = Enterable_call_leave; - m_callInto_v = Enterable_call_callInto_v; - m_callOut_v = Enterable_call_callOut_v; - m_isValid = Enterable_call_isValid; -} - -void Enterable::callInto(uno_EnvCallee * pCallee, ...) -{ - va_list param; - - va_start(param, pCallee); - callInto_v(pCallee, ¶m); - va_end(param); -} - -void Enterable::callOut(uno_EnvCallee * pCallee, ...) -{ - va_list param; - - va_start(param, pCallee); - callOut_v(pCallee, ¶m); - va_end(param); -} - -} - - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/cppu/EnvDcp.hxx b/cppu/inc/cppu/EnvDcp.hxx deleted file mode 100644 index 340ebcb3d5e1..000000000000 --- a/cppu/inc/cppu/EnvDcp.hxx +++ /dev/null @@ -1,69 +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_cppu_EnvDcp_hxx -#define INCLUDED_cppu_EnvDcp_hxx - -#include "rtl/ustring.hxx" -#include "uno/EnvDcp.h" - - -namespace cppu -{ -namespace EnvDcp -{ -/** Get the OBI type part of an environment descriptor. - (http://wiki.services.openoffice.org/wiki/Uno/Cpp/Spec/Environment_Descriptor) - - @param rEnvDcp the Environment Descriptor - @return the OBI type - @since UDK 3.2.7 -*/ -inline rtl::OUString getTypeName(rtl::OUString const & rEnvDcp) -{ - rtl::OUString typeName; - - uno_EnvDcp_getTypeName(rEnvDcp.pData, &typeName.pData); - - return typeName; -} - -/** Get the purpose part of an environment descriptor. - (http://wiki.services.openoffice.org/wiki/Uno/Binary/Spec/Environment_Descriptor) - - @param rEnvDcp the Environment Descriptor - @return the purpose - @since UDK 3.2.7 -*/ -inline rtl::OUString getPurpose(rtl::OUString const & rEnvDcp) -{ - rtl::OUString purpose; - - uno_EnvDcp_getPurpose(rEnvDcp.pData, &purpose.pData); - - return purpose; -} - -} -} - - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/cppu/EnvGuards.hxx b/cppu/inc/cppu/EnvGuards.hxx deleted file mode 100644 index e1334ac7909a..000000000000 --- a/cppu/inc/cppu/EnvGuards.hxx +++ /dev/null @@ -1,107 +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_cppu_EnvGuards_hxx -#define INCLUDED_cppu_EnvGuards_hxx - -#include "uno/environment.hxx" -#include "uno/mapping.hxx" - - -namespace cssuno = com::sun::star::uno; - - -namespace cppu -{ - /** Environment Guard - The provided Environment becomes entered in the constructor and left - in the destructor. - (http://wiki.services.openoffice.org/wiki/Uno/Cpp/Spec/Environment_Guard) - - @since UDK 3.2.7 - */ - class EnvGuard - { - cssuno::Environment m_env; - - public: - explicit EnvGuard(cssuno::Environment const & env) - { - if (env.is()) - { - m_env = cssuno::Environment::getCurrent(); - env.enter(); - } - } - - ~EnvGuard() - { - m_env.enter(); - } - - /** Checks if the associated environment is non empty. - - @return 0 == empty, 1 == non empty - */ - sal_Bool SAL_CALL is() const SAL_THROW(()) - { - return m_env.is(); - } - - /** Leaves the associated environment and clears - the reference. - */ - void clear() - { - if (m_env.is()) - { - m_env.enter(); - m_env.clear(); - } - } - }; - - /** Environment Anti-Guard - Any entered Environment becomes left in the constructor and re-entered - in the destructor. - (http://wiki.services.openoffice.org/wiki/Uno/Cpp/Spec/Environment_AntiGuard) - - @since UDK 3.2.7 - */ - class AntiEnvGuard - { - cssuno::Environment m_env; - - public: - explicit AntiEnvGuard() - : m_env(cssuno::Environment::getCurrent()) - { - uno_Environment_enter(NULL); - } - - ~AntiEnvGuard() - { - m_env.enter(); - } - }; -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/cppu/Map.hxx b/cppu/inc/cppu/Map.hxx deleted file mode 100644 index 576d2e9133ae..000000000000 --- a/cppu/inc/cppu/Map.hxx +++ /dev/null @@ -1,107 +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_cppu_Map_hxx -#define INCLUDED_cppu_Map_hxx - -#include <uno/mapping.hxx> - - -namespace cssu = com::sun::star::uno; - -namespace cppu -{ - /** Helpers for mapping objects relative to the current environment. - (http://wiki.services.openoffice.org/wiki/Uno/Cpp/Spec/Map_Helpers) - */ - - /** Maps an object from the current to an outer Environment, returns mapped object. - - @param pT the object to be mapped - @param outerEnv the target environment - @return the mapped object - @since UDK 3.2.7 - */ - template<class T> inline T * mapOut(T * pT, cssu::Environment const & outerEnv) - { - cssu::Mapping curr2outer(cssu::Environment::getCurrent(), outerEnv); - - return reinterpret_cast<T *>(curr2outer.mapInterface(pT, getCppuType((cssu::Reference<T> *)NULL))); - } - - - /** Maps an object from an outer Environment to the current, returns mapped object. - - @param pT the object to be mapped - @param outerEnv the source environment - @return the mapped object - @since UDK 3.2.7 - */ - template<class T> inline T * mapIn(T * pT, cssu::Environment const & outerEnv) - { - cssu::Mapping outer2curr(outerEnv, cssu::Environment::getCurrent()); - - return reinterpret_cast<T *>(outer2curr.mapInterface(pT, getCppuType((cssu::Reference<T> *)NULL))); - } - - - /** Maps an any from the current to an outer Environment, fills passed any. - - @param any the any to be mapped - @param res the target any - @param outerEnv the target environment - @since UDK 3.2.7 - */ - // Problem: any gets assigned to something, acquire/releases may be called in wrong env. - inline void mapOutAny(cssu::Any const & any, cssu::Any * res, cssu::Environment const & outerEnv) - { - cssu::Mapping curr2outer(cssu::Environment::getCurrent(), outerEnv); - - uno_any_destruct(res, (uno_ReleaseFunc)cssu::cpp_release); - uno_type_any_constructAndConvert( - res, - const_cast<void *>(any.getValue()), - any.getValueTypeRef(), - curr2outer.get()); - } - - - /** Maps an any from an outer Environment to the current, fills passed any. - - @param any the any to be mapped - @param res the target any - @param outerEnv the source environment - @since UDK 3.2.7 - */ - inline void mapInAny(cssu::Any const & any, cssu::Any * res, cssu::Environment const & outerEnv) - { - cssu::Mapping outer2curr(outerEnv, cssu::Environment::getCurrent()); - - uno_any_destruct(res, (uno_ReleaseFunc)cssu::cpp_release); - uno_type_any_constructAndConvert( - res, - const_cast<void *>(any.getValue()), - any.getValueTypeRef(), - outer2curr.get()); - } -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/cppu/cppudllapi.h b/cppu/inc/cppu/cppudllapi.h deleted file mode 100644 index ee37e1b1c399..000000000000 --- a/cppu/inc/cppu/cppudllapi.h +++ /dev/null @@ -1,21 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -#ifndef INCLUDED_CPPUDLLAPI_H -#define INCLUDED_CPPUDLLAPI_H - -#include "sal/types.h" - -#if defined(CPPU_DLLIMPLEMENTATION) -#define CPPU_DLLPUBLIC SAL_DLLPUBLIC_EXPORT -#else -#define CPPU_DLLPUBLIC SAL_DLLPUBLIC_IMPORT -#endif - -#if defined(PURPENV_DLLIMPLEMENTATION) -#define PURPENV_DLLPUBLIC SAL_DLLPUBLIC_EXPORT -#else -#define PURPENV_DLLPUBLIC SAL_DLLPUBLIC_IMPORT -#endif - -#endif /* INCLUDED_CPPUDLLAPI_H */ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/cppu/helper/purpenv/Environment.hxx b/cppu/inc/cppu/helper/purpenv/Environment.hxx deleted file mode 100644 index 04985d7643b0..000000000000 --- a/cppu/inc/cppu/helper/purpenv/Environment.hxx +++ /dev/null @@ -1,42 +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_cppu_helper_purpenv_Environment_hxx -#define INCLUDED_cppu_helper_purpenv_Environment_hxx - -#include <cppu/cppudllapi.h> -#include "uno/environment.h" -#include "cppu/Enterable.hxx" - - -namespace cppu { namespace helper { namespace purpenv { - -/** C++ helper for implementing Purpose Environments. - (http://wiki.services.openoffice.org/wiki/Uno/Cpp/Spec/Purpose_Bridge_Implementation_Helper) - - @since UDK 3.2.7 -*/ -PURPENV_DLLPUBLIC void Environment_initWithEnterable( - uno_Environment * pEnvironment, cppu::Enterable * pEnterable); - -}}} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/cppu/helper/purpenv/Mapping.hxx b/cppu/inc/cppu/helper/purpenv/Mapping.hxx deleted file mode 100644 index 83518cf75d21..000000000000 --- a/cppu/inc/cppu/helper/purpenv/Mapping.hxx +++ /dev/null @@ -1,63 +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_cppu_helper_purpenv_Mapping_hxx -#define INCLUDED_cppu_helper_purpenv_Mapping_hxx - -#include "com/sun/star/uno/Any.h" - -#include <cppu/cppudllapi.h> -#include "uno/environment.h" -#include "uno/mapping.h" - - -namespace cppu { namespace helper { namespace purpenv { - -/** C++ helper for implementing Purpose Environments. - (http://wiki.services.openoffice.org/wiki/Uno/Cpp/Spec/Purpose_Bridge_Implementation_Helper) - - @since UDK 3.2.7 -*/ - -typedef void ProbeFun( - bool pre, - void * pThis, - void * pContext, - typelib_TypeDescriptionReference * pReturnTypeRef, - typelib_MethodParameter * pParams, - sal_Int32 nParams, - typelib_TypeDescription const * pMemberType, - void * pReturn, - void * pArgs[], - uno_Any ** ppException ); - - - -PURPENV_DLLPUBLIC void createMapping(uno_Mapping ** ppMapping, - uno_Environment * pFrom, - uno_Environment * pTo, - ProbeFun * probeFun = NULL, - void * pContext = NULL - ); - -}}} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/cppu/macros.hxx b/cppu/inc/cppu/macros.hxx deleted file mode 100644 index ecaa1470893b..000000000000 --- a/cppu/inc/cppu/macros.hxx +++ /dev/null @@ -1,58 +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 _CPPU_MACROS_HXX_ -#define _CPPU_MACROS_HXX_ - -#include <sal/types.h> -#include <uno/lbnames.h> - -/** Namespace name for compiler/ platform, e.g. gcc3, msci */ -#define CPPU_CURRENT_NAMESPACE CPPU_ENV - -/// @cond INTERNAL - -/** Patching the GCC 3 incomatible alignment change for Linux. - - This macro is appended by cppumaker to every first member of a struct, if - the struct inherits from a base struct and the first member is neither - double nor sal_[u]Int64. (The double/sal_[u]Int64 restriction is due to a - bug in GCC prior to version 3.3, which would cause __alignof__ of such a - struct to become 8 instead of 4 if CPPU_GCC3_ALIGN were added to its first - member.) -*/ -#if defined(__GNUC__) -#define CPPU_GCC3_ALIGN( base_struct ) __attribute__ ((aligned (__alignof__ (base_struct)))) -#else -#define CPPU_GCC3_ALIGN( base_struct ) -#endif - -/** - Exporting the symbols necessary for exception handling on GCC. - - These macros are used in the headers generated by cppumaker for UNO exception - types, to ensure that exception handling does not fail on GCC. -*/ -#define CPPU_GCC_DLLPUBLIC_EXPORT SAL_EXCEPTION_DLLPUBLIC_EXPORT -#define CPPU_GCC_DLLPRIVATE SAL_EXCEPTION_DLLPRIVATE - -/// @endcond - -#endif // _CPPU_MACROS_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/cppu/unotype.hxx b/cppu/inc/cppu/unotype.hxx deleted file mode 100644 index 2861bdb2c922..000000000000 --- a/cppu/inc/cppu/unotype.hxx +++ /dev/null @@ -1,375 +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_CPPU_UNOTYPE_HXX -#define INCLUDED_CPPU_UNOTYPE_HXX - -#include "sal/config.h" -#include "com/sun/star/uno/Type.h" -#include "sal/types.h" -#include "typelib/typeclass.h" -#include "typelib/typedescription.h" - -namespace com { namespace sun { namespace star { namespace uno { - class Any; - class Exception; - template< typename > class Reference; - template< typename > class Sequence; - class XInterface; -} } } } -namespace rtl { class OUString; } - -namespace cppu { - -template< typename > class UnoType; - -/** - A unique C++ type representing the UNO type VOID in cppu::UnoType. - - This type is declared but not defined. Its only use is as a template - argument to cppu::UnoType. - - @since UDK 3.2.2 -*/ -struct UnoVoidType; - -/** - A unique C++ type representing the UNO type UNSIGNED SHORT in cppu::UnoType. - - The UNO types UNSIGNED SHORT and CHAR map to the same C++ type, so this C++ - type is needed to unambiguously specify UNO types in cppu::UnoType. - - This type is declared but not defined. Its only use is as a template - argument to cppu::UnoType. - - @since UDK 3.2.2 -*/ -struct UnoUnsignedShortType; - -/** - A unique C++ type representing the UNO type UNSIGNED SHORT in cppu::UnoType. - - The UNO types UNSIGNED SHORT and CHAR map to the same C++ type, so this C++ - type is needed to unambiguously specify UNO types in cppu::UnoType. - - This type is declared but not defined. Its only use is as a template - argument to cppu::UnoType. - - @since UDK 3.2.2 -*/ -struct UnoCharType; - -/** - A unique C++ type template representing the UNO sequence types in - cppu::UnoType. - - The UNO types UNSIGNED SHORT and CHAR map to the same C++ type, so this C++ - type is needed to unambiguously specify UNO types in cppu::UnoType. - - This type is declared but not defined. Its only use is as a template - argument to cppu::UnoType. - - @since UDK 3.2.2 -*/ -template< typename > struct UnoSequenceType; - -namespace detail { - -inline ::com::sun::star::uno::Type const & getTypeFromTypeDescriptionReference( - ::typelib_TypeDescriptionReference * const * tdr) -{ - return *reinterpret_cast< ::com::sun::star::uno::Type const * >(tdr); -} - -inline ::com::sun::star::uno::Type const & -getTypeFromTypeClass(::typelib_TypeClass tc) { - return getTypeFromTypeDescriptionReference( - ::typelib_static_type_getByTypeClass(tc)); -} - -} - -} - -namespace cppu { namespace detail { - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::cppu::UnoVoidType const *) { - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_VOID); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER bool const *) { - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_BOOLEAN); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_Bool const *) { - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_BOOLEAN); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_Int8 const *) { - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_BYTE); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_Int16 const *) { - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_SHORT); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType( - SAL_UNUSED_PARAMETER ::cppu::UnoUnsignedShortType const *) -{ - return ::cppu::detail::getTypeFromTypeClass( - ::typelib_TypeClass_UNSIGNED_SHORT); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_Int32 const *) { - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_LONG); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_uInt32 const *) { - return ::cppu::detail::getTypeFromTypeClass( - ::typelib_TypeClass_UNSIGNED_LONG); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_Int64 const *) { - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_HYPER); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_uInt64 const *) { - return ::cppu::detail::getTypeFromTypeClass( - ::typelib_TypeClass_UNSIGNED_HYPER); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER float const *) { - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_FLOAT); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER double const *) { - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_DOUBLE); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::cppu::UnoCharType const *) { - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_CHAR); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::rtl::OUString const *) { - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_STRING); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::com::sun::star::uno::Type const *) -{ - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_TYPE); -} - -inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::com::sun::star::uno::Any const *) -{ - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_ANY); -} - -template< typename T > inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType( - SAL_UNUSED_PARAMETER ::cppu::UnoSequenceType< T > const *) -{ - //TODO: depending on memory model, the following might not work reliably - static typelib_TypeDescriptionReference * p = 0; - if (p == 0) { - ::typelib_static_sequence_type_init( - &p, ::cppu::UnoType< T >::get().getTypeLibType()); - } - return ::cppu::detail::getTypeFromTypeDescriptionReference(&p); -} - -template< typename T > inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType( - SAL_UNUSED_PARAMETER ::com::sun::star::uno::Sequence< T > const *) -{ - return cppu_detail_getUnoType( - static_cast< ::cppu::UnoSequenceType< T > * >(0)); -} - -inline ::com::sun::star::uno::Type const & cppu_detail_getUnoType( - SAL_UNUSED_PARAMETER ::com::sun::star::uno::Exception const *) -{ - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_EXCEPTION); -} - -inline ::com::sun::star::uno::Type const & cppu_detail_getUnoType( - SAL_UNUSED_PARAMETER ::com::sun::star::uno::XInterface const *) -{ - return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_INTERFACE); -} - -template< typename T > inline ::com::sun::star::uno::Type const & -cppu_detail_getUnoType( - SAL_UNUSED_PARAMETER ::com::sun::star::uno::Reference< T > const *) -{ - return ::cppu::UnoType< T >::get(); -} - -} } - -namespace cppu { - -/** - Get the com::sun::star::uno::Type instance representing a certain UNO type. - - For each C++ type representing a UNO type, the corresponding instantiation of - this template has a public static member function get(). (The template is - specialized for C++ templates representing polymorphic struct type templates - of UNO. In those cases, it does not work to instantiate UnoType with a C++ - type that is derived from a C++ type that represents a UNO type, but does not - itself represent a UNO type. In all other cases, UnoType even works for such - C++ types that are unambiguously derived from one C++ type that represents a - UNO type.) In addition to those C++ types that are mappings of UNO types - (except for sal_uInt16 and sal_Unicode, see below), the following C++ types - are appropriate as template arguments: cppu::UnoVoidType, bool, - cppu::UnoUnsignedShortType, cppu::UnoCharType, cppu::UnoSequenceType with any - appropriate template argument (the latter three to unambiguously specify UNO - types, as the UNO types UNSIGNED SHORT and CHAR map to the same C++ type), - and com::sun::star::uno::Reference with any appropriate template argument. - - @since UDK 3.2.2 -*/ -template< typename T > class UnoType { -public: - static inline ::com::sun::star::uno::Type const & get() { - using namespace ::cppu::detail; - return cppu_detail_getUnoType(static_cast< T * >(0)); - } - -private: - UnoType(UnoType &); // not defined - ~UnoType(); // not defined - void operator =(UnoType &); // not defined -}; - -/** - A working replacement for getCppuType (see there). - - There are three overloads of this function that together form the replacement - of getCppuType. The replacement has exactly the same semantics as - getCppuType, in that it returns correct results for the UNO type UNSIGNED - SHORT but not for the UNO type CHAR. - - @since UDK 3.2.2 -*/ -template< typename T > inline ::com::sun::star::uno::Type const & -getTypeFavourUnsigned(SAL_UNUSED_PARAMETER T const *) { - return ::cppu::UnoType< T >::get(); -} - -/** - A working replacement for getCppuType (see there). - - There are three overloads of this function that together form the replacement - of getCppuType. The replacement has exactly the same semantics as - getCppuType, in that it returns correct results for the UNO type UNSIGNED - SHORT but not for the UNO type CHAR. - - @since UDK 3.2.2 -*/ -inline ::com::sun::star::uno::Type const & -getTypeFavourUnsigned(SAL_UNUSED_PARAMETER ::sal_uInt16 const *) { - return ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get(); -} - -/** - A working replacement for getCppuType (see there). - - There are three overloads of this function that together form the replacement - of getCppuType. The replacement has exactly the same semantics as - getCppuType, in that it returns correct results for the UNO type UNSIGNED - SHORT but not for the UNO type CHAR. - - @since UDK 3.2.2 -*/ -template< typename T > inline ::com::sun::star::uno::Type const & -getTypeFavourUnsigned(::com::sun::star::uno::Sequence< T > const *); - // defined in com/sun/star/uno/Sequence.hxx - -/// @cond INTERNAL - -/** - A working replacement for getCppuType (see there). - - There are three overloads of this function that together form the replacement - of the getCppuType template. The replacement has exactly the same semantics - as the getCppuType template, in that it returns correct results for the UNO - type CHAR but not for the UNO type UNSIGNED SHORT. Additionally, it also - returns the intended results for sequence types. - - @since UDK 3.2.3 -*/ -template< typename T > inline ::com::sun::star::uno::Type const & -getTypeFavourChar(SAL_UNUSED_PARAMETER T const *) { - return ::cppu::UnoType< T >::get(); -} - -/** - A working replacement for getCppuType (see there). - - There are three overloads of this function that together form the replacement - of the getCppuType template. The replacement has exactly the same semantics - as the getCppuType template, in that it returns correct results for the UNO - type CHAR but not for the UNO type UNSIGNED SHORT. Additionally, it also - returns the intended results for sequence types. - - @since UDK 3.2.3 -*/ -inline ::com::sun::star::uno::Type const & -getTypeFavourChar(SAL_UNUSED_PARAMETER ::sal_Unicode const *) { - return ::cppu::UnoType< ::cppu::UnoCharType >::get(); -} - -/** - A working replacement for getCppuType (see there). - - There are three overloads of this function that together form the replacement - of the getCppuType template. The replacement has exactly the same semantics - as the getCppuType template, in that it returns correct results for the UNO - type CHAR but not for the UNO type UNSIGNED SHORT. Additionally, it also - returns the intended results for sequence types. - - @since UDK 3.2.3 -*/ -template< typename T > inline ::com::sun::star::uno::Type const & -getTypeFavourChar(::com::sun::star::uno::Sequence< T > const *); - // defined in com/sun/star/uno/Sequence.hxx - -/// @endcond - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/typelib/typeclass.h b/cppu/inc/typelib/typeclass.h deleted file mode 100644 index b3eeb5ddff52..000000000000 --- a/cppu/inc/typelib/typeclass.h +++ /dev/null @@ -1,98 +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 _TYPELIB_TYPECLASS_H_ -#define _TYPELIB_TYPECLASS_H_ - -#include <sal/types.h> - -/** This type class enum is binary compatible with the IDL enum com.sun.star.uno.TypeClass. -*/ -typedef enum _typelib_TypeClass -{ - /** type class of void */ - typelib_TypeClass_VOID = 0, - /** type class of char */ - typelib_TypeClass_CHAR = 1, - /** type class of boolean */ - typelib_TypeClass_BOOLEAN = 2, - /** type class of byte */ - typelib_TypeClass_BYTE = 3, - /** type class of short */ - typelib_TypeClass_SHORT = 4, - /** type class of unsigned short */ - typelib_TypeClass_UNSIGNED_SHORT = 5, - /** type class of long */ - typelib_TypeClass_LONG = 6, - /** type class of unsigned long */ - typelib_TypeClass_UNSIGNED_LONG = 7, - /** type class of hyper */ - typelib_TypeClass_HYPER = 8, - /** type class of unsigned hyper */ - typelib_TypeClass_UNSIGNED_HYPER = 9, - /** type class of float */ - typelib_TypeClass_FLOAT = 10, - /** type class of double */ - typelib_TypeClass_DOUBLE = 11, - /** type class of string */ - typelib_TypeClass_STRING = 12, - /** type class of type */ - typelib_TypeClass_TYPE = 13, - /** type class of any */ - typelib_TypeClass_ANY = 14, - /** type class of enum */ - typelib_TypeClass_ENUM = 15, - /** type class of typedef */ - typelib_TypeClass_TYPEDEF = 16, - /** type class of struct */ - typelib_TypeClass_STRUCT = 17, - /** type class of union (not implemented) */ - typelib_TypeClass_UNION = 18, - /** type class of exception */ - typelib_TypeClass_EXCEPTION = 19, - /** type class of sequence */ - typelib_TypeClass_SEQUENCE = 20, - /** type class of array (not implemented) */ - typelib_TypeClass_ARRAY = 21, - /** type class of interface */ - typelib_TypeClass_INTERFACE = 22, - /** type class of service (not implemented) */ - typelib_TypeClass_SERVICE = 23, - /** type class of module (not implemented) */ - typelib_TypeClass_MODULE = 24, - /** type class of interface method */ - typelib_TypeClass_INTERFACE_METHOD = 25, - /** type class of interface attribute */ - typelib_TypeClass_INTERFACE_ATTRIBUTE = 26, - /** type class of unknown type */ - typelib_TypeClass_UNKNOWN = 27, - /** type class of properties */ - typelib_TypeClass_PROPERTY = 28, - /** type class of constants */ - typelib_TypeClass_CONSTANT = 29, - /** type class of constants groups */ - typelib_TypeClass_CONSTANTS = 30, - /** type class of singletons */ - typelib_TypeClass_SINGLETON = 31, - /** fixing enum size */ - typelib_TypeClass_MAKE_FIXED_SIZE = SAL_MAX_ENUM -} typelib_TypeClass; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/typelib/typedescription.h b/cppu/inc/typelib/typedescription.h deleted file mode 100644 index 89d718f58433..000000000000 --- a/cppu/inc/typelib/typedescription.h +++ /dev/null @@ -1,1148 +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 _TYPELIB_TYPEDESCRIPTION_H_ -#define _TYPELIB_TYPEDESCRIPTION_H_ - -#include <cppu/cppudllapi.h> -#include <typelib/uik.h> -#include <typelib/typeclass.h> -#include <rtl/ustring.h> - -#ifdef __cplusplus -extern "C" -{ -#endif - -struct _typelib_TypeDescription; - -#if defined( SAL_W32) -#pragma pack(push, 8) -#endif - -/** Holds a weak reference to a type description. -*/ -typedef struct _typelib_TypeDescriptionReference -{ - /** reference count of type; don't ever modify this by yourself, use - typelib_typedescriptionreference_acquire() and typelib_typedescriptionreference_release() - */ - sal_Int32 nRefCount; - /** number of static references of type, because of the fact that some types are needed - until program termination and are commonly held static. - */ - sal_Int32 nStaticRefCount; - /** type class of type - */ - typelib_TypeClass eTypeClass; - /** fully qualified name of type - */ - rtl_uString * pTypeName; - /** pointer to full typedescription; this value is only valid if the type is never swapped out - */ - struct _typelib_TypeDescription * pType; - /** pointer to optimize the runtime; not for public use - */ - void * pUniqueIdentifier; - /** reserved for future use; 0 if not used - */ - void * pReserved; -} typelib_TypeDescriptionReference; - -/** Full type description of a type. Memory layout of this struct is identical to the - typelib_TypeDescriptionReference for the first six members. - So a typedescription can be used as type reference. -*/ -typedef struct _typelib_TypeDescription -{ - /** reference count; don't ever modify this by yourself, use - typelib_typedescription_acquire() and typelib_typedescription_release() - */ - sal_Int32 nRefCount; - /** number of static references of type, because of the fact that some types are needed - until program termination and are commonly held static. - */ - sal_Int32 nStaticRefCount; - /** type class of type - */ - typelib_TypeClass eTypeClass; - /** fully qualified name of type - */ - rtl_uString * pTypeName; - /** pointer to self to distinguish reference from description; for internal use only - */ - struct _typelib_TypeDescription * pSelf; - /** pointer to optimize the runtime; not for public use - */ - void * pUniqueIdentifier; - /** reserved for future use; 0 if not used - */ - void * pReserved; - - /** flag to determine whether the description is complete: - compound and union types lack of member names, enums lack of member types and names, - interfaces lack of members and table init. - Call typelib_typedescription_complete() if false. - */ - sal_Bool bComplete; - /** size of type - */ - sal_Int32 nSize; - /** alignment of type - */ - sal_Int32 nAlignment; - /** pointer to weak reference - */ - typelib_TypeDescriptionReference * pWeakRef; - /** determines, if type can be unloaded (and it is possible to reloaded it) - */ - sal_Bool bOnDemand; -} typelib_TypeDescription; - -/** Type description for exception types. -*/ -typedef struct _typelib_CompoundTypeDescription -{ - /** inherits all members of typelib_TypeDescription - */ - typelib_TypeDescription aBase; - - /** pointer to base type description, else 0 - */ - struct _typelib_CompoundTypeDescription * pBaseTypeDescription; - - /** number of members - */ - sal_Int32 nMembers; - /** byte offsets of each member including the size the base type - */ - sal_Int32 * pMemberOffsets; - /** members of the struct or exception - */ - typelib_TypeDescriptionReference ** ppTypeRefs; - /** member names of the struct or exception - */ - rtl_uString ** ppMemberNames; -} typelib_CompoundTypeDescription; - -/** - Type description for struct types. - - This is only used to represent plain struct types and instantiated - polymorphic struct types; there is no representation of polymorphic struct - type templates at this level. - - @since UDK 3.2.0 - */ -typedef struct _typelib_StructTypeDescription -{ - /** - Derived from typelib_CompoundTypeDescription. - */ - typelib_CompoundTypeDescription aBase; - - /** - Flags for direct members, specifying whether they are of parameterized - type (true) or explict type (false). - - For a plain struct type, this is a null pointer. - */ - sal_Bool * pParameterizedTypes; -} typelib_StructTypeDescription; - -/** Type description of a union. The type class of this description is typelib_TypeClass_UNION. -*/ -typedef struct _typelib_UnionTypeDescription -{ - /** inherits all members of typelib_TypeDescription - */ - typelib_TypeDescription aBase; - - /** type of the discriminant - */ - typelib_TypeDescriptionReference * pDiscriminantTypeRef; - - /** union default descriminant - */ - sal_Int64 nDefaultDiscriminant; - /** union default member type (may be 0) - */ - typelib_TypeDescriptionReference * pDefaultTypeRef; - /** number of union member types - */ - sal_Int32 nMembers; - /** union member discriminant values (same order as idl declaration) - */ - sal_Int64 * pDiscriminants; - /** union member value types (same order as idl declaration) - */ - typelib_TypeDescriptionReference ** ppTypeRefs; - /** union member value names (same order as idl declaration) - */ - rtl_uString ** ppMemberNames; - /** union value offset for data access - */ - sal_Int32 nValueOffset; -} typelib_UnionTypeDescription; - -/** Type description of an array or sequence. -*/ -typedef struct _typelib_IndirectTypeDescription -{ - /** inherits all members of typelib_TypeDescription - */ - typelib_TypeDescription aBase; - - /** array, sequence: pointer to element type - */ - typelib_TypeDescriptionReference * pType; -} typelib_IndirectTypeDescription; - -/** Type description of an array. -*/ -typedef struct _typelib_ArrayTypeDescription -{ - /** inherits all members of typelib_IndirectTypeDescription - */ - typelib_IndirectTypeDescription aBase; - - /** number of dimensions - */ - sal_Int32 nDimensions; - /** number of total array elements - */ - sal_Int32 nTotalElements; - /** array of dimensions - */ - sal_Int32 * pDimensions; -} typelib_ArrayTypeDescription; - -/** Type description of an enum. The type class of this description is typelib_TypeClass_ENUM. -*/ -typedef struct _typelib_EnumTypeDescription -{ - /** inherits all members of typelib_TypeDescription - */ - typelib_TypeDescription aBase; - - /** first value of the enum - */ - sal_Int32 nDefaultEnumValue; - /** number of enum values - */ - sal_Int32 nEnumValues; - /** names of enum values - */ - rtl_uString ** ppEnumNames; - /** values of enum (corresponding to names in similar order) - */ - sal_Int32 * pEnumValues; -} typelib_EnumTypeDescription; - -/** Description of an interface method parameter. -*/ -typedef struct _typelib_MethodParameter -{ - /** name of parameter - */ - rtl_uString * pName; - /** type of parameter - */ - typelib_TypeDescriptionReference * pTypeRef; - /** true: the call type of this parameter is [in] or [inout] - false: the call type of this parameter is [out] - */ - sal_Bool bIn; - /** true: the call type of this parameter is [out] or [inout] - false: the call type of this parameter is [in] - */ - sal_Bool bOut; -} typelib_MethodParameter; - -/** Common base type description of typelib_InterfaceMethodTypeDescription and - typelib_InterfaceAttributeTypeDescription. -*/ -typedef struct _typelib_InterfaceMemberTypeDescription -{ - /** inherits all members of typelib_TypeDescription - */ - typelib_TypeDescription aBase; - - /** position of member in the interface including the number of members of - any base interfaces - */ - sal_Int32 nPosition; - /** name of member - */ - rtl_uString * pMemberName; -} typelib_InterfaceMemberTypeDescription; - -/** Type description of an interface method. The type class of this description is - typelib_TypeClass_INTERFACE_METHOD. The size and the alignment are 0. -*/ -typedef struct _typelib_InterfaceMethodTypeDescription -{ - /** inherits all members of typelib_InterfaceMemberTypeDescription - */ - typelib_InterfaceMemberTypeDescription aBase; - - /** type of the return value - */ - typelib_TypeDescriptionReference * pReturnTypeRef; - /** number of parameters - */ - sal_Int32 nParams; - /** array of parameters - */ - typelib_MethodParameter * pParams; - /** number of exceptions - */ - sal_Int32 nExceptions; - /** array of exception types - */ - typelib_TypeDescriptionReference ** ppExceptions; - /** determines whether method is declared oneway - */ - sal_Bool bOneWay; - - /** the interface description this method is a member of - */ - struct _typelib_InterfaceTypeDescription * pInterface; - /** the inherited direct base method (null for a method that is not - inherited) - - @since UDK 3.2.0 - */ - typelib_TypeDescriptionReference * pBaseRef; - /** if pBaseRef is null, the member position of this method within - pInterface, not counting members inherited from bases; if pBaseRef is - not null, the index of the direct base within pInterface from which this - method is inherited - - @since UDK 3.2.0 - */ - sal_Int32 nIndex; -} typelib_InterfaceMethodTypeDescription; - -/** The description of an interface attribute. The type class of this description is - typelib_TypeClass_INTERFACE_ATTRIBUTE. The size and the alignment are 0. -*/ -typedef struct _typelib_InterfaceAttributeTypeDescription -{ - /** inherits all members of typelib_InterfaceMemberTypeDescription - */ - typelib_InterfaceMemberTypeDescription aBase; - - /** determines whether attribute is read only - */ - sal_Bool bReadOnly; - /** type of the attribute - */ - typelib_TypeDescriptionReference * pAttributeTypeRef; - - /** the interface description this attribute is a member of - */ - struct _typelib_InterfaceTypeDescription * pInterface; - /** the inherited direct base attribute (null for an attribute that is not - inherited) - - @since UDK 3.2.0 - */ - typelib_TypeDescriptionReference * pBaseRef; - /** if pBaseRef is null, the member position of this attribute within - pInterface, not counting members inherited from bases; if pBaseRef is - not null, the index of the direct base within pInterface from which this - attribute is inherited - - @since UDK 3.2.0 - */ - sal_Int32 nIndex; - /** number of getter exceptions - - @since UDK 3.2.0 - */ - sal_Int32 nGetExceptions; - /** array of getter exception types - - @since UDK 3.2.0 - */ - typelib_TypeDescriptionReference ** ppGetExceptions; - /** number of setter exceptions - - @since UDK 3.2.0 - */ - sal_Int32 nSetExceptions; - /** array of setter exception types - - @since UDK 3.2.0 - */ - typelib_TypeDescriptionReference ** ppSetExceptions; -} typelib_InterfaceAttributeTypeDescription; - -/** Type description of an interface. - - <p>Not all members are always initialized (not yet initialized members being - null); there are three levels:</p> - <ul> - <li>Minimally, only <code>aBase</code>, - <code>pBaseTypeDescription</code>, <code>aUik</code>, - <code>nBaseTypes</code>, and <code>ppBaseTypes</code> are initialized; - <code>aBase.bComplete</code> is false. This only happens when an - interface type description is created with - <code>typelib_static_mi_interface_type_init</code> or - <code>typelib_static_interface_type_init</code>.</li> - - <li>At the next level, <code>nMembers</code>, <code>ppMembers</code>, - <code>nAllMembers</code>, <code>ppAllMembers</code> are also - initialized; <code>aBase.bComplete</code> is still false. This happens - when an interface type description is created with - <code>typelib_typedescription_newMIInterface</code> or - <code>typelib_typedescription_newInterface</code>.</li> - - <li>At the final level, <code>pMapMemberIndexToFunctionIndex</code>, - <code>nMapFunctionIndexToMemberIndex</code>, and - <code>pMapFunctionIndexToMemberIndex</code> are also initialized; - <code>aBase.bComplete</code> is true. This happens after a call to - <code>typelib_typedescription_complete</code>.</li> - </ul> -*/ -typedef struct _typelib_InterfaceTypeDescription -{ - /** inherits all members of typelib_TypeDescription - */ - typelib_TypeDescription aBase; - - /** pointer to base type description, else 0 - - @deprecated - use nBaseTypes and ppBaseTypes instead - */ - struct _typelib_InterfaceTypeDescription * pBaseTypeDescription; - /** unique identifier of interface - */ - typelib_Uik aUik; - /** number of members - */ - sal_Int32 nMembers; - /** array of members; references attributes or methods - */ - typelib_TypeDescriptionReference ** ppMembers; - /** number of members including members of base interface - */ - sal_Int32 nAllMembers; - /** array of members including members of base interface; references attributes or methods - */ - typelib_TypeDescriptionReference ** ppAllMembers; - /** array mapping index of the member description to an index doubling for read-write - attributes (called function index); size of array is nAllMembers - */ - sal_Int32 * pMapMemberIndexToFunctionIndex; - /** number of members plus number of read-write attributes - */ - sal_Int32 nMapFunctionIndexToMemberIndex; - /** array mapping function index to member index; size of arry is nMapFunctionIndexToMemberIndex - */ - sal_Int32 * pMapFunctionIndexToMemberIndex; - /** number of base types - - @since UDK 3.2.0 - */ - sal_Int32 nBaseTypes; - /** array of base type descriptions - - @since UDK 3.2.0 - */ - struct _typelib_InterfaceTypeDescription ** ppBaseTypes; -} typelib_InterfaceTypeDescription; - -/** Init struct of compound members for typelib_typedescription_new(). -*/ -typedef struct _typelib_CompoundMember_Init -{ - /** type class of compound member - */ - typelib_TypeClass eTypeClass; - /** name of type of compound member - - For a member of an instantiated polymorphic struct type that is of - parameterized type, this will be a null pointer. - */ - rtl_uString * pTypeName; - /** name of compound member - */ - rtl_uString * pMemberName; -} typelib_CompoundMember_Init; - -/** - Init struct of members for typelib_typedescription_newStruct(). - - @since UDK 3.2.0 - */ -typedef struct _typelib_StructMember_Init -{ - /** - Derived from typelib_CompoundMember_Init; - */ - typelib_CompoundMember_Init aBase; - - /** - Flag specifying whether the member is of parameterized type (true) or - explict type (false). - */ - sal_Bool bParameterizedType; -} typelib_StructMember_Init; - -/** Init struct of interface methods for typelib_typedescription_new(). -*/ -typedef struct _typelib_Parameter_Init -{ - /** type class of parameter - */ - typelib_TypeClass eTypeClass; - /** name of parameter - */ - rtl_uString * pTypeName; - /** name of parameter - */ - rtl_uString * pParamName; - /** true, if parameter is [in] or [inout] - */ - sal_Bool bIn; - /** true, if parameter is [out] or [inout] - */ - sal_Bool bOut; -} typelib_Parameter_Init; - -/** Init struct of union types for typelib_typedescription_newUnion(). -*/ -typedef struct _typelib_Union_Init -{ - /** union member discriminant - */ - sal_Int64 nDiscriminant; - /** union member name - */ - rtl_uString * pMemberName; - /** union member type - */ - typelib_TypeDescriptionReference* pTypeRef; -} typelib_Union_Init; - -#if defined( SAL_W32) -#pragma pack(pop) -#endif - - -/** Creates a union type description. All discriminants are handled as int64 values. - The pDiscriminantTypeRef must be of type byte, short, ..., up to hyper. - - @param ppRet inout union type description - @param pTypeName name of union type - @param pDiscriminantTypeRef discriminant type - @param nDefaultDiscriminant default discriminant - @param pDefaultTypeRef default value type of union - @param nMembers number of union members - @param pMembers init members -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_newUnion( - typelib_TypeDescription ** ppRet, - rtl_uString * pTypeName, - typelib_TypeDescriptionReference * pDiscriminantTypeRef, - sal_Int64 nDefaultDiscriminant, - typelib_TypeDescriptionReference * pDefaultTypeRef, - sal_Int32 nMembers, - typelib_Union_Init * pMembers ) - SAL_THROW_EXTERN_C(); - -/** Creates an enum type description. - - @param ppRet inout enum type description - @param pTypeName name of enum - @param nDefaultValue default enum value - @param nEnumValues number of enum values - @param ppEnumNames names of enum values - @param pEnumValues enum values -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_newEnum( - typelib_TypeDescription ** ppRet, - rtl_uString * pTypeName, - sal_Int32 nDefaultValue, - sal_Int32 nEnumValues, - rtl_uString ** ppEnumNames, - sal_Int32 * pEnumValues ) - SAL_THROW_EXTERN_C(); - -/** Creates an array type description. - - @param ppRet inout enum type description - @param pElementTypeRef element type - @param nDimensions number of dimensions - @param pDimensions dimensions -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_newArray( - typelib_TypeDescription ** ppRet, - typelib_TypeDescriptionReference * pElementTypeRef, - sal_Int32 nDimensions, - sal_Int32 * pDimensions ) - SAL_THROW_EXTERN_C (); - -/** Creates a new type description. - - Since this function can only be used to create type descriptions for plain - struct types, not for instantiated polymorphic struct types, the function - typelib_typedescription_newStruct should be used instead for all struct - types. - - @param ppRet inout type description - @param eTypeClass type class - @param pTypeName name of type - @param pType sequence, array: element type; - struct, Exception: base type; - @param nMembers number of members if struct, exception - @param pMembers array of members if struct, exception -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_new( - typelib_TypeDescription ** ppRet, - typelib_TypeClass eTypeClass, - rtl_uString * pTypeName, - typelib_TypeDescriptionReference * pType, - sal_Int32 nMembers, - typelib_CompoundMember_Init * pMembers ) - SAL_THROW_EXTERN_C(); - -/** Creates a new struct type description. - - @param ppRet inout type description - @param pTypeName name of type - @param pType base type; - @param nMembers number of members - @param pMembers array of members - - @since UDK 3.2.0 -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_newStruct( - typelib_TypeDescription ** ppRet, - rtl_uString * pTypeName, - typelib_TypeDescriptionReference * pType, - sal_Int32 nMembers, - typelib_StructMember_Init * pMembers ) - SAL_THROW_EXTERN_C(); - -/** Creates an interface type description. - - @param ppRet inout interface type description - @param pTypeName the fully qualified name of the interface. - @param nUik1 uik part - @param nUik2 uik part - @param nUik3 uik part - @param nUik4 uik part - @param nUik5 uik part - @param pBaseInterface base interface type, else 0 - @param nMembers number of members - @param ppMembers members; attributes or methods - - @deprecated - use typelib_typedescription_newMIInterface instead -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_newInterface( - typelib_InterfaceTypeDescription ** ppRet, - rtl_uString * pTypeName, - sal_uInt32 nUik1, sal_uInt16 nUik2, sal_uInt16 nUik3, sal_uInt32 nUik4, sal_uInt32 nUik5, - typelib_TypeDescriptionReference * pBaseInterface, - sal_Int32 nMembers, - typelib_TypeDescriptionReference ** ppMembers ) - SAL_THROW_EXTERN_C(); - -/** Creates a multiple-inheritance interface type description. - - @param ppRet inout interface type description - @param pTypeName the fully qualified name of the interface. - @param nUik1 uik part - @param nUik2 uik part - @param nUik3 uik part - @param nUik4 uik part - @param nUik5 uik part - @param nBaseInterfaces number of base interface types - @param ppBaseInterfaces base interface types - @param nMembers number of members - @param ppMembers members; attributes or methods - - @since UDK 3.2.0 -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_newMIInterface( - typelib_InterfaceTypeDescription ** ppRet, - rtl_uString * pTypeName, - sal_uInt32 nUik1, sal_uInt16 nUik2, sal_uInt16 nUik3, sal_uInt32 nUik4, sal_uInt32 nUik5, - sal_Int32 nBaseInterfaces, - typelib_TypeDescriptionReference ** ppBaseInterfaces, - sal_Int32 nMembers, - typelib_TypeDescriptionReference ** ppMembers ) - SAL_THROW_EXTERN_C(); - -/** Creates an interface method type description. - - @param ppRet inout method type description - @param nAbsolutePosition position of member including all members of base interfaces - @param bOneWay determines whether method is declared oneway - @param pMethodName fully qualified name of method including interface name - @param eReturnTypeClass type class of return type - @param pReturnTypeName type name of the return type - @param nParams number of parameters - @param pParams parameter types - @param nExceptions number of exceptions - @param ppExceptionNames type names of exceptions -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_newInterfaceMethod( - typelib_InterfaceMethodTypeDescription ** ppRet, - sal_Int32 nAbsolutePosition, - sal_Bool bOneWay, - rtl_uString * pMethodName, - typelib_TypeClass eReturnTypeClass, - rtl_uString * pReturnTypeName, - sal_Int32 nParams, - typelib_Parameter_Init * pParams, - sal_Int32 nExceptions, - rtl_uString ** ppExceptionNames ) - SAL_THROW_EXTERN_C(); - -/** Creates an interface attribute type description. - - @param ppRet inout attribute type description - @param nAbsolutePosition position of this attribute including all members of base interfaces - @param pAttributeName fully qualified name of attribute including interface - name - @param eAttributeTypeClass type class of attribute type - @param pAttributeTypeName type name of attribute type - @param bReadOnly determines whether attribute is read-only - - @deprecated - use typelib_typedescription_newExtendedInterfaceAttribute instead -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_newInterfaceAttribute( - typelib_InterfaceAttributeTypeDescription ** ppRet, - sal_Int32 nAbsolutePosition, - rtl_uString * pAttributeName, - typelib_TypeClass eAttributeTypeClass, - rtl_uString * pAttributeTypeName, - sal_Bool bReadOnly ) - SAL_THROW_EXTERN_C(); - -/** Creates an extended interface attribute type description. - - @param ppRet inout attribute type description - @param nAbsolutePosition position of this attribute including all members of - base interfaces - @param pAttributeName fully qualified name of attribute including interface - name - @param eAttributeTypeClass type class of attribute type - @param pAttributeTypeName type name of attribute type - @param bReadOnly determines whether attribute is read-only - @param nGetExceptions number of getter exceptions - @param ppGetExceptionNames type names of getter exceptions - @param nSetExceptions number of setter exceptions - @param ppSetExceptionNames type names of setter exceptions - - @since UDK 3.2.0 -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_newExtendedInterfaceAttribute( - typelib_InterfaceAttributeTypeDescription ** ppRet, - sal_Int32 nAbsolutePosition, - rtl_uString * pAttributeName, - typelib_TypeClass eAttributeTypeClass, - rtl_uString * pAttributeTypeName, - sal_Bool bReadOnly, - sal_Int32 nGetExceptions, rtl_uString ** ppGetExceptionNames, - sal_Int32 nSetExceptions, rtl_uString ** ppSetExceptionNames ) - SAL_THROW_EXTERN_C(); - -/** Increments reference count of given type description. - - @param pDesc type description -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_acquire( - typelib_TypeDescription * pDesc ) - SAL_THROW_EXTERN_C(); - -/** Decrements reference count of given type. If reference count reaches 0, the trype description - is deleted. - - @param pDesc type description -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_release( - typelib_TypeDescription * pDesc ) - SAL_THROW_EXTERN_C(); - -/** Registers a type description and creates a type description reference. Type descriptions - will be registered automatically if they are provided via the callback chain. - - @param ppNewDescription inout description to be registered; -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_register( - typelib_TypeDescription ** ppNewDescription ) - SAL_THROW_EXTERN_C(); - -/** Tests whether two types descriptions are equal, i.e. type class and names are equal. - - @param p1 a type description - @param p2 another type description - @return true, if type descriptions are equal -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL typelib_typedescription_equals( - const typelib_TypeDescription * p1, const typelib_TypeDescription * p2 ) - SAL_THROW_EXTERN_C(); - -/** Retrieves a type description via its fully qualified name. - - @param ppRet inout type description; *ppRet is 0, if type description was not found - @param pName name demanded type description -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_getByName( - typelib_TypeDescription ** ppRet, rtl_uString * pName ) - SAL_THROW_EXTERN_C(); - -/** Sets size of type description cache. - - @param nNewSize new size of cache -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_setCacheSize( - sal_Int32 nNewSize ) - SAL_THROW_EXTERN_C(); - -/** Function pointer declaration of callback function get additional descriptions. Callbacks - must provide complete type descriptions (see typelib_typedescription_complete())! - - @param pContext callback context - @param ppRet inout type description - @param pTypeName name of demanded type description -*/ -typedef void (SAL_CALL * typelib_typedescription_Callback)( - void * pContext, typelib_TypeDescription ** ppRet, rtl_uString * pTypeName ); - -/** Registers callback function providing additional type descriptions. - - @param pContext callback context - @param pCallback callback function -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_registerCallback( - void * pContext, typelib_typedescription_Callback pCallback ) - SAL_THROW_EXTERN_C(); - -/** Revokes a previously registered callback function. - - @param pContext callback context - @param pCallback registered callback function -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescription_revokeCallback( - void * pContext, typelib_typedescription_Callback pCallback ) - SAL_THROW_EXTERN_C(); - - -/*----------------------------------------------------------------------------*/ -/*----------------------------------------------------------------------------*/ -/*----------------------------------------------------------------------------*/ - -/// @cond INTERNAL - -/** Returns true, if the type description reference may lose the type description. Otherwise - pType is a valid pointer and cannot be discarded through the lifetime of this reference. - Remark: If the pWeakObj of the type is set too, you can avoid the call of - ...getDescription(...) and use the description directly. pWeakObj == 0 means, that the - description is not initialized. -*/ -#define TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( eTypeClass ) \ - ((eTypeClass) == typelib_TypeClass_INTERFACE_METHOD || \ - (eTypeClass) == typelib_TypeClass_INTERFACE_ATTRIBUTE) - -/** Gets a description from the reference. The description may not be locked by this call. - You must use the TYPELIB_DANGER_RELEASE macro to release the description fetched with - this macro. -*/ -#define TYPELIB_DANGER_GET( ppDescription, pTypeRef ) \ -{ \ - typelib_TypeDescriptionReference * pMacroTypeRef = (pTypeRef); \ - typelib_TypeDescription ** ppMacroTypeDescr = (ppDescription); \ - if (TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( pMacroTypeRef->eTypeClass )) \ - { \ - typelib_typedescriptionreference_getDescription( ppMacroTypeDescr, pMacroTypeRef ); \ - } \ - else if (!pMacroTypeRef->pType || !pMacroTypeRef->pType->pWeakRef) \ - { \ - typelib_typedescriptionreference_getDescription( ppMacroTypeDescr, pMacroTypeRef ); \ - if (*ppMacroTypeDescr) \ - typelib_typedescription_release( *ppMacroTypeDescr ); \ - } \ - else \ - { \ - *ppMacroTypeDescr = pMacroTypeRef->pType; \ - } \ -} - -/** Releases the description previouse fetched by TYPELIB_DANGER_GET. -*/ -#define TYPELIB_DANGER_RELEASE( pDescription ) \ -{ \ - if (TYPELIB_TYPEDESCRIPTIONREFERENCE_ISREALLYWEAK( (pDescription)->eTypeClass )) \ - typelib_typedescription_release( pDescription ); \ -} - -/// @endcond - -/** Creates a type description reference. This is a weak reference not holding the description. - If the description is already registered, the previous one is returned. - - @param ppTDR inout type description reference - @param eTypeClass type class of type - @param pTypeName name of type -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescriptionreference_new( - typelib_TypeDescriptionReference ** ppTDR, - typelib_TypeClass eTypeClass, - rtl_uString * pTypeName ) - SAL_THROW_EXTERN_C(); - -/** Creates a type description reference. This is a weak reference not holding the description. - If the description is already registered, the previous one is returned. - - @param ppTDR inout type description reference - @param eTypeClass type class of type - @param pTypeName ascii name of type -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescriptionreference_newByAsciiName( - typelib_TypeDescriptionReference ** ppTDR, - typelib_TypeClass eTypeClass, - const sal_Char * pTypeName ) - SAL_THROW_EXTERN_C(); - -/** Increments reference count of type description reference. - - @param pRef type description reference -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescriptionreference_acquire( - typelib_TypeDescriptionReference * pRef ) - SAL_THROW_EXTERN_C(); - -/** Increments reference count of type description reference. If the reference count reaches 0, - then the reference is deleted. - - @param pRef type description reference -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescriptionreference_release( - typelib_TypeDescriptionReference * pRef ) - SAL_THROW_EXTERN_C(); - -/** Retrieves the type description for a given reference. If it is not possible to resolve the - reference, null is returned. - - @param[in,out] ppRet type description - @param[in] pRef type description reference -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescriptionreference_getDescription( - typelib_TypeDescription ** ppRet, typelib_TypeDescriptionReference * pRef ) - SAL_THROW_EXTERN_C(); - -/** Tests whether two types description references are equal, i.e. type class and names are equal. - - @param p1 a type description reference - @param p2 another type description reference - @return true, if type description references are equal -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL typelib_typedescriptionreference_equals( - const typelib_TypeDescriptionReference * p1, const typelib_TypeDescriptionReference * p2 ) - SAL_THROW_EXTERN_C(); - -/** Assigns a type. - - @param ppDest destination type - @param pSource source type -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_typedescriptionreference_assign( - typelib_TypeDescriptionReference ** ppDest, - typelib_TypeDescriptionReference * pSource ) - SAL_THROW_EXTERN_C(); - -/** Tests if values of type pAssignable can be assigned by values of type pFrom. This includes - widening conversion (e.g., long assignable from short), as long as there is no data loss. - - @param pAssignable type description of value to be assigned - @param pFrom type description of value -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL typelib_typedescription_isAssignableFrom( - typelib_TypeDescription * pAssignable, - typelib_TypeDescription * pFrom ) - SAL_THROW_EXTERN_C(); - -/** Tests if values of type pAssignable can be assigned by values of type pFrom. This includes - widening conversion (e.g., long assignable from short), as long as there is no data loss. - - @param pAssignable type of value to be assigned - @param pFrom type of value -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL typelib_typedescriptionreference_isAssignableFrom( - typelib_TypeDescriptionReference * pAssignable, - typelib_TypeDescriptionReference * pFrom ) - SAL_THROW_EXTERN_C(); - -/** Gets static type reference of standard types by type class. - ADDITIONAL OPT: provides Type com.sun.star.uno.Exception for typelib_TypeClass_EXCEPTION - and com.sun.star.uno.XInterface for typelib_TypeClass_INTERFACE. - - Thread synchronizes on typelib mutex. - - @param eTypeClass type class of basic type - @return pointer to type reference pointer -*/ -CPPU_DLLPUBLIC typelib_TypeDescriptionReference ** SAL_CALL typelib_static_type_getByTypeClass( - typelib_TypeClass eTypeClass ) - SAL_THROW_EXTERN_C(); - -/** Inits static type reference. Thread synchronizes on typelib init mutex. - - @param ppRef pointer to type reference pointer - @param eTypeClass type class of type - @param pTypeName ascii name of type -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_static_type_init( - typelib_TypeDescriptionReference ** ppRef, - typelib_TypeClass eTypeClass, const sal_Char * pTypeName ) - SAL_THROW_EXTERN_C(); - -/** Inits static sequence type reference. Thread synchronizes on typelib init mutex. - - @param ppRef pointer to type reference pointer - @param pElementType element type of sequence -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_static_sequence_type_init( - typelib_TypeDescriptionReference ** ppRef, - typelib_TypeDescriptionReference * pElementType ) - SAL_THROW_EXTERN_C (); - -/** Inits static array type reference. Thread synchronizes on typelib init mutex. - - @param ppRef pointer to type reference pointer - @param pElementType element type of sequence - @param nDimensions number of dimensions - @param ... additional sal_Int32 parameter for each dimension -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_static_array_type_init( - typelib_TypeDescriptionReference ** ppRef, - typelib_TypeDescriptionReference * pElementType, - sal_Int32 nDimensions, ... ) - SAL_THROW_EXTERN_C (); - -/** Inits incomplete static compound type reference. Thread synchronizes on typelib init mutex. - - Since this function can only be used to create type descriptions for plain - struct types, not for instantiated polymorphic struct types, the function - typelib_static_struct_type_init should be used instead for all struct types. - - @param ppRef pointer to type reference pointer - @param eTypeClass typelib_TypeClass_STRUCT or typelib_TypeClass_EXCEPTION - @param pTypeName name of type - @param pBaseType base type - @param nMembers number of members - @param ppMembers member types -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_static_compound_type_init( - typelib_TypeDescriptionReference ** ppRef, - typelib_TypeClass eTypeClass, const sal_Char * pTypeName, - typelib_TypeDescriptionReference * pBaseType, - sal_Int32 nMembers, typelib_TypeDescriptionReference ** ppMembers ) - SAL_THROW_EXTERN_C(); - -/** Inits incomplete static struct type reference. - - Thread synchronizes on typelib init mutex. - - @param ppRef pointer to type reference pointer - @param pTypeName name of type - @param pBaseType base type - @param nMembers number of members - @param ppMembers member types - @param pParameterizedTypes flags for direct members, specifying whether they - are of parameterized type (true) or explict type (false); must be null - for a plain struct type - - @since UDK 3.2.0 -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_static_struct_type_init( - typelib_TypeDescriptionReference ** ppRef, const sal_Char * pTypeName, - typelib_TypeDescriptionReference * pBaseType, - sal_Int32 nMembers, typelib_TypeDescriptionReference ** ppMembers, - sal_Bool const * pParameterizedTypes ) - SAL_THROW_EXTERN_C(); - -/** Inits incomplete static interface type reference. Thread synchronizes on typelib init mutex. - - @param ppRef pointer to type reference pointer - @param pTypeName name of interface - @param pBaseType base type -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_static_interface_type_init( - typelib_TypeDescriptionReference ** ppRef, - const sal_Char * pTypeName, - typelib_TypeDescriptionReference * pBaseType ) - SAL_THROW_EXTERN_C(); - -/** Inits incomplete static multiple-inheritance interface type reference. - Thread synchronizes on typelib init mutex. - - @param ppRef pointer to type reference pointer - @param pTypeName name of interface - @param nBaseTypes number of base types - @param ppBaseTypes base types - - @since UDK 3.2.0 -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_static_mi_interface_type_init( - typelib_TypeDescriptionReference ** ppRef, - const sal_Char * pTypeName, - sal_Int32 nBaseTypes, - typelib_TypeDescriptionReference ** ppBaseTypes ) - SAL_THROW_EXTERN_C(); - -/** Inits incomplete static enum type reference. Thread synchronizes on typelib init mutex. - - @param ppRef pointer to type reference pointer - @param pTypeName name of enum - @param nDefaultValue default enum value -*/ -CPPU_DLLPUBLIC void SAL_CALL typelib_static_enum_type_init( - typelib_TypeDescriptionReference ** ppRef, - const sal_Char * pTypeName, - sal_Int32 nDefaultValue ) - SAL_THROW_EXTERN_C(); - -/** Completes a typedescription to be used for, e.g., marshalling values. COMPOUND, UNION, - INTERFACE and ENUM type descriptions may be partly initialized (see typelib_static_...(), - typelib_TypeDescription::bComplete). For interface type descriptions, this will also - init index tables. - - @param ppTypeDescr [inout] type description to be completed (may be exchanged!) - @return true, if type description is complete -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL typelib_typedescription_complete( - typelib_TypeDescription ** ppTypeDescr ) - SAL_THROW_EXTERN_C(); - -#ifdef __cplusplus -} -#endif - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/typelib/typedescription.hxx b/cppu/inc/typelib/typedescription.hxx deleted file mode 100644 index 1026755749f7..000000000000 --- a/cppu/inc/typelib/typedescription.hxx +++ /dev/null @@ -1,216 +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 _TYPELIB_TYPEDESCRIPTION_HXX_ -#define _TYPELIB_TYPEDESCRIPTION_HXX_ - -#include <rtl/alloc.h> -#include <rtl/ustring.hxx> -#include <com/sun/star/uno/Type.h> -#include <typelib/typedescription.h> - - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -/** C++ wrapper for typelib_TypeDescription. - Constructors by name, type, type description reference will get the full type description. - - @see typelib_TypeDescription -*/ -class TypeDescription -{ - /** C typelib type description - */ - mutable typelib_TypeDescription * _pTypeDescr; - -public: - /// @cond INTERNAL - // these are here to force memory de/allocation to sal lib. - inline static void * SAL_CALL operator new ( size_t nSize ) SAL_THROW(()) - { return ::rtl_allocateMemory( nSize ); } - inline static void SAL_CALL operator delete ( void * pMem ) SAL_THROW(()) - { ::rtl_freeMemory( pMem ); } - inline static void * SAL_CALL operator new ( size_t, void * pMem ) SAL_THROW(()) - { return pMem; } - inline static void SAL_CALL operator delete ( void *, void * ) SAL_THROW(()) - {} - /// @endcond - - /** Constructor: - - @param pTypeDescr a type description - */ - inline TypeDescription( typelib_TypeDescription * pTypeDescr = 0 ) SAL_THROW(()); - /** Constructor: - - @param pTypeDescrRef a type description reference - */ - inline TypeDescription( typelib_TypeDescriptionReference * pTypeDescrRef ) SAL_THROW(()); - /** Constructor: - - @param rType a type - */ - inline TypeDescription( const ::com::sun::star::uno::Type & rType ) SAL_THROW(()); - /** Copy constructor: - - @param rDescr another TypeDescription - */ - inline TypeDescription( const TypeDescription & rDescr ) SAL_THROW(()); - /** Constructor: - - @param pTypeName a type name - */ - inline TypeDescription( rtl_uString * pTypeName ) SAL_THROW(()); - /** Constructor: - - @param rTypeName a type name - */ - inline TypeDescription( const ::rtl::OUString & rTypeName ) SAL_THROW(()); - /** Destructor: releases type description - */ - inline ~TypeDescription() SAL_THROW(()); - - /** Assignment operator: acquires given type description and releases a set one. - - @param pTypeDescr another type description - @return this TypeDescription - */ - inline TypeDescription & SAL_CALL operator = ( typelib_TypeDescription * pTypeDescr ) SAL_THROW(()); - /** Assignment operator: acquires given type description and releases a set one. - - @param rTypeDescr another type description - @return this TypeDescription - */ - inline TypeDescription & SAL_CALL operator =( const TypeDescription & rTypeDescr ) SAL_THROW(()) - { return this->operator =( rTypeDescr.get() ); } - - /** Tests whether two type descriptions are equal. - - @param pTypeDescr another type description - @return true, if both type descriptions are equal, false otherwise - */ - inline sal_Bool SAL_CALL equals( const typelib_TypeDescription * pTypeDescr ) const SAL_THROW(()); - /** Tests whether two type descriptions are equal. - - @param rTypeDescr another type description - @return true, if both type descriptions are equal, false otherwise - */ - inline sal_Bool SAL_CALL equals( const TypeDescription & rTypeDescr ) const SAL_THROW(()) - { return equals( rTypeDescr._pTypeDescr ); } - - /** Makes stored type description complete. - */ - inline void SAL_CALL makeComplete() const SAL_THROW(()); - - /** Gets the UNacquired type description pointer. - - @return stored pointer of type description - */ - inline typelib_TypeDescription * SAL_CALL get() const SAL_THROW(()) - { return _pTypeDescr; } - /** Tests if a type description is set. - - @return true, if a type description is set, false otherwise - */ - inline sal_Bool SAL_CALL is() const SAL_THROW(()) - { return (_pTypeDescr != 0); } -}; -//__________________________________________________________________________________________________ -inline TypeDescription::TypeDescription( typelib_TypeDescription * pTypeDescr ) SAL_THROW(()) - : _pTypeDescr( pTypeDescr ) -{ - if (_pTypeDescr) - typelib_typedescription_acquire( _pTypeDescr ); -} -//__________________________________________________________________________________________________ -inline TypeDescription::TypeDescription( typelib_TypeDescriptionReference * pTypeDescrRef ) SAL_THROW(()) - : _pTypeDescr( 0 ) -{ - if (pTypeDescrRef) - typelib_typedescriptionreference_getDescription( &_pTypeDescr, pTypeDescrRef ); -} -//__________________________________________________________________________________________________ -inline TypeDescription::TypeDescription( const ::com::sun::star::uno::Type & rType ) SAL_THROW(()) - : _pTypeDescr( 0 ) -{ - if (rType.getTypeLibType()) - typelib_typedescriptionreference_getDescription( &_pTypeDescr, rType.getTypeLibType() ); -} -//__________________________________________________________________________________________________ -inline TypeDescription::TypeDescription( const TypeDescription & rTypeDescr ) SAL_THROW(()) - : _pTypeDescr( rTypeDescr._pTypeDescr ) -{ - if (_pTypeDescr) - typelib_typedescription_acquire( _pTypeDescr ); -} -//__________________________________________________________________________________________________ -inline TypeDescription::TypeDescription( rtl_uString * pTypeName ) SAL_THROW(()) - : _pTypeDescr( 0 ) -{ - typelib_typedescription_getByName( &_pTypeDescr , pTypeName ); -} -//__________________________________________________________________________________________________ -inline TypeDescription::TypeDescription( const ::rtl::OUString & rTypeName ) SAL_THROW(()) - : _pTypeDescr( 0 ) -{ - typelib_typedescription_getByName( &_pTypeDescr , rTypeName.pData ); -} -//__________________________________________________________________________________________________ -inline TypeDescription::~TypeDescription() SAL_THROW(()) -{ - if (_pTypeDescr) - typelib_typedescription_release( _pTypeDescr ); -} -//__________________________________________________________________________________________________ -inline TypeDescription & TypeDescription::operator = ( typelib_TypeDescription * pTypeDescr ) SAL_THROW(()) -{ - if (pTypeDescr) - typelib_typedescription_acquire( pTypeDescr ); - if (_pTypeDescr) - typelib_typedescription_release( _pTypeDescr ); - _pTypeDescr = pTypeDescr; - return *this; -} -//__________________________________________________________________________________________________ -inline sal_Bool TypeDescription::equals( const typelib_TypeDescription * pTypeDescr ) const SAL_THROW(()) -{ - return (_pTypeDescr && pTypeDescr && - typelib_typedescription_equals( _pTypeDescr, pTypeDescr )); -} -//__________________________________________________________________________________________________ -inline void TypeDescription::makeComplete() const SAL_THROW(()) -{ - if (_pTypeDescr && !_pTypeDescr->bComplete) - ::typelib_typedescription_complete( &_pTypeDescr ); -} - -} -} -} -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/typelib/uik.h b/cppu/inc/typelib/uik.h deleted file mode 100644 index 097f23793ba7..000000000000 --- a/cppu/inc/typelib/uik.h +++ /dev/null @@ -1,45 +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 _TYPELIB_UIK_H_ -#define _TYPELIB_UIK_H_ - -#include <sal/types.h> - -#if defined( SAL_W32) -#pragma pack(push, 8) -#endif - -/** Binary typelib uik struct. Internally not used anymore. -*/ -typedef struct _typelib_Uik -{ - sal_uInt32 m_Data1; - sal_uInt16 m_Data2; - sal_uInt16 m_Data3; - sal_uInt32 m_Data4; - sal_uInt32 m_Data5; -} typelib_Uik; - -#if defined( SAL_W32) -# pragma pack(pop) -#endif - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/Enterable.h b/cppu/inc/uno/Enterable.h deleted file mode 100644 index 29b51f41bb29..000000000000 --- a/cppu/inc/uno/Enterable.h +++ /dev/null @@ -1,106 +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_uno_Enterable_h -#define INCLUDED_uno_Enterable_h - -#include "uno/environment.h" - - -#ifdef __cplusplus -extern "C" -{ -#endif - - -/** Generic function type declaration for entering an Environment. - (http://wiki.services.openoffice.org/wiki/Uno/Binary/Spec/Environment_Stack) - - @param context - @since UDK 3.2.7 -*/ -typedef void uno_Enterable_enter (void * context); - - -/** Generic function type declaration for levaing an Environment. - (http://wiki.services.openoffice.org/wiki/Uno/Binary/Spec/Environment_Stack) - - @param context - @since UDK 3.2.7 -*/ -typedef void uno_Enterable_leave (void * context); - - -/** Generic function type declaration for calling into an Environment. - (http://wiki.services.openoffice.org/wiki/Uno/Binary/Spec/Environment_Stack) - - @param context - @param pCallee the function to be called - @param pParam the parameter pointer to be passed to the function - @since UDK 3.2.7 -*/ -typedef void uno_Enterable_callInto_v(void * context, uno_EnvCallee * pCallee, va_list * pParam); - - -/** Generic function type declaration for calling out of an Environment. - (http://wiki.services.openoffice.org/wiki/Uno/Binary/Spec/Environment_Stack) - - @param context - @param pCallee the function to be called - @param pParam the parameter pointer to be passed to the function - @since UDK 3.2.7 -*/ -typedef void uno_Enterable_callOut_v (void * context, uno_EnvCallee * pCallee, va_list * pParam); - - -/** Generic function type declaration for checking if calling on managed object is - valid. - (http://wiki.services.openoffice.org/wiki/Uno/Binary/Spec/Environment_Stack) - - @param context - @param ppReason the reason, in case calling is not valid - @return 0 == calling is not valid, 1 == calling is valid - @since UDK 3.2.7 -*/ -typedef int uno_Enterable_isValid_v (void * context, rtl_uString ** ppReason); - - -/** A struct pReserved needs to point to, if implementing a purpose environment. - (http://wiki.services.openoffice.org/wiki/Uno/Binary/Spec/Environment_Stack) - - @since UDK 3.2.7 -*/ -typedef struct -{ - uno_Enterable_enter * m_enter; - uno_Enterable_leave * m_leave; - uno_Enterable_callInto_v * m_callInto_v; - uno_Enterable_callOut_v * m_callOut_v; - uno_Enterable_isValid_v * m_isValid; -} -uno_Enterable; - - -#ifdef __cplusplus -} -#endif - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/EnvDcp.h b/cppu/inc/uno/EnvDcp.h deleted file mode 100644 index 0dd327dea4c6..000000000000 --- a/cppu/inc/uno/EnvDcp.h +++ /dev/null @@ -1,58 +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_uno_EnvDcp_h -#define INCLUDED_uno_EnvDcp_h - -#include <cppu/cppudllapi.h> -#include "rtl/ustring.h" - -#ifdef __cplusplus -extern "C" -{ -#endif - -/** Get the OBI type part of an environment descriptor. - (http://wiki.services.openoffice.org/wiki/Uno/Binary/Spec/Environment_Descriptor) - - @param pEnvDcp the Environment Descriptor - @param ppEnvTypeName the OBI type - @since UDK 3.2.7 -*/ -CPPU_DLLPUBLIC void uno_EnvDcp_getTypeName(rtl_uString const * pEnvDcp, rtl_uString ** ppEnvTypeName); - - -/** Get the purpose part of an environment descriptor. - (http://wiki.services.openoffice.org/wiki/Uno/Binary/Spec/Environment_Descriptor) - - @param pEnvDcp the Environment Descriptor - @param ppEnvPurpose the purpose - @since UDK 3.2.7 -*/ -CPPU_DLLPUBLIC void uno_EnvDcp_getPurpose (rtl_uString const * pEnvDcp, rtl_uString ** ppEnvPurpose); - - -#ifdef __cplusplus -} -#endif - - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/any2.h b/cppu/inc/uno/any2.h deleted file mode 100644 index e18087a165e5..000000000000 --- a/cppu/inc/uno/any2.h +++ /dev/null @@ -1,170 +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 _UNO_ANY2_H_ -#define _UNO_ANY2_H_ - -#include <cppu/cppudllapi.h> -#include <uno/data.h> - -#ifdef __cplusplus -extern "C" -{ -#endif - -#if defined( SAL_W32) -#pragma pack(push, 8) -#endif - -struct _typelib_TypeDescriptionReference; -struct _typelib_TypeDescription; -struct _uno_Mapping; - -/** This is the binary specification of an UNO any. -*/ -typedef struct _uno_Any -{ - /** type of value - */ - struct _typelib_TypeDescriptionReference * pType; - /** pointer to value; this may point to pReserved and thus the uno_Any is not anytime - mem-copyable! You may have to correct the pData pointer to pReserved. Otherwise you need - not, because the data is stored in heap space. - */ - void * pData; - /** reserved space for storing value - */ - void * pReserved; -} uno_Any; - -#if defined( SAL_W32) -#pragma pack(pop) -#endif - -/** Assign an any with a given value. Interfaces are acquired or released by the given callback - functions. - - @param pDest pointer memory of destination any - @param pSource pointer to source value; defaults (0) to default constructed value - @param pTypeDescr type description of value; defaults (0) to void - @param acquire function called each time an interface needs to be acquired; - defaults (0) to uno - @param release function called each time an interface needs to be released; - defaults (0) to uno -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_any_assign( - uno_Any * pDest, void * pSource, - struct _typelib_TypeDescription * pTypeDescr, - uno_AcquireFunc acquire, uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); -/** Assign an any with a given value. Interfaces are acquired or released by the given callback - functions. - - @param pDest pointer memory of destination any - @param pSource pointer to source value; defaults (0) to default constructed value - @param pType type description of value; defaults (0) to void - @param acquire function called each time an interface needs to be acquired; - defaults (0) to uno - @param release function called each time an interface needs to be released; - defaults (0) to uno -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_type_any_assign( - uno_Any * pDest, void * pSource, - struct _typelib_TypeDescriptionReference * pType, - uno_AcquireFunc acquire, uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); - -/** Constructs an any with a given value. Interfaces are acquired by the given callback function. - - @param pDest pointer memory of destination any - @param pSource pointer to source value; defaults (0) to default constructed value - @param pTypeDescr type description of value; defaults (0) to void - @param acquire function called each time an interface needs to be acquired; - defaults (0) to uno -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_any_construct( - uno_Any * pDest, void * pSource, - struct _typelib_TypeDescription * pTypeDescr, - uno_AcquireFunc acquire ) - SAL_THROW_EXTERN_C(); -/** Constructs an any with a given value. Interfaces are acquired by the given callback function. - - @param pDest pointer memory of destination any - @param pSource pointer to source value; defaults (0) to default constructed value - @param pType type of value; defaults (0) to void - @param acquire function called each time an interface needs to be acquired; - defaults (0) to uno -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_type_any_construct( - uno_Any * pDest, void * pSource, - struct _typelib_TypeDescriptionReference * pType, - uno_AcquireFunc acquire ) - SAL_THROW_EXTERN_C(); - -/** Constructs an any with a given value and converts/ maps interfaces. - - @param pDest pointer memory of destination any - @param pSource pointer to source value; defaults (0) to default constructed value - @param pTypeDescr type description of value; defaults (0) to void - @param mapping mapping to convert/ map interfaces -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_any_constructAndConvert( - uno_Any * pDest, void * pSource, - struct _typelib_TypeDescription * pTypeDescr, - struct _uno_Mapping * mapping ) - SAL_THROW_EXTERN_C(); -/** Constructs an any with a given value and converts/ maps interfaces. - - @param pDest pointer memory of destination any - @param pSource pointer to source value; defaults (0) to default constructed value - @param pType type of value; defaults (0) to void - @param mapping mapping to convert/ map interfaces -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_type_any_constructAndConvert( - uno_Any * pDest, void * pSource, - struct _typelib_TypeDescriptionReference * pType, - struct _uno_Mapping * mapping ) - SAL_THROW_EXTERN_C(); - -/** Destructs an any. - - @param pValue pointer to any - @param release function called each time an interface needs to be released; - defaults (0) to uno -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_any_destruct( - uno_Any * pValue, uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); - -/** Sets value to void. - - @param pValue pointer to any - @param release function called each time an interface needs to be released; - defaults (0) to uno -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_any_clear( - uno_Any * pValue, uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); - -#ifdef __cplusplus -} -#endif - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/current_context.h b/cppu/inc/uno/current_context.h deleted file mode 100644 index 18adfe84b45e..000000000000 --- a/cppu/inc/uno/current_context.h +++ /dev/null @@ -1,63 +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 _UNO_CURRENT_CONTEXT_H_ -#define _UNO_CURRENT_CONTEXT_H_ - -#include <cppu/cppudllapi.h> -#include <rtl/ustring.h> - -#ifdef __cplusplus -extern "C" -{ -#endif - -/** Gets the current task's context. - @attention - Don't spread the returned interface around to other threads. Every thread has its own - current context. - - @param ppCurrentContext inout param current context of type com.sun.star.uno.XCurrentContext - @param pEnvDcp descriptor of returned interface's environment - @param pEnvContext context of returned interface's environment (commonly 0) - @return true, if context ref was transferred (even if null ref) -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_getCurrentContext( - void ** ppCurrentContext, - rtl_uString * pEnvDcp, void * pEnvContext ) - SAL_THROW_EXTERN_C(); - -/** Sets the current task's context. - - @param pCurrentContext in param current context of type com.sun.star.uno.XCurrentContext - @param pEnvDcp descriptor of interface's environment - @param pEnvContext context of interface's environment (commonly 0) - @return true, if context ref was transferred (even if null ref) -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_setCurrentContext( - void * pCurrentContext, - rtl_uString * pEnvDcp, void * pEnvContext ) - SAL_THROW_EXTERN_C(); - -#ifdef __cplusplus -} -#endif - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/current_context.hxx b/cppu/inc/uno/current_context.hxx deleted file mode 100644 index 5812db74700c..000000000000 --- a/cppu/inc/uno/current_context.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 _UNO_CURRENT_CONTEXT_HXX_ -#define _UNO_CURRENT_CONTEXT_HXX_ - -#include <uno/current_context.h> - -#include <com/sun/star/uno/XCurrentContext.hpp> - - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -/** Getting the current context. - @attention - Don't spread the returned interface around to other threads. Every thread has its own - current context. - - @return current context or null ref, if none is set -*/ -inline Reference< XCurrentContext > SAL_CALL getCurrentContext() - SAL_THROW(()) -{ - Reference< XCurrentContext > xRet; - ::rtl::OUString aEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ); - ::uno_getCurrentContext( (void **)&xRet, aEnvTypeName.pData, 0 ); - return xRet; -} -/** Setting the current context. - - @param xContext current context to be set - @return true, if context has been successfully set -*/ -inline bool SAL_CALL setCurrentContext( - Reference< XCurrentContext > const & xContext ) - SAL_THROW(()) -{ - ::rtl::OUString aEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ); - return (::uno_setCurrentContext( xContext.get(), aEnvTypeName.pData, 0 ) != sal_False); -} - -/** Objects of this class are used for applying a current context until they are destructed, i.e. - the ctor of this class saves the previous and sets the given context while the dtor restores - the previous one upon destruction. -*/ -class ContextLayer -{ - /** this C++ environment type name. - */ - ::rtl::OUString m_aEnvTypeName; - /** previous context - */ - Reference< XCurrentContext > m_xPreviousContext; - -public: - /** Constructor: Saves the previous context and sets the new (given) one. - - @param xNewContext new context to be set - */ - inline ContextLayer( - Reference< XCurrentContext > const & xNewContext = Reference< XCurrentContext >() ) - SAL_THROW(()); - /** Destructor: restores the previous context. - */ - inline ~ContextLayer() SAL_THROW(()); - - /** Gets the previously set context. - - @return the previously set context - */ - inline Reference< XCurrentContext > SAL_CALL getPreviousContext() const - SAL_THROW(()) - { return m_xPreviousContext; } -}; -//__________________________________________________________________________________________________ -inline ContextLayer::ContextLayer( Reference< XCurrentContext > const & xNewContext ) - SAL_THROW(()) - : m_aEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ) -{ - ::uno_getCurrentContext( (void **)&m_xPreviousContext, m_aEnvTypeName.pData, 0 ); - ::uno_setCurrentContext( xNewContext.get(), m_aEnvTypeName.pData, 0 ); -} -//__________________________________________________________________________________________________ -inline ContextLayer::~ContextLayer() - SAL_THROW(()) -{ - ::uno_setCurrentContext( m_xPreviousContext.get(), m_aEnvTypeName.pData, 0 ); -} - -} -} -} -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/data.h b/cppu/inc/uno/data.h deleted file mode 100644 index 9454ba9012d5..000000000000 --- a/cppu/inc/uno/data.h +++ /dev/null @@ -1,251 +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 _UNO_DATA_H_ -#define _UNO_DATA_H_ - -#include <cppu/cppudllapi.h> - -#ifdef __cplusplus -extern "C" -{ -#endif - -struct _typelib_TypeDescriptionReference; -struct _typelib_TypeDescription; -struct _typelib_InterfaceTypeDescription; -struct _uno_Mapping; - -/** Generic function pointer declaration to query for an interface. - - @param pInterface interface - @param pTypedemanded interface type - @return interface pointer -*/ -typedef void * (SAL_CALL * uno_QueryInterfaceFunc)( - void * pInterface, struct _typelib_TypeDescriptionReference * pType ); -/** Generic function pointer declaration to acquire an interface. - - @param pInterface interface to be acquired -*/ -typedef void (SAL_CALL * uno_AcquireFunc)( - void * pInterface ); -/** Generic function pointer declaration to release an interface. - - @param pInterface interface to be release -*/ -typedef void (SAL_CALL * uno_ReleaseFunc)( - void * pInterface ); - -/** Tests if two values are equal. May compare different types (e.g., short to long). - - @param pVal1 pointer to a value - @param pVal1TypeDescr type description of pVal1 - @param pVal2 pointer to another value - @param pVal2TypeDescr type description of pVal2 - @param queryInterface function called each time two interfaces are tested whether they belong - to the same object; defaults (0) to uno - @param release function to release queried interfaces; defaults (0) to uno - @return true if values are equal -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_equalData( - void * pVal1, struct _typelib_TypeDescription * pVal1TypeDescr, - void * pVal2, struct _typelib_TypeDescription * pVal2TypeDescr, - uno_QueryInterfaceFunc queryInterface, uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); -/** Tests if two values are equal. May compare different types (e.g., short to long). - - @param pVal1 pointer to a value - @param pVal1Type type of pVal1 - @param pVal2 pointer to another value - @param pVal2Type type of pVal2 - @param queryInterface function called each time two interfaces are tested whether they belong - to the same object; defaults (0) to uno - @param release function to release queried interfaces; defaults (0) to uno - @return true if values are equal -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_type_equalData( - void * pVal1, struct _typelib_TypeDescriptionReference * pVal1Type, - void * pVal2, struct _typelib_TypeDescriptionReference * pVal2Type, - uno_QueryInterfaceFunc queryInterface, uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); - -/** Copy construct memory with given value. The size of the destination value must be larger - or equal to the size of the source value. - - @param pDest pointer to destination value memory - @param pSource pointer to source value - @param pTypeDescr type description of source - @param acquire function called each time an interface needs to be acquired; - defaults (0) to uno -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_copyData( - void * pDest, void * pSource, - struct _typelib_TypeDescription * pTypeDescr, uno_AcquireFunc acquire ) - SAL_THROW_EXTERN_C(); -/** Copy construct memory with given value. The size of the destination value must be larger - or equal to the size of the source value. - - @param pDest pointer to destination value memory - @param pSource pointer to source value - @param pType type of source - @param acquire function called each time an interface needs to be acquired; - defaults (0) to uno -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_type_copyData( - void * pDest, void * pSource, - struct _typelib_TypeDescriptionReference * pType, uno_AcquireFunc acquire ) - SAL_THROW_EXTERN_C(); - -/** Copy construct memory with given value. The size of the destination value must be larger - or equal to the size of the source value. Interfaces are converted/ mapped by mapping parameter. - - @param pDest pointer to destination value memory - @param pSource pointer to source value - @param pTypeDescr type description of source - @param mapping mapping to convert/ map interfaces -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_copyAndConvertData( - void * pDest, void * pSource, - struct _typelib_TypeDescription * pTypeDescr, struct _uno_Mapping * mapping ) - SAL_THROW_EXTERN_C(); -/** Copy construct memory with given value. The size of the destination value must be larger - or equal to the size of the source value. Interfaces are converted/ mapped by mapping parameter. - - @param pDest pointer to destination value memory - @param pSource pointer to source value - @param pType type of source - @param mapping mapping to convert/ map interfaces -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_type_copyAndConvertData( - void * pDest, void * pSource, - struct _typelib_TypeDescriptionReference * pType, struct _uno_Mapping * mapping ) - SAL_THROW_EXTERN_C(); - -/** Destructs a given value; does NOT free its memory! - - @param pValue value to be destructed - @param pTypeDescr type description of value - @param release function called each time an interface pointer needs to be released; - defaults (0) to uno -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_destructData( - void * pValue, struct _typelib_TypeDescription * pTypeDescr, uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); -/** Destructs a given value; does NOT free its memory! - - @param pValue value to be destructed - @param pType type of value - @param release function called each time an interface pointer needs to be released; - defaults (0) to uno -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_type_destructData( - void * pValue, struct _typelib_TypeDescriptionReference * pType, uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); - -/** Default constructs a value. All simple types are set to 0, enums are set to their default value. - - @param pMem pointer to memory of value to be constructed - @param pTypeDescr type description of value to be constructed -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_constructData( - void * pMem, struct _typelib_TypeDescription * pTypeDescr ) - SAL_THROW_EXTERN_C(); -/** Default constructs a value. All simple types are set to 0, enums are set to their default value. - - @param pMem pointer to memory of value to be constructed - @param pType type of value to be constructed -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_type_constructData( - void * pMem, struct _typelib_TypeDescriptionReference * pType ) - SAL_THROW_EXTERN_C(); - -/** Assigns a destination value with a source value. - Widening conversion WITHOUT data loss is allowed (e.g., assigning a long with a short). - Querying for demanded interface type is allowed. - Assignment from any value to a value of type Any and vice versa is allowed. - - @param pDest pointer to destination value - @param pDestTypeDescr type description of destination value - @param pSource pointer to source value; if 0, then destination value will be assigned - to default value - @param pSourceTypeDescr type destination of source value - @param queryInterface function called each time an interface needs to be queried; - defaults (0) to uno - @param acquire function called each time an interface needs to be acquired; - defaults (0) to uno - @param release function called each time an interface needs to be released; - defaults (0) to uno - @return true if destination has been successfully assigned -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_assignData( - void * pDest, struct _typelib_TypeDescription * pDestTypeDescr, - void * pSource, struct _typelib_TypeDescription * pSourceTypeDescr, - uno_QueryInterfaceFunc queryInterface, uno_AcquireFunc acquire, uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); -/** Assigns a destination value with a source value. - Widening conversion WITHOUT data loss is allowed (e.g., assigning a long with a short). - Querying for demanded interface type is allowed. - Assignment from any value to a value of type Any and vice versa is allowed. - - @param pDest pointer to destination value - @param pDestType type of destination value - @param pSource pointer to source value; if 0, then destination value will be assigned - to default value - @param pSourceType type of source value - @param queryInterface function called each time an interface needs to be queried; - defaults (0) to uno - @param acquire function called each time an interface needs to be acquired; - defaults (0) to uno - @param release function called each time an interface needs to be released; - defaults (0) to uno - @return true if destination has been successfully assigned -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_type_assignData( - void * pDest, struct _typelib_TypeDescriptionReference * pDestType, - void * pSource, struct _typelib_TypeDescriptionReference * pSourceType, - uno_QueryInterfaceFunc queryInterface, uno_AcquireFunc acquire, uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); - -/** Tests whether a value of given type is assignable from given value. - Widening conversion WITHOUT data loss is allowed (e.g., assigning a long with a short). - Querying for demanded interface type is allowed. - Assignment from any value to a value of type Any and vice versa is allowed. - - @param pAssignable type - @param pFrom pointer to value - @param pFromType type of value - @param queryInterface function called each time an interface needs to be queried; - defaults (0) to uno - @param release function called each time an interface needs to be released; - defaults (0) to uno - @return true if value is destination has been successfully assigned -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_type_isAssignableFromData( - struct _typelib_TypeDescriptionReference * pAssignable, - void * pFrom, struct _typelib_TypeDescriptionReference * pFromType, - uno_QueryInterfaceFunc queryInterface, uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); - -#ifdef __cplusplus -} -#endif - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/dispatcher.h b/cppu/inc/uno/dispatcher.h deleted file mode 100644 index 4008f7c1e360..000000000000 --- a/cppu/inc/uno/dispatcher.h +++ /dev/null @@ -1,89 +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 _UNO_DISPATCHER_H_ -#define _UNO_DISPATCHER_H_ - -#include <sal/types.h> -#include <rtl/ustring.h> -#include <uno/any2.h> - -#ifdef __cplusplus -extern "C" -{ -#endif - -struct _typelib_TypeDescription; -struct _uno_Interface; - -/** Function pointer declaration for the binary C uno dispatch function. Any pure out or return - value will be constructed by the callee, iff no exception is signalled. - If an exception is signalled, the any *ppException is properly constructed by the callee, - otherwise the pointer *ppException is set to 0. - An attribute get call is indicated by a non-null return pointer. - - @param pUnoI uno interface the call is performed on - @param pMemberType member type description of a method or attribute - @param pReturn pointer to return value memory; - pointer may be undefined if void method, null if attribute set call. - @param pArgs an array of pointers to arguments values. - (remark: the value of an interface reference stores a - uno_interface *, so you get it by *(uno_Interface **)pArgs[n]) - @param ppException pointer to pointer to unconstructed any to signal an exception. -*/ -typedef void (SAL_CALL * uno_DispatchMethod)( - struct _uno_Interface * pUnoI, - const struct _typelib_TypeDescription * pMemberType, - void * pReturn, - void * pArgs[], - uno_Any ** ppException ); - -#if defined( SAL_W32) -#pragma pack(push, 8) -#endif - -/** The binary C uno interface description. -*/ -typedef struct _uno_Interface -{ - /** Acquires uno interface. - - @param pInterface uno interface - */ - void (SAL_CALL * acquire)( struct _uno_Interface * pInterface ); - /** Releases uno interface. - - @param pInterface uno interface - */ - void (SAL_CALL * release)( struct _uno_Interface * pInterface ); - /** dispatch function - */ - uno_DispatchMethod pDispatcher; -} uno_Interface; - -#if defined( SAL_W32) -#pragma pack(pop) -#endif - -#ifdef __cplusplus -} -#endif - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/dispatcher.hxx b/cppu/inc/uno/dispatcher.hxx deleted file mode 100644 index 4fb7cced4626..000000000000 --- a/cppu/inc/uno/dispatcher.hxx +++ /dev/null @@ -1,171 +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_UNO_DISPATCHER_HXX -#define INCLUDED_UNO_DISPATCHER_HXX - -#include "uno/dispatcher.h" - -/// @cond INTERNAL - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -/** C++ holder reference for binary C uno_Interface. Not for public use, may be - subject to changes. - - @see uno_Interface - @attention - not for public use! -*/ -class UnoInterfaceReference -{ -public: - uno_Interface * m_pUnoI; - - inline bool is() const - { return m_pUnoI != 0; } - - inline ~UnoInterfaceReference(); - inline UnoInterfaceReference(); - inline UnoInterfaceReference( uno_Interface * pUnoI, __sal_NoAcquire ); - inline UnoInterfaceReference( uno_Interface * pUnoI ); - inline UnoInterfaceReference( UnoInterfaceReference const & ref ); - - inline uno_Interface * get() const - { return m_pUnoI; } - - inline UnoInterfaceReference & set( - uno_Interface * pUnoI ); - inline UnoInterfaceReference & set( - uno_Interface * pUnoI, __sal_NoAcquire ); - inline void clear(); - - inline UnoInterfaceReference & operator = ( - UnoInterfaceReference const & ref ) - { return set( ref.m_pUnoI ); } - inline UnoInterfaceReference & operator = ( - uno_Interface * pUnoI ) - { return set( pUnoI ); } - - inline void dispatch( - struct _typelib_TypeDescription const * pMemberType, - void * pReturn, void * pArgs [], uno_Any ** ppException ) const; - -private: - inline bool operator == ( UnoInterfaceReference const & ); // not impl - inline bool operator != ( UnoInterfaceReference const & ); // not impl - inline bool operator == ( uno_Interface * ); // not impl - inline bool operator != ( uno_Interface * ); // not impl -}; - -//______________________________________________________________________________ -inline UnoInterfaceReference::~UnoInterfaceReference() -{ - if (m_pUnoI != 0) - (*m_pUnoI->release)( m_pUnoI ); -} - -//______________________________________________________________________________ -inline UnoInterfaceReference::UnoInterfaceReference() - : m_pUnoI( 0 ) -{ -} - -//______________________________________________________________________________ -inline UnoInterfaceReference::UnoInterfaceReference( - uno_Interface * pUnoI, __sal_NoAcquire ) - : m_pUnoI( pUnoI ) -{ -} - -//______________________________________________________________________________ -inline UnoInterfaceReference::UnoInterfaceReference( uno_Interface * pUnoI ) - : m_pUnoI( pUnoI ) -{ - if (m_pUnoI != 0) - (*m_pUnoI->acquire)( m_pUnoI ); -} - -//______________________________________________________________________________ -inline UnoInterfaceReference::UnoInterfaceReference( - UnoInterfaceReference const & ref ) - : m_pUnoI( ref.m_pUnoI ) -{ - if (m_pUnoI != 0) - (*m_pUnoI->acquire)( m_pUnoI ); -} - -//______________________________________________________________________________ -inline UnoInterfaceReference & UnoInterfaceReference::set( - uno_Interface * pUnoI ) -{ - if (pUnoI != 0) - (*pUnoI->acquire)( pUnoI ); - if (m_pUnoI != 0) - (*m_pUnoI->release)( m_pUnoI ); - m_pUnoI = pUnoI; - return *this; -} - -//______________________________________________________________________________ -inline UnoInterfaceReference & UnoInterfaceReference::set( - uno_Interface * pUnoI, __sal_NoAcquire ) -{ - if (m_pUnoI != 0) - (*m_pUnoI->release)( m_pUnoI ); - m_pUnoI = pUnoI; - return *this; -} - -//______________________________________________________________________________ -inline void UnoInterfaceReference::clear() -{ - if (m_pUnoI != 0) - { - (*m_pUnoI->release)( m_pUnoI ); - m_pUnoI = 0; - } -} - -//______________________________________________________________________________ -inline void UnoInterfaceReference::dispatch( - struct _typelib_TypeDescription const * pMemberType, - void * pReturn, void * pArgs [], uno_Any ** ppException ) const -{ - (*m_pUnoI->pDispatcher)( - m_pUnoI, pMemberType, pReturn, pArgs, ppException ); -} - -} -} -} -} - -/// @endcond - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/environment.h b/cppu/inc/uno/environment.h deleted file mode 100644 index e76ed2fc7ba6..000000000000 --- a/cppu/inc/uno/environment.h +++ /dev/null @@ -1,386 +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 _UNO_ENVIRONMENT_H_ -#define _UNO_ENVIRONMENT_H_ - -#include <cppu/cppudllapi.h> -#include <rtl/ustring.h> - -#include <stdarg.h> - -#ifdef __cplusplus -extern "C" -{ -#endif - -struct _uno_ExtEnvironment; -struct _typelib_InterfaceTypeDescription; - -#if defined( SAL_W32) -#pragma pack(push, 8) -#endif - -/** The binary specification of an UNO environment. -*/ -typedef struct _uno_Environment -{ - /** reserved for future use (0 if not used) - */ - void * pReserved; - - /** type name of environment - */ - rtl_uString * pTypeName; - - /** free context pointer to be used for specific classes of environments (e.g., a jvm pointer) - */ - void * pContext; - - /** pointer to extended environment (interface registration functionality), if supported - */ - struct _uno_ExtEnvironment * pExtEnv; - - /** Acquires this environment. - - @param pEnv this environment - */ - void (SAL_CALL * acquire)( struct _uno_Environment * pEnv ); - - /** Releases this environment; last release of environment will revoke the environment from - runtime. - - @param pEnv this environment - */ - void (SAL_CALL * release)( struct _uno_Environment * pEnv ); - - /** Acquires this environment weakly. You can only harden a weakly held environment if it - is still acquired hard (acquire()). - - @param pEnv this environment - */ - void (SAL_CALL * acquireWeak)( struct _uno_Environment * pEnv ); - - /** Releases this environment weakly in correspondence to acquireWeak(). - - @param pEnv this environment - */ - void (SAL_CALL * releaseWeak)( struct _uno_Environment * pEnv ); - - /** Makes hard reference out of weak referenced environment. You can only harden a weakly - held environment if it is still acquired hard (acquire()). - - @param ppHardEnv inout hard referenced environment (has to be released via release()) - @param pEnv environment (may be weak referenced) - */ - void (SAL_CALL * harden)( - struct _uno_Environment ** ppHardEnv, - struct _uno_Environment * pEnv ); - - /** Call this function to EXPLICITLY dispose this environment (e.g., release all - interfaces). You may want to call this function before shutting down due to a runtime error. - - @param pEnv this environment - */ - void (SAL_CALL * dispose)( struct _uno_Environment * pEnv ); - - /* ===== the following part will be late initialized by a matching bridge ===== * - * ===== and is NOT for public use. ===== */ - - /** CALLBACK function pointer: Disposing callback function pointer that can be set to get - signalled before the environment is destroyed. - - @param pEnv environment that is being disposed - */ - void (SAL_CALL * environmentDisposing)( struct _uno_Environment * pEnv ); -} uno_Environment; - -/** Generic function pointer declaration to free a proxy object if it is not needed by the - environment anymore. - Any proxy object must register itself on first acquire() call and revoke itself on last - release() call. This can happen several times because the environment caches proxy objects - until the environment explicitly frees the proxy object calling this function. - - @param pEnv environment - @param pProxy proxy pointer -*/ -typedef void (SAL_CALL * uno_freeProxyFunc)( struct _uno_ExtEnvironment * pEnv, void * pProxy ); - -/** Generic function pointer declaration to allocate memory. Used with getRegisteredInterfaces(). - - @param nBytes amount of memory in bytes - @return pointer to allocated memory -*/ -typedef void * (SAL_CALL * uno_memAlloc)( sal_Size nBytes ); - -/** The binary specification of an UNO environment supporting interface registration. -*/ -typedef struct _uno_ExtEnvironment -{ - /** inherits all members of an uno_Environment - */ - uno_Environment aBase; - - /** Registers an interface of this environment. - - @param pEnv this environment - @param ppInterface inout parameter of interface to be registered - @param pOId object id of interface - @param pTypeDescr type description of interface - */ - void (SAL_CALL * registerInterface)( - struct _uno_ExtEnvironment * pEnv, - void ** ppInterface, - rtl_uString * pOId, - struct _typelib_InterfaceTypeDescription * pTypeDescr ); - - /** Registers a proxy interface of this environment that can be reanimated and is freed - explicitly by this environment. - - @param pEnv this environment - @param ppInterface inout parameter of interface to be registered - @param freeProxy function to free proxy object - @param pOId object id of interface - @param pTypeDescr type description of interface - */ - void (SAL_CALL * registerProxyInterface)( - struct _uno_ExtEnvironment * pEnv, - void ** ppProxy, - uno_freeProxyFunc freeProxy, - rtl_uString * pOId, - struct _typelib_InterfaceTypeDescription * pTypeDescr ); - - /** Revokes an interface from this environment. You have to revoke any interface that has - been registered via this method. - - @param pEnv this environment - @param pInterface interface to be revoked - */ - void (SAL_CALL * revokeInterface)( - struct _uno_ExtEnvironment * pEnv, - void * pInterface ); - - /** Provides the object id of a given interface. - - @param ppOut inout oid - @param pInterface interface of object - */ - void (SAL_CALL * getObjectIdentifier)( - struct _uno_ExtEnvironment * pEnv, - rtl_uString ** ppOId, - void * pInterface ); - - /** Retrieves an interface identified by its object id and type from this environment. - Interfaces are retrieved in the same order as they are registered. - - @param pEnv this environment - @param ppInterface inout parameter for the registered interface; (0) if none was found - @param pOId object id of interface to be retrieved - @param pTypeDescr type description of interface to be retrieved - */ - void (SAL_CALL * getRegisteredInterface)( - struct _uno_ExtEnvironment * pEnv, - void ** ppInterface, - rtl_uString * pOId, - struct _typelib_InterfaceTypeDescription * pTypeDescr ); - - /** Returns all currently registered interfaces of this environment. The memory block - allocated might be slightly larger than (*pnLen * sizeof(void *)). - - @param pEnv this environment - @param pppInterfaces out param; pointer to array of interface pointers - @param pnLen out param; length of array - @param memAlloc function for allocating memory that is passed back - */ - void (SAL_CALL * getRegisteredInterfaces)( - struct _uno_ExtEnvironment * pEnv, - void *** pppInterfaces, - sal_Int32 * pnLen, - uno_memAlloc memAlloc ); - - /* ===== the following part will be late initialized by a matching bridge ===== */ - - /** Computes an object id of the given interface; is called by the environment implementation. - - @param pEnv corresponding environment - @param ppOId out param: computed id - @param pInterface an interface - */ - void (SAL_CALL * computeObjectIdentifier)( - struct _uno_ExtEnvironment * pEnv, - rtl_uString ** ppOId, void * pInterface ); - - /** Function to acquire an interface. - - @param pEnv corresponding environment - @param pInterface an interface - */ - void (SAL_CALL * acquireInterface)( - struct _uno_ExtEnvironment * pEnv, - void * pInterface ); - - /** Function to release an interface. - - @param pEnv corresponding environment - @param pInterface an interface - */ - void (SAL_CALL * releaseInterface)( - struct _uno_ExtEnvironment * pEnv, - void * pInterface ); - -} uno_ExtEnvironment; - -#if defined( SAL_W32) -#pragma pack(pop) -#endif - -/** Function exported by some bridge library providing acquireInterface(), releaseInterface(); - may set a disposing callback. - - @param pEnv environment to be initialized -*/ -typedef void (SAL_CALL * uno_initEnvironmentFunc)( uno_Environment * pEnv ); -#define UNO_INIT_ENVIRONMENT "uno_initEnvironment" - -#ifdef DISABLE_DYNLOADING -/* We link statically and have just the C++ environment */ -void SAL_CALL CPPU_ENV_uno_initEnvironment( uno_Environment * Env ) - SAL_THROW_EXTERN_C(); -#ifdef SOLAR_JAVA -/* We also have the Java environment */ -void SAL_CALL java_uno_initEnvironment( uno_Environment * Env ) - SAL_THROW_EXTERN_C(); -#endif -#endif - -/** Gets a specific environment. If the specified environment does not exist, then a default one - is created and registered. The environment revokes itself on last release() call. - - @param ppEnv inout parameter of environment; given environment will be released - @param pEnvDcp descriptor of environment - @param pContext some context pointer (e.g., to distinguish java vm; set 0 if not needed) -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_getEnvironment( - uno_Environment ** ppEnv, rtl_uString * pEnvDcp, void * pContext ) - SAL_THROW_EXTERN_C(); - -/** Gets all specified environments. Caller has to release returned environments and free allocated - memory. - - @param pppEnvs out param; pointer to array of environments - @param pnLen out param; length of array - @param memAlloc function for allocating memory that is passed back - @param pEnvDcp descriptor of environments; 0 defaults to all -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_getRegisteredEnvironments( - uno_Environment *** pppEnvs, sal_Int32 * pnLen, uno_memAlloc memAlloc, - rtl_uString * pEnvDcp ) - SAL_THROW_EXTERN_C(); - -/** Creates an environment. The new environment is anonymous (NOT publicly registered/ accessible). - - @param ppEnv out parameter of environment; given environment will be released - @param pEnvDcp descriptor of environment - @param pContext context pointer (e.g., to distinguish java vm); set 0 if not needed -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_createEnvironment( - uno_Environment ** ppEnv, rtl_uString * pEnvDcp, void * pContext ) - SAL_THROW_EXTERN_C(); - -/** Dumps out environment information, i.e. registered interfaces. - - @param stream output stream (FILE *) - @param pEnv environment to be dumped - @param pFilter if not null, filters output -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_dumpEnvironment( - void * stream, uno_Environment * pEnv, const sal_Char * pFilter ) - SAL_THROW_EXTERN_C(); -/** Dumps out environment information, i.e. registered interfaces. - - @param stream output stream (FILE *) - @param pEnvDcp descritpro of environment to be dumped - @param pFilter if not null, filters output -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_dumpEnvironmentByName( - void * stream, rtl_uString * pEnvDcp, const sal_Char * pFilter ) - SAL_THROW_EXTERN_C(); - - - -/** Returns the current Environment. - In case no Environment has explicitly been entered, a purpose free - default environment gets returned (e.g. the "uno" or "gcc3" Environment). - - @param ppEnv inout parameter; a given environment will be released - @param pTypeName the optional type of the environment, falls back to "uno" - @since UDK 3.2.7 -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_getCurrentEnvironment(uno_Environment ** ppEnv, rtl_uString * pTypeName) - SAL_THROW_EXTERN_C(); - -/** Typedef for variable argument function. - */ -typedef void SAL_CALL uno_EnvCallee(va_list * pParam); - -/** Invoke the passed function in the given environment. - - @param pEnv the target environment - @param pCallee the function to call - @param pParam the parameter pointer passed to the function - @since UDK 3.2.7 - */ -CPPU_DLLPUBLIC void SAL_CALL uno_Environment_invoke_v(uno_Environment * pEnv, uno_EnvCallee * pCallee, va_list * pParam) - SAL_THROW_EXTERN_C(); - -/** Invoke the passed function in the given environment. - - @param pEnv the target environment - @param pCallee the function to call - @param ... the parameters passed to the function - @since UDK 3.2.7 -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_Environment_invoke (uno_Environment * pEnv, uno_EnvCallee * pCallee, ...) - SAL_THROW_EXTERN_C(); - -/** Enter an environment explicitly. - - @param pEnv the environment to enter; NULL leaves all environments - @since UDK 3.2.7 -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_Environment_enter(uno_Environment * pEnv) - SAL_THROW_EXTERN_C(); - -/** Check if a particular environment is currently valid, so - that objects of that environment might be called. - - @param pEnv the environment - @param pReason the reason, if it is not valid - @return 1 == valid, 0 == invalid - @since UDK 3.2.7 -*/ -CPPU_DLLPUBLIC int SAL_CALL uno_Environment_isValid(uno_Environment * pEnv, rtl_uString ** pReason) - SAL_THROW_EXTERN_C(); - -#ifdef __cplusplus -} -#endif - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/environment.hxx b/cppu/inc/uno/environment.hxx deleted file mode 100644 index 5fd8633c6e9f..000000000000 --- a/cppu/inc/uno/environment.hxx +++ /dev/null @@ -1,270 +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 _UNO_ENVIRONMENT_HXX_ -#define _UNO_ENVIRONMENT_HXX_ - -#include <rtl/alloc.h> -#include <rtl/ustring.hxx> -#include <uno/environment.h> - -#include "uno/lbnames.h" - -/** */ //for docpp -namespace com -{ -/** */ //for docpp -namespace sun -{ -/** */ //for docpp -namespace star -{ -/** */ //for docpp -namespace uno -{ - -/** C++ wrapper for binary C uno_Environment. - - @see uno_Environment -*/ -class Environment -{ - /** binary C uno_Environment - */ - uno_Environment * _pEnv; - -public: - /** Returns the current Environment. - - @param typeName the optional type of the Environment, falls back to "uno" in case being empty, - respectively to current C++ Environment. - @since UDK 3.2.7 - */ - inline static Environment getCurrent(rtl::OUString const & typeName = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV)))) SAL_THROW(()); - - /// @cond INTERNAL - // these are here to force memory de/allocation to sal lib. - inline static void * SAL_CALL operator new ( size_t nSize ) SAL_THROW(()) - { return ::rtl_allocateMemory( nSize ); } - inline static void SAL_CALL operator delete ( void * pMem ) SAL_THROW(()) - { ::rtl_freeMemory( pMem ); } - inline static void * SAL_CALL operator new ( size_t, void * pMem ) SAL_THROW(()) - { return pMem; } - inline static void SAL_CALL operator delete ( void *, void * ) SAL_THROW(()) - {} - /// @endcond - - /** Constructor: acquires given environment - - @param pEnv environment - */ - inline Environment( uno_Environment * pEnv = 0 ) SAL_THROW(()); - - /** Gets a specific environment. If the specified environment does not exist, then a default one - is created and registered. - - @param envDcp descriptor of the environment - @param pContext context pointer - */ - inline explicit Environment( rtl::OUString const & envDcp, void * pContext = NULL ) SAL_THROW(()); - - - /** Copy constructor: acquires given environment - - @param rEnv another environment - */ - inline Environment( const Environment & rEnv ) SAL_THROW(()); - - /** Destructor: releases a set environment. - */ - inline ~Environment() SAL_THROW(()); - - /** Sets a given environment, i.e. acquires given one and releases a set one. - - @param pEnv another environment - @return this environment - */ - inline Environment & SAL_CALL operator = ( uno_Environment * pEnv ) SAL_THROW(()); - /** Sets a given environment, i.e. acquires given one and releases a set one. - - @param rEnv another environment - @return this environment - */ - inline Environment & SAL_CALL operator = ( const Environment & rEnv ) SAL_THROW(()) - { return operator = ( rEnv._pEnv ); } - - /** Provides UNacquired pointer to the set C environment. - - @return UNacquired pointer to the C environment struct - */ - inline uno_Environment * SAL_CALL get() const SAL_THROW(()) - { return _pEnv; } - - /** Gets type name of set environment. - - @return type name of set environment - */ - inline ::rtl::OUString SAL_CALL getTypeName() const SAL_THROW(()) - { return _pEnv->pTypeName; } - - /** Gets free context pointer of set environment. - - @return free context pointer of set environment - */ - inline void * SAL_CALL getContext() const SAL_THROW(()) - { return _pEnv->pContext; } - - /** Tests if a environment is set. - - @return true, if a environment is set, false otherwise - */ - inline sal_Bool SAL_CALL is() const SAL_THROW(()) - { return (_pEnv != 0); } - - /** Releases a set environment. - */ - inline void SAL_CALL clear() SAL_THROW(()); - - /** Invoke the passed function in this environment. - - @param pCallee the function to call - @param pParam the parameter pointer to be passed to the function - @since UDK 3.2.7 - */ - inline void SAL_CALL invoke_v(uno_EnvCallee * pCallee, va_list * pParam) const SAL_THROW(()); - - /** Invoke the passed function in this environment. - - @param pCallee the function to call - @param ... the parameters to be passed to the function - @since UDK 3.2.7 - */ - inline void SAL_CALL invoke(uno_EnvCallee * pCallee, ...) const SAL_THROW(()); - - /** Enter this environment explicitly. - - @since UDK 3.2.7 - */ - inline void SAL_CALL enter() const SAL_THROW(()); - - /** Checks, if it is valid to currently call objects - belonging to this environment. - - @since UDK 3.2.7 - */ - inline int SAL_CALL isValid(rtl::OUString * pReason) const SAL_THROW(()); -}; -//__________________________________________________________________________________________________ -inline Environment::Environment( uno_Environment * pEnv ) SAL_THROW(()) - : _pEnv( pEnv ) -{ - if (_pEnv) - (*_pEnv->acquire)( _pEnv ); -} -//__________________________________________________________________________________________________ -inline Environment::Environment( rtl::OUString const & rEnvDcp, void * pContext ) SAL_THROW(()) - : _pEnv(NULL) -{ - uno_getEnvironment(&_pEnv, rEnvDcp.pData, pContext); -} -//__________________________________________________________________________________________________ -inline Environment::Environment( const Environment & rEnv ) SAL_THROW(()) - : _pEnv( rEnv._pEnv ) -{ - if (_pEnv) - (*_pEnv->acquire)( _pEnv ); -} -//__________________________________________________________________________________________________ -inline Environment::~Environment() SAL_THROW(()) -{ - if (_pEnv) - (*_pEnv->release)( _pEnv ); -} -//__________________________________________________________________________________________________ -inline void Environment::clear() SAL_THROW(()) -{ - if (_pEnv) - { - (*_pEnv->release)( _pEnv ); - _pEnv = 0; - } -} -//__________________________________________________________________________________________________ -inline Environment & Environment::operator = ( uno_Environment * pEnv ) SAL_THROW(()) -{ - if (pEnv != _pEnv) - { - if (pEnv) - (*pEnv->acquire)( pEnv ); - if (_pEnv) - (*_pEnv->release)( _pEnv ); - _pEnv = pEnv; - } - return *this; -} -//__________________________________________________________________________________________________ -inline void SAL_CALL Environment::invoke_v(uno_EnvCallee * pCallee, va_list * pParam) const SAL_THROW(()) -{ - if (_pEnv) - uno_Environment_invoke_v(_pEnv, pCallee, pParam); -} -//__________________________________________________________________________________________________ -inline void SAL_CALL Environment::invoke(uno_EnvCallee * pCallee, ...) const SAL_THROW(()) -{ - if (_pEnv) - { - va_list param; - - va_start(param, pCallee); - uno_Environment_invoke_v(_pEnv, pCallee, ¶m); - va_end(param); - } - -} -//__________________________________________________________________________________________________ -inline void SAL_CALL Environment::enter() const SAL_THROW(()) -{ - uno_Environment_enter(_pEnv); -} -//__________________________________________________________________________________________________ -inline int SAL_CALL Environment::isValid(rtl::OUString * pReason) const SAL_THROW(()) -{ - return uno_Environment_isValid(_pEnv, (rtl_uString **)pReason); -} -//__________________________________________________________________________________________________ -inline Environment Environment::getCurrent(rtl::OUString const & typeName) SAL_THROW(()) -{ - Environment environment; - - uno_Environment * pEnv = NULL; - uno_getCurrentEnvironment(&pEnv, typeName.pData); - environment = pEnv; - if (pEnv) - pEnv->release(pEnv); - - return environment; -} - -} -} -} -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/lbnames.h b/cppu/inc/uno/lbnames.h deleted file mode 100644 index dcae196ece60..000000000000 --- a/cppu/inc/uno/lbnames.h +++ /dev/null @@ -1,54 +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 _UNO_LBNAMES_H_ -#define _UNO_LBNAMES_H_ - -/* I assume "LB" means "Language Binding" */ - -#ifdef __cplusplus - -#ifdef CPPU_ENV - -#define CPPU_STRINGIFY_EX( x ) #x -#define CPPU_STRINGIFY( x ) CPPU_STRINGIFY_EX( x ) - -/** Name for C++ compiler/ platform, e.g. "gcc3", "msci" */ -#define CPPU_CURRENT_LANGUAGE_BINDING_NAME CPPU_STRINGIFY( CPPU_ENV ) - -#else - -#error "No supported C++ compiler environment." -provoking error here, because PP ignores #error - -#endif /* CPPU_ENV */ - -#endif /* __cplusplus */ - -/** Environment type name for binary C UNO. */ -#define UNO_LB_UNO "uno" -/** Environment type name for ANSI C compilers. */ -#define UNO_LB_C "c" -/** Environment type name for Java 1.3.1 compatible virtual machine. */ -#define UNO_LB_JAVA "java" -/** Environment type name for CLI (Common Language Infrastructure). */ -#define UNO_LB_CLI "cli" - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/mapping.h b/cppu/inc/uno/mapping.h deleted file mode 100644 index 179f41f869c9..000000000000 --- a/cppu/inc/uno/mapping.h +++ /dev/null @@ -1,214 +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 _UNO_MAPPING_H_ -#define _UNO_MAPPING_H_ - -#include <cppu/cppudllapi.h> -#include <rtl/ustring.h> - - -#ifdef __cplusplus -extern "C" -{ -#endif - -struct _typelib_InterfaceTypeDescription; -struct _uno_Mapping; -struct _uno_Environment; - -/** - Function pointer declaration to acquire a UNO mapping. -*/ -typedef void (SAL_CALL * uno_AcquireMappingFunc)(struct _uno_Mapping *); - -/** - Function pointer declaration to release a UNO mapping. -*/ -typedef void (SAL_CALL * uno_ReleaseMappingFunc)(struct _uno_Mapping *); - -/** Function pointer declaration to map an interface from one environment to another. - - @param pMapping mapping - @param ppOut [inout] destination interface; existing interfaces are released - @param pInterface source interface - @param pInterfaceTypeDescr type description of the interface -*/ -typedef void (SAL_CALL * uno_MapInterfaceFunc)( - struct _uno_Mapping * pMapping, - void ** ppOut, void * pInterface, - struct _typelib_InterfaceTypeDescription * pInterfaceTypeDescr ); - - -#if defined( SAL_W32) -#pragma pack(push, 8) -#endif - -/** This is the binary specification of a mapping. -*/ -typedef struct _uno_Mapping -{ - /** Acquires mapping - */ - uno_AcquireMappingFunc acquire; - - /** Releases mapping. The last release may unload bridges. - */ - uno_ReleaseMappingFunc release; - - /** mapping function - */ - uno_MapInterfaceFunc mapInterface; -} uno_Mapping; - -#if defined( SAL_W32) -#pragma pack(pop) -#endif - -/** Gets an interface mapping from one environment to another. - - @param ppMapping [inout] mapping; existing mapping will be released - @param pFrom source environment - @param pTo destination environment - (interfaces resulting in mapInterface() call can be used - in this language environment) - @param pAddPurpose additional purpose of mapping (e.g., protocolling); defaults to 0 (none) -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_getMapping( - struct _uno_Mapping ** ppMapping, - struct _uno_Environment * pFrom, - struct _uno_Environment * pTo, - rtl_uString * pAddPurpose ) - SAL_THROW_EXTERN_C(); - -/** Callback function pointer declaration to get a mapping. - - @param ppMapping inout mapping - @param pFrom source environment - @param pTo destination environment - @param pAddPurpose additional purpose -*/ -typedef void (SAL_CALL * uno_getMappingFunc)( - struct _uno_Mapping ** ppMapping, - struct _uno_Environment * pFrom, - struct _uno_Environment * pTo, - rtl_uString * pAddPurpose ); - -/** Registers a callback being called each time a mapping is demanded. - - @param pCallback callback function -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_registerMappingCallback( - uno_getMappingFunc pCallback ) - SAL_THROW_EXTERN_C(); - -/** Revokes a mapping callback registration. - - @param pCallback callback function -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_revokeMappingCallback( - uno_getMappingFunc pCallback ) - SAL_THROW_EXTERN_C(); - -/** Function pointer declaration to free a mapping. - - @param pMapping mapping to be freed -*/ -typedef void (SAL_CALL * uno_freeMappingFunc)( struct _uno_Mapping * pMapping ); - -/** Registers a mapping. A mapping registers itself on first acquire and revokes itself on last - release. The given freeMapping function is called by the runtime to cleanup any resources. - - @param ppMapping inout mapping to be registered - @param freeMapping called by runtime to delete mapping - @param pFrom source environment - @param pTo destination environment - @param pAddPurpose additional purpose string; defaults to 0 -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_registerMapping( - struct _uno_Mapping ** ppMapping, uno_freeMappingFunc freeMapping, - struct _uno_Environment * pFrom, struct _uno_Environment * pTo, rtl_uString * pAddPurpose ) - SAL_THROW_EXTERN_C(); - -/** Revokes a mapping. A mapping registers itself on first acquire and revokes itself on last - release. - - @param pMapping mapping to be revoked -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_revokeMapping( - struct _uno_Mapping * pMapping ) - SAL_THROW_EXTERN_C(); - -/** Gets an interface mapping from one language environment to another by corresponding environment - type names. - - @param ppMapping [inout] mapping; existing mapping will be released - @param pFrom source environment type name - @param pTo destination environment type name - (interfaces resulting in mapInterface() call can be used - in this language environment) - @param pAddPurpose additional purpose of mapping (e.g., protocolling); defaults to 0 (none) -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_getMappingByName( - struct _uno_Mapping ** ppMapping, - rtl_uString * pFrom, - rtl_uString * pTo, - rtl_uString * pAddPurpose ) - SAL_THROW_EXTERN_C(); - -/* symbol exported by each language binding library */ -#define UNO_EXT_GETMAPPING "uno_ext_getMapping" - -/** Function pointer declaration to get a mapping from a loaded bridge. Bridges export a function - called uno_ext_getMapping() of this signature. - - @param[in,out] ppMapping mapping; existing mapping will be released - @param[in] pFrom source environment - @param[in] pTo destination environment -*/ -typedef void (SAL_CALL * uno_ext_getMappingFunc)( - struct _uno_Mapping ** ppMapping, - struct _uno_Environment * pFrom, - struct _uno_Environment * pTo ); - -#ifdef DISABLE_DYNLOADING -/* Static linking, this is the uno_ext_getMapping function in the C++/UNO bridge */ -void SAL_CALL CPPU_ENV_uno_ext_getMapping( - struct _uno_Mapping ** ppMapping, - struct _uno_Environment * pFrom, - struct _uno_Environment * pTo ) - SAL_THROW_EXTERN_C(); - -#ifdef SOLAR_JAVA -/* This is the uno_ext_getMapping function in the Java/UNO bridge */ -void SAL_CALL java_uno_ext_getMapping( - struct _uno_Mapping ** ppMapping, - struct _uno_Environment * pFrom, - struct _uno_Environment * pTo ) - SAL_THROW_EXTERN_C(); -#endif - -#endif - -#ifdef __cplusplus -} -#endif - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/mapping.hxx b/cppu/inc/uno/mapping.hxx deleted file mode 100644 index 13a042833ad6..000000000000 --- a/cppu/inc/uno/mapping.hxx +++ /dev/null @@ -1,346 +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 _UNO_MAPPING_HXX_ -#define _UNO_MAPPING_HXX_ - -#include <cppu/macros.hxx> -#include <rtl/alloc.h> -#include <rtl/ustring.hxx> -#include <uno/mapping.h> -#include <com/sun/star/uno/Type.hxx> -#include <com/sun/star/uno/Reference.hxx> -#include "cppu/unotype.hxx" -#include "uno/environment.hxx" - -typedef struct _typelib_TypeDescription typelib_TypeDescription; -typedef struct _typelib_InterfaceTypeDescription typelib_InterfaceTypeDescription; -typedef struct _uno_Interface uno_Interface; - -namespace com -{ -namespace sun -{ -namespace star -{ -namespace uno -{ - -/** C++ wrapper for C uno_Mapping. - - @see uno_Mapping -*/ -class Mapping -{ - uno_Mapping * _pMapping; - -public: - // these are here to force memory de/allocation to sal lib. - /// @cond INTERNAL - inline static void * SAL_CALL operator new ( size_t nSize ) SAL_THROW(()) - { return ::rtl_allocateMemory( nSize ); } - inline static void SAL_CALL operator delete ( void * pMem ) SAL_THROW(()) - { ::rtl_freeMemory( pMem ); } - inline static void * SAL_CALL operator new ( size_t, void * pMem ) SAL_THROW(()) - { return pMem; } - inline static void SAL_CALL operator delete ( void *, void * ) SAL_THROW(()) - {} - /// @endcond - - /** Holds a mapping from the specified source to the specified destination by environment - type names. - - @param rFrom type name of source environment - @param rTo type name of destination environment - @param rAddPurpose additional purpose - */ - inline Mapping( - const ::rtl::OUString & rFrom, const ::rtl::OUString & rTo, - const ::rtl::OUString & rAddPurpose = ::rtl::OUString() ) - SAL_THROW(()); - - /** Holds a mapping from the specified source to the specified destination. - - @param pFrom source environment - @param pTo destination environment - @param rAddPurpose additional purpose - */ - inline Mapping( - uno_Environment * pFrom, uno_Environment * pTo, - const ::rtl::OUString & rAddPurpose = ::rtl::OUString() ) - SAL_THROW(()); - - /** Holds a mapping from the specified source to the specified destination - environment. - - @param rFrom source environment - @param rTo destination environment - @param rAddPurpose additional purpose - */ - inline Mapping(const Environment & rFrom, const Environment & rTo, - const ::rtl::OUString & rAddPurpose = ::rtl::OUString() ) - SAL_THROW(()); - - /** Constructor. - - @param pMapping another mapping - */ - inline Mapping( uno_Mapping * pMapping = 0 ) SAL_THROW(()); - - /** Copy constructor. - - @param rMapping another mapping - */ - inline Mapping( const Mapping & rMapping ) SAL_THROW(()); - - /** Destructor. - */ - inline ~Mapping() SAL_THROW(()); - - /** Sets a given mapping. - - @param pMapping another mapping - @return this mapping - */ - inline Mapping & SAL_CALL operator = ( uno_Mapping * pMapping ) SAL_THROW(()); - /** Sets a given mapping. - - @param rMapping another mapping - @return this mapping - */ - inline Mapping & SAL_CALL operator = ( const Mapping & rMapping ) SAL_THROW(()) - { return operator = ( rMapping._pMapping ); } - - /** Provides a pointer to the C mapping. The returned mapping is NOT acquired! - - @return UNacquired C mapping - */ - inline uno_Mapping * SAL_CALL get() const SAL_THROW(()) - { return _pMapping; } - - /** Tests if a mapping is set. - - @return true if a mapping is set - */ - inline sal_Bool SAL_CALL is() const SAL_THROW(()) - { return (_pMapping != 0); } - - /** Releases a set mapping. - */ - inline void SAL_CALL clear() SAL_THROW(()); - - /** Maps an interface from one environment to another. - - @param pInterface source interface - @param pTypeDescr type description of interface - @return mapped interface - */ - inline void * SAL_CALL mapInterface( void * pInterface, typelib_InterfaceTypeDescription * pTypeDescr ) const SAL_THROW(()); - /** Maps an interface from one environment to another. - - @param pInterface source interface - @param pTypeDescr type description of interface - @return mapped interface - */ - inline void * SAL_CALL mapInterface( void * pInterface, typelib_TypeDescription * pTypeDescr ) const SAL_THROW(()) - { return mapInterface( pInterface, (typelib_InterfaceTypeDescription *)pTypeDescr ); } - - /** Maps an interface from one environment to another. - - @param pInterface source interface - @param rType type of interface - @return mapped interface - */ - inline void * SAL_CALL mapInterface( - void * pInterface, const ::com::sun::star::uno::Type & rType ) const SAL_THROW(()); - - /** Maps an interface from one environment to another. - - @param ppOut inout mapped interface - @param pInterface source interface - @param pTypeDescr type description of interface - */ - inline void SAL_CALL mapInterface( void ** ppOut, void * pInterface, typelib_InterfaceTypeDescription * pTypeDescr ) const SAL_THROW(()) - { (*_pMapping->mapInterface)( _pMapping, ppOut, pInterface, pTypeDescr ); } - /** Maps an interface from one environment to another. - - @param ppOut inout mapped interface - @param pInterface source interface - @param pTypeDescr type description of interface - */ - inline void SAL_CALL mapInterface( void ** ppOut, void * pInterface, typelib_TypeDescription * pTypeDescr ) const SAL_THROW(()) - { (*_pMapping->mapInterface)( _pMapping, ppOut, pInterface, (typelib_InterfaceTypeDescription *)pTypeDescr ); } - - /** Maps an interface from one environment to another. - - @param ppOut inout mapped interface - @param pInterface source interface - @param rType type of interface to be mapped - */ - inline void SAL_CALL mapInterface( void ** ppOut, void * pInterface, const ::com::sun::star::uno::Type & rType ) const SAL_THROW(()); -}; -//__________________________________________________________________________________________________ -inline Mapping::Mapping( - const ::rtl::OUString & rFrom, const ::rtl::OUString & rTo, const ::rtl::OUString & rAddPurpose ) - SAL_THROW(()) - : _pMapping( 0 ) -{ - uno_getMappingByName( &_pMapping, rFrom.pData, rTo.pData, rAddPurpose.pData ); -} -//__________________________________________________________________________________________________ -inline Mapping::Mapping( - uno_Environment * pFrom, uno_Environment * pTo, const ::rtl::OUString & rAddPurpose ) - SAL_THROW(()) - : _pMapping( 0 ) -{ - uno_getMapping( &_pMapping, pFrom, pTo, rAddPurpose.pData ); -} -//__________________________________________________________________________________________________ -inline Mapping::Mapping( - const Environment & rFrom, const Environment & rTo, const ::rtl::OUString & rAddPurpose ) - SAL_THROW(()) - : _pMapping(0) -{ - uno_getMapping( &_pMapping, rFrom.get(), rTo.get(), rAddPurpose.pData ); -} -//__________________________________________________________________________________________________ -inline Mapping::Mapping( uno_Mapping * pMapping ) SAL_THROW(()) - : _pMapping( pMapping ) -{ - if (_pMapping) - (*_pMapping->acquire)( _pMapping ); -} -//__________________________________________________________________________________________________ -inline Mapping::Mapping( const Mapping & rMapping ) SAL_THROW(()) - : _pMapping( rMapping._pMapping ) -{ - if (_pMapping) - (*_pMapping->acquire)( _pMapping ); -} -//__________________________________________________________________________________________________ -inline Mapping::~Mapping() SAL_THROW(()) -{ - if (_pMapping) - (*_pMapping->release)( _pMapping ); -} -//__________________________________________________________________________________________________ -inline void Mapping::clear() SAL_THROW(()) -{ - if (_pMapping) - { - (*_pMapping->release)( _pMapping ); - _pMapping = 0; - } -} -//__________________________________________________________________________________________________ -inline Mapping & Mapping::operator = ( uno_Mapping * pMapping ) SAL_THROW(()) -{ - if (pMapping) - (*pMapping->acquire)( pMapping ); - if (_pMapping) - (*_pMapping->release)( _pMapping ); - _pMapping = pMapping; - return *this; -} -//__________________________________________________________________________________________________ -inline void Mapping::mapInterface( - void ** ppOut, void * pInterface, const ::com::sun::star::uno::Type & rType ) const - SAL_THROW(()) -{ - typelib_TypeDescription * pTD = 0; - TYPELIB_DANGER_GET( &pTD, rType.getTypeLibType() ); - if (pTD) - { - (*_pMapping->mapInterface)( _pMapping, ppOut, pInterface, (typelib_InterfaceTypeDescription *)pTD ); - TYPELIB_DANGER_RELEASE( pTD ); - } -} -//__________________________________________________________________________________________________ -inline void * Mapping::mapInterface( - void * pInterface, typelib_InterfaceTypeDescription * pTypeDescr ) const - SAL_THROW(()) -{ - void * pOut = 0; - (*_pMapping->mapInterface)( _pMapping, &pOut, pInterface, pTypeDescr ); - return pOut; -} -//__________________________________________________________________________________________________ -inline void * Mapping::mapInterface( - void * pInterface, const ::com::sun::star::uno::Type & rType ) const - SAL_THROW(()) -{ - void * pOut = 0; - mapInterface( &pOut, pInterface, rType ); - return pOut; -} - -/** Deprecated. This function DOES NOT WORK with Purpose Environments - (http://wiki.services.openoffice.org/wiki/Uno/Binary/Spec/Purpose Environments) - - Maps an binary C UNO interface to be used in the currently used compiler environment. - - @tparam C interface type - @param ppRet inout returned interface pointer - @param pUnoI binary C UNO interface - @return true if successful, false otherwise - - @deprecated -*/ -template< class C > -inline sal_Bool mapToCpp( Reference< C > * ppRet, uno_Interface * pUnoI ) SAL_THROW(()) -{ - Mapping aMapping( - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) ), - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ) ); - OSL_ASSERT( aMapping.is() ); - aMapping.mapInterface( - (void **)ppRet, pUnoI, ::cppu::getTypeFavourUnsigned( ppRet ) ); - return (0 != *ppRet); -} -/** Deprecated. This function DOES NOT WORK with Purpose Environments - (http://wiki.services.openoffice.org/wiki/Uno/Binary/Spec/Purpose Environments) - - Maps an UNO interface of the currently used compiler environment to binary C UNO. - - @tparam C interface type - @param ppRet inout returned interface pointer - @param x interface reference - @return true if successful, false otherwise - - @deprecated -*/ -template< class C > -inline sal_Bool mapToUno( uno_Interface ** ppRet, const Reference< C > & x ) SAL_THROW(()) -{ - Mapping aMapping( - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ), - ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) ) ); - OSL_ASSERT( aMapping.is() ); - aMapping.mapInterface( - (void **)ppRet, x.get(), ::cppu::getTypeFavourUnsigned( &x ) ); - return (0 != *ppRet); -} - -} -} -} -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/sequence2.h b/cppu/inc/uno/sequence2.h deleted file mode 100644 index 304eefc9f746..000000000000 --- a/cppu/inc/uno/sequence2.h +++ /dev/null @@ -1,181 +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 _UNO_SEQUENCE2_H_ -#define _UNO_SEQUENCE2_H_ - -#include <cppu/cppudllapi.h> -#include <uno/data.h> - -#ifdef __cplusplus -extern "C" -{ -#endif - -struct _typelib_TypeDescriptionReference; -struct _typelib_TypeDescription; -typedef sal_Sequence uno_Sequence; - -/** Assigns a sequence. - - @param ppDest destinstaion sequence - @param pSource source sequence - @param pTypeDescr type description of the sequence and NOT of an element - @param release function called each time an interface needs to - be released; defaults (0) to uno -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_sequence_assign( - uno_Sequence ** ppDest, - uno_Sequence * pSource, - struct _typelib_TypeDescription * pTypeDescr, - uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); -/** Assigns a sequence. - - @param ppDest destinstaion sequence - @param pSource source sequence - @param pType type of the sequence and NOT of an element - @param release function called each time an interface needs to - be released; defaults (0) to uno -*/ -CPPU_DLLPUBLIC void SAL_CALL uno_type_sequence_assign( - uno_Sequence ** ppDest, - uno_Sequence * pSource, - struct _typelib_TypeDescriptionReference * pType, - uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); - -/** Constructs a new sequence with given elements. - - @param ppSequence out parameter sequence; - 0 if memory allocation has failed - @param pTypeDescr type description of the sequence and NOT of an - element - @param pElements if 0, then all elements are default constructed - @param len number of elements - @param acquire function called each time an interface needs to - be acquired; defaults (0) to uno - @return false, if memoray allocation has failed -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_sequence_construct( - uno_Sequence ** ppSequence, - struct _typelib_TypeDescription * pTypeDescr, - void * pElements, sal_Int32 len, - uno_AcquireFunc acquire ) - SAL_THROW_EXTERN_C(); -/** Constructs a new sequence with given elements. - - @param ppSequence out parameter sequence; - 0 if memory allocation has failed - @param pType type of the sequence and NOT of an element - @param pElements if 0, then all elements are default constructed - @param len number of elements - @param acquire function called each time an interface needs to - be acquired; defaults (0) to uno - @return false, if memoray allocation has failed -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_type_sequence_construct( - uno_Sequence ** ppSequence, - struct _typelib_TypeDescriptionReference * pType, - void * pElements, sal_Int32 len, - uno_AcquireFunc acquire ) - SAL_THROW_EXTERN_C(); - -/** Assures that the reference count of the given sequence is one. - Otherwise a new copy of the sequence is created with a reference count - of one. - - @param ppSequence inout sequence - @param pTypeDescr type description of sequence - @param acquire function called each time an interface needs to - be acquired; defaults (0) to uno - @param release function called each time an interface needs to - be released; defaults (0) to uno - @return false, if memoray allocation has failed -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_sequence_reference2One( - uno_Sequence ** ppSequence, - struct _typelib_TypeDescription * pTypeDescr, - uno_AcquireFunc acquire, - uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); -/** Assures that the reference count of the given sequence is one. - Otherwise a new copy of the sequence is created with a reference count - of one. - - @param ppSequence inout sequence - @param pType type of sequence - @param acquire function called each time an interface needs to - be acquired; defaults (0) to uno - @param release function called each time an interface needs to - be released; defaults (0) to uno - @return false, if memoray allocation has failed -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_type_sequence_reference2One( - uno_Sequence ** ppSequence, - struct _typelib_TypeDescriptionReference * pType, - uno_AcquireFunc acquire, - uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); - -/** Reallocates length of a sequence. This truncates a sequence or enlarges - it default constructing appended elements. - - @param ppSequence inout sequence - @param pTypeDescr type description of sequence - @param nSize new size of sequence - @param acquire function called each time an interface needs to - be acquired; defaults (0) to uno - @param release function called each time an interface needs to - be released; defaults (0) to uno - @return false, if memoray allocation has failed -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_sequence_realloc( - uno_Sequence ** ppSequence, - struct _typelib_TypeDescription * pTypeDescr, - sal_Int32 nSize, - uno_AcquireFunc acquire, - uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); -/** Reallocates length of a sequence. This truncates a sequence or enlarges - it default constructing appended elements. - - @param ppSequence inout sequence - @param pType type of sequence - @param nSize new size of sequence - @param acquire function called each time an interface needs to - be acquired; defaults (0) to uno - @param release function called each time an interface needs to - be released; defaults (0) to uno - @return false, if memoray allocation has failed -*/ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_type_sequence_realloc( - uno_Sequence ** ppSequence, - struct _typelib_TypeDescriptionReference * pType, - sal_Int32 nSize, - uno_AcquireFunc acquire, - uno_ReleaseFunc release ) - SAL_THROW_EXTERN_C(); - -#ifdef __cplusplus -} -#endif - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cppu/inc/uno/threadpool.h b/cppu/inc/uno/threadpool.h deleted file mode 100644 index 6e880e55b144..000000000000 --- a/cppu/inc/uno/threadpool.h +++ /dev/null @@ -1,185 +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 . - */ - -#include <cppu/cppudllapi.h> -#include <rtl/byteseq.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/*** - * Thread identifier administration. - ***/ -/** - Establishs an association between the current thread and the given thread identifier. - There can be only one association at a time. The association must be broken by - uno_releaseIdFromCurrentThread(). - This method is in general called by a bridge, that wants to bind a remote threadId - to a new thread. - - @param pThreadId a byte sequence, that contains the identifier of the current thread. - @return true, when the identifier was registered. - false, when the thread has already an identifier. The identifier was not - altered. ( This is in general a bug ). - - @see uno_releaseIdFromCurrentThread() - */ -CPPU_DLLPUBLIC sal_Bool SAL_CALL uno_bindIdToCurrentThread( sal_Sequence *pThreadId ) - SAL_THROW_EXTERN_C(); - - -/** - Get the identifier of the current thread. - If no id has been bound for the thread before, a new one is generated and bound - to the thread. - For each call to uno_getIdOfCurrentThread(), a call to uno_releaseIdFromCurrentThread() - must be done. - - @param ppThreadId [out] Contains the (acquired) ThreadId. - @see uno_releaseIdFromCurrentThread() - */ -CPPU_DLLPUBLIC void SAL_CALL uno_getIdOfCurrentThread( sal_Sequence **ppThreadId ) - SAL_THROW_EXTERN_C(); - - -/** - If the internal refcount drops to zero, the association between threadId and - thread is broken. - */ -CPPU_DLLPUBLIC void SAL_CALL uno_releaseIdFromCurrentThread() - SAL_THROW_EXTERN_C(); - - -struct _uno_ThreadPool; -typedef struct _uno_ThreadPool * uno_ThreadPool; - -/** - Creates a threadpool handle. Typically each remote bridge instances creates one - handle. - */ -CPPU_DLLPUBLIC uno_ThreadPool SAL_CALL -uno_threadpool_create() SAL_THROW_EXTERN_C(); - - -/** - Makes the current thread known to the threadpool. This function must be - called, BEFORE uno_threadpool_enter() is called and BEFORE a job for this - thread is put into the threadpool (avoid a race between this thread and - an incoming request/reply). - For every call to uno_threadpool_attach, a corrosponding call to - uno_threadpool_detach must be done. - - @param hPool The bridge threadpool handle previously created by uno_threadpool_create. - -*/ -CPPU_DLLPUBLIC void SAL_CALL -uno_threadpool_attach( uno_ThreadPool hPool ) SAL_THROW_EXTERN_C(); - -/** - This method is called to wait for a reply of a previously sent request. This is a - blocking method. uno_threadpool_attach() must have been called before. - - @param hPool the handle that was previously created by uno_threadpool_create(). - @param ppJob [out] the pointer, that was given by uno_threadpool_putJob - 0, when uno_threadpool_dispose() was the reason to fall off from threadpool. - @see uno_threadpool_dispose() - **/ -CPPU_DLLPUBLIC void SAL_CALL -uno_threadpool_enter( uno_ThreadPool hPool , void **ppJob ) - SAL_THROW_EXTERN_C(); - -/** - Detaches the current thread from the threadpool. Must be called for - every call to uno_threadpool_attach. - @param hPool the handle that was previously created by uno_threadpool_create(). -*/ -CPPU_DLLPUBLIC void SAL_CALL -uno_threadpool_detach( uno_ThreadPool hPool ) SAL_THROW_EXTERN_C(); - -/** - Puts a job into the pool. A job may eiter be a request or a reply - (replies have a 0 in the doRequest parameter). This function is non-blocking. - - A request may either be synchronous or asynchronous. - If the request is synchronous, it is first looked up, - if there exists a handle with the given - identifier. If this is the case, the thread is woken up and the doRequest - function is called with the given pJob. If no handle exists, - a new thread is created and the given threadId is bound to the new thread. - - If the request is asynchronous, it is put into the queue of asynchronous - requests for the current threadid. The requests are always executed in a new - thread, even if the thread with the given id is waiting in the pool. No id is bound - to the newly created thread. The responsibilty is left to the bridge ( if it - wishes to bind a name). - - If pJob is a reply, there MUST be a thread with the given threadId waiting - for this reply. - - @param hPool the handle that was previously created by uno_threadpool_create(). - @param pThreadId The Id of the thread, that initialized this request. (In general a - remote threadid). - @param pJob The argument, that doRequest will get or that will be returned by - uno_threadpool_enter(). - @param doRequest The function, that shall be called to execute the request. - 0 if pJob is a reply. - @param bIsOneway True, if the request is asynchrons. False, if it is synchronous. - Set to sal_False, if pJob is a reply. - */ -CPPU_DLLPUBLIC void SAL_CALL -uno_threadpool_putJob( - uno_ThreadPool hPool, - sal_Sequence *pThreadId, - void *pJob, - void ( SAL_CALL * doRequest ) ( void *pThreadSpecificData ), - sal_Bool bIsOneway ) SAL_THROW_EXTERN_C(); - -/** - All threads, that are waiting on the hPool handle, are forced out of the pool. - The threads waiting with uno_threadpool_enter() will return with *ppJob == 0 - - Later calls to uno_threadpool_enter() using the hPool handle will also - return immeadiatly with *ppJob == 0. - - @param hPool The handle to be disposed. - - This function is called i.e. by a bridge, that is forced to dispose itself. - */ -CPPU_DLLPUBLIC void SAL_CALL -uno_threadpool_dispose( uno_ThreadPool hPool ) SAL_THROW_EXTERN_C(); - - -/** Releases the previously with uno_threadpool_create() created handle. - The handle thus becomes invalid. It is an error to use the handle after - uno_threadpool_destroy(). - - A call to uno_threadpool_destroy can synchronously join on spawned worker - threads, so this function must never be called from such a worker thread. - - @see uno_threadpool_create() - */ -CPPU_DLLPUBLIC void SAL_CALL -uno_threadpool_destroy( uno_ThreadPool hPool ) SAL_THROW_EXTERN_C(); - -#ifdef __cplusplus -} -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |