Coverage Report

Created: 2026-07-10 11:04

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libreoffice/include/o3tl/any.hxx
Line
Count
Source
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
 * This file is part of the LibreOffice project.
4
 *
5
 * This Source Code Form is subject to the terms of the Mozilla Public
6
 * License, v. 2.0. If a copy of the MPL was not distributed with this
7
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
 */
9
10
#ifndef INCLUDED_O3TL_ANY_HXX
11
#define INCLUDED_O3TL_ANY_HXX
12
13
#include <sal/config.h>
14
15
#include <cassert>
16
#include <type_traits>
17
#include <utility>
18
19
#include <optional>
20
21
#include <com/sun/star/uno/Any.hxx>
22
#include <com/sun/star/uno/RuntimeException.hpp>
23
#include <com/sun/star/uno/Reference.hxx>
24
#include <com/sun/star/uno/XInterface.hpp>
25
#include <cppu/unotype.hxx>
26
#include <rtl/ustring.hxx>
27
#include <sal/types.h>
28
29
// Some functionality related to css::uno::Any that would ideally be part of
30
// <com/sun/star/uno/Any.hxx>, but (for now) cannot be for some reason.
31
32
namespace o3tl {
33
34
namespace detail {
35
36
struct Void {};
37
38
template<typename T> struct Optional { using type = T const *; };
39
template<> struct Optional<void> { using type = std::optional<Void const>; };
40
template<> struct Optional<bool> { using type = std::optional<bool const>; };
41
template<> struct Optional<sal_Int8> {
42
    using type = std::optional<sal_Int8 const>;
43
};
44
template<> struct Optional<sal_Int16> {
45
    using type = std::optional<sal_Int16 const>;
46
};
47
template<> struct Optional<sal_uInt16> {
48
    using type = std::optional<sal_uInt16 const>;
49
};
50
template<> struct Optional<sal_Int32> {
51
    using type = std::optional<sal_Int32 const>;
52
};
53
template<> struct Optional<sal_uInt32> {
54
    using type = std::optional<sal_uInt32 const>;
55
};
56
template<> struct Optional<sal_Int64> {
57
    using type = std::optional<sal_Int64 const>;
58
};
59
template<> struct Optional<sal_uInt64> {
60
    using type = std::optional<sal_uInt64 const>;
61
};
62
template<> struct Optional<float> {
63
    using type = std::optional<float const>;
64
};
65
template<> struct Optional<double> {
66
    using type = std::optional<double const>;
67
};
68
template<typename T> struct Optional<css::uno::Reference<T>> {
69
    using type = std::optional<css::uno::Reference<T> const>;
70
};
71
template<> struct Optional<css::uno::Reference<css::uno::XInterface>> {
72
    using type = css::uno::Reference<css::uno::XInterface> const *;
73
};
74
75
template<typename> struct IsDerivedReference: std::false_type {};
76
template<typename T> struct IsDerivedReference<css::uno::Reference<T>>:
77
    std::true_type
78
{};
79
template<> struct IsDerivedReference<css::uno::Reference<css::uno::XInterface>>:
80
    std::false_type
81
{};
82
83
template<typename> struct IsUnoSequenceType: std::false_type {};
84
template<typename T> struct IsUnoSequenceType<cppu::UnoSequenceType<T>>:
85
    std::true_type
86
{};
87
88
template<typename T> inline std::optional<T const> tryGetConverted(
89
    css::uno::Any const & any)
90
5.96M
{
91
5.96M
    T v;
92
5.96M
    return (any >>= v)
93
5.96M
        ? std::optional<T const>(std::move(v)) : std::optional<T const>();
94
5.96M
}
Unexecuted instantiation: std::__1::optional<long const> o3tl::detail::tryGetConverted<long>(com::sun::star::uno::Any const&)
std::__1::optional<bool const> o3tl::detail::tryGetConverted<bool>(com::sun::star::uno::Any const&)
Line
Count
Source
90
4.65M
{
91
4.65M
    T v;
92
4.65M
    return (any >>= v)
93
4.65M
        ? std::optional<T const>(std::move(v)) : std::optional<T const>();
94
4.65M
}
Unexecuted instantiation: std::__1::optional<signed char const> o3tl::detail::tryGetConverted<signed char>(com::sun::star::uno::Any const&)
Unexecuted instantiation: std::__1::optional<unsigned int const> o3tl::detail::tryGetConverted<unsigned int>(com::sun::star::uno::Any const&)
Unexecuted instantiation: std::__1::optional<unsigned long const> o3tl::detail::tryGetConverted<unsigned long>(com::sun::star::uno::Any const&)
Unexecuted instantiation: std::__1::optional<float const> o3tl::detail::tryGetConverted<float>(com::sun::star::uno::Any const&)
Unexecuted instantiation: std::__1::optional<double const> o3tl::detail::tryGetConverted<double>(com::sun::star::uno::Any const&)
std::__1::optional<short const> o3tl::detail::tryGetConverted<short>(com::sun::star::uno::Any const&)
Line
Count
Source
90
2.43k
{
91
2.43k
    T v;
92
2.43k
    return (any >>= v)
93
2.43k
        ? std::optional<T const>(std::move(v)) : std::optional<T const>();
94
2.43k
}
std::__1::optional<int const> o3tl::detail::tryGetConverted<int>(com::sun::star::uno::Any const&)
Line
Count
Source
90
62.1k
{
91
62.1k
    T v;
92
62.1k
    return (any >>= v)
93
62.1k
        ? std::optional<T const>(std::move(v)) : std::optional<T const>();
94
62.1k
}
std::__1::optional<unsigned short const> o3tl::detail::tryGetConverted<unsigned short>(com::sun::star::uno::Any const&)
Line
Count
Source
90
10.3k
{
91
10.3k
    T v;
92
10.3k
    return (any >>= v)
93
10.3k
        ? std::optional<T const>(std::move(v)) : std::optional<T const>();
94
10.3k
}
Unexecuted instantiation: std::__1::optional<com::sun::star::uno::Reference<com::sun::star::lang::XTypeProvider> const> o3tl::detail::tryGetConverted<com::sun::star::uno::Reference<com::sun::star::lang::XTypeProvider> >(com::sun::star::uno::Any const&)
std::__1::optional<com::sun::star::uno::Reference<com::sun::star::lang::XUnoTunnel> const> o3tl::detail::tryGetConverted<com::sun::star::uno::Reference<com::sun::star::lang::XUnoTunnel> >(com::sun::star::uno::Any const&)
Line
Count
Source
90
955k
{
91
955k
    T v;
92
955k
    return (any >>= v)
93
955k
        ? std::optional<T const>(std::move(v)) : std::optional<T const>();
94
955k
}
Unexecuted instantiation: std::__1::optional<com::sun::star::uno::Reference<com::sun::star::drawing::XShape> const> o3tl::detail::tryGetConverted<com::sun::star::uno::Reference<com::sun::star::drawing::XShape> >(com::sun::star::uno::Any const&)
Unexecuted instantiation: std::__1::optional<com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const> o3tl::detail::tryGetConverted<com::sun::star::uno::Reference<com::sun::star::io::XInputStream> >(com::sun::star::uno::Any const&)
std::__1::optional<com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> const> o3tl::detail::tryGetConverted<com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> >(com::sun::star::uno::Any const&)
Line
Count
Source
90
269k
{
91
269k
    T v;
92
269k
    return (any >>= v)
93
269k
        ? std::optional<T const>(std::move(v)) : std::optional<T const>();
94
269k
}
std::__1::optional<com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const> o3tl::detail::tryGetConverted<com::sun::star::uno::Reference<com::sun::star::text::XTextRange> >(com::sun::star::uno::Any const&)
Line
Count
Source
90
4.28k
{
91
4.28k
    T v;
92
4.28k
    return (any >>= v)
93
4.28k
        ? std::optional<T const>(std::move(v)) : std::optional<T const>();
94
4.28k
}
std::__1::optional<com::sun::star::uno::Reference<com::sun::star::beans::XPropertyState> const> o3tl::detail::tryGetConverted<com::sun::star::uno::Reference<com::sun::star::beans::XPropertyState> >(com::sun::star::uno::Any const&)
Line
Count
Source
90
2.15k
{
91
2.15k
    T v;
92
2.15k
    return (any >>= v)
93
2.15k
        ? std::optional<T const>(std::move(v)) : std::optional<T const>();
94
2.15k
}
Unexecuted instantiation: std::__1::optional<com::sun::star::uno::Reference<com::sun::star::form::XFormComponent> const> o3tl::detail::tryGetConverted<com::sun::star::uno::Reference<com::sun::star::form::XFormComponent> >(com::sun::star::uno::Any const&)
Unexecuted instantiation: std::__1::optional<com::sun::star::uno::Reference<com::sun::star::form::XForm> const> o3tl::detail::tryGetConverted<com::sun::star::uno::Reference<com::sun::star::form::XForm> >(com::sun::star::uno::Any const&)
Unexecuted instantiation: std::__1::optional<com::sun::star::uno::Reference<com::sun::star::drawing::XDrawPage> const> o3tl::detail::tryGetConverted<com::sun::star::uno::Reference<com::sun::star::drawing::XDrawPage> >(com::sun::star::uno::Any const&)
95
96
}
97
98
/** Try to access the value of a specific type stored in an Any.
99
100
    In trying to obtain a value, the same set of conversions as supported by
101
    ">>=" are considered.
102
103
    The returned object is a proxy.  Proxies can be either positive or negative.
104
    Each proxy can be contextually converted to bool, yielding true iff the
105
    proxy is positive.  For a positive proxy P representing a value of requested
106
    type T, for any T other than void, the expression *P yields that value of
107
    type T.  (Technically, the proxy is either a plain pointer or a
108
    std::optional, depending on whether a plain pointer into the given Any can
109
    be returned for the specified type.)
110
111
    @attention A proxy returned from this function must not outlive the
112
    corresponding Any passed into this function (as it may constitute a pointer
113
    into the Any's internals).  That is the reason why this function is
114
    restricted to lvalue arguments (i.e., to non-temporary Any objects), to
115
    avoid misuses like
116
    @code
117
      css::uno::Any f();
118
119
      if (auto p = o3tl::tryAccess<css::beans::NamedValue>(f())) {
120
        return p->Name;
121
      }
122
    @endcode
123
124
    @note Ideally this would be a public member function of css::uno::Any (at
125
    least conditional on LIBO_INTERNAL_ONLY, as it requires C++11).  However, as
126
    std::optional (which would be needed to implement the proxies) is only
127
    available since C++14, we need to use std::optional for now.  But To not
128
    make every entity that includes <com/sun/star/uno/Any.hxx> depend on
129
    boost_headers, keep this here for now.
130
131
    @tparam T  the C++ representation of a UNO type that can be contained in a
132
    UNO ANY (i.e., any UNO type other than ANY itself).  The legacy C++
133
    representations sal_Bool, cppu::UnoVoidType, cppu::UnoUnsignedShortType,
134
    cppu::UnoCharType, and cppu::UnoSequenceType are not supported.  Must be a
135
    complete type or void.
136
137
    @param any  an Any value.
138
139
    @return a positive proxy for the value of the specified type obtained from
140
    the given Any, or a negative proxy if no such value can be obtained.
141
*/
142
template<typename T> inline
143
typename std::enable_if<
144
    !(detail::IsDerivedReference<T>::value
145
      || detail::IsUnoSequenceType<T>::value
146
      || std::is_base_of<css::uno::XInterface, T>::value),
147
    typename detail::Optional<T>::type>::type
148
4.36M
tryAccess(css::uno::Any const & any) {
149
    // CHAR, STRING, TYPE, sequence types, enum types, struct types, exception
150
    // types, and com.sun.star.uno.XInterface interface type:
151
4.36M
    return cppu::UnoType<T>::get().isAssignableFrom(any.getValueType())
152
4.36M
        ? static_cast<T const *>(any.getValue()) : nullptr;
153
4.36M
}
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3rtl8OUStringEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS5_EE5valuesr3std10is_base_ofIN3com3sun4star3uno10XInterfaceES5_EE5valueENS_6detail8OptionalIS5_E4typeEE4typeERKNS9_3AnyE
_ZN4o3tl9tryAccessIN3com3sun4star3xml13AttributeDataEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Line
Count
Source
148
117k
tryAccess(css::uno::Any const & any) {
149
    // CHAR, STRING, TYPE, sequence types, enum types, struct types, exception
150
    // types, and com.sun.star.uno.XInterface interface type:
151
117k
    return cppu::UnoType<T>::get().isAssignableFrom(any.getValueType())
152
117k
        ? static_cast<T const *>(any.getValue()) : nullptr;
153
117k
}
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3awt8GradientEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star7drawing8LineDashEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceIaEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS9_EE5valuesr3std10is_base_ofINS4_10XInterfaceES9_EE5valueENS_6detail8OptionalIS9_E4typeEE4typeERKNS4_3AnyE
_ZN4o3tl9tryAccessIN3com3sun4star7drawing23PolyPolygonBezierCoordsEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Line
Count
Source
148
3.77k
tryAccess(css::uno::Any const & any) {
149
    // CHAR, STRING, TYPE, sequence types, enum types, struct types, exception
150
    // types, and com.sun.star.uno.XInterface interface type:
151
3.77k
    return cppu::UnoType<T>::get().isAssignableFrom(any.getValueType())
152
3.77k
        ? static_cast<T const *>(any.getValue()) : nullptr;
153
3.77k
}
_ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceINS5_INS3_3awt5PointEEEEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeISC_EE5valuesr3std10is_base_ofINS4_10XInterfaceESC_EE5valueENS_6detail8OptionalISC_E4typeEE4typeERKNS4_3AnyE
Line
Count
Source
148
2.75k
tryAccess(css::uno::Any const & any) {
149
    // CHAR, STRING, TYPE, sequence types, enum types, struct types, exception
150
    // types, and com.sun.star.uno.XInterface interface type:
151
2.75k
    return cppu::UnoType<T>::get().isAssignableFrom(any.getValueType())
152
2.75k
        ? static_cast<T const *>(any.getValue()) : nullptr;
153
2.75k
}
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceINS3_3awt5PointEEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeISB_EE5valuesr3std10is_base_ofINS4_10XInterfaceESB_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3awt5PointEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star7drawing10CircleKindEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star4util8DateTimeEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
_ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceINS3_5beans13PropertyValueEEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeISB_EE5valuesr3std10is_base_ofINS4_10XInterfaceESB_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Line
Count
Source
148
4.21M
tryAccess(css::uno::Any const & any) {
149
    // CHAR, STRING, TYPE, sequence types, enum types, struct types, exception
150
    // types, and com.sun.star.uno.XInterface interface type:
151
4.21M
    return cppu::UnoType<T>::get().isAssignableFrom(any.getValueType())
152
4.21M
        ? static_cast<T const *>(any.getValue()) : nullptr;
153
4.21M
}
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star5table11TableBorderEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceINS3_7drawing32EnhancedCustomShapeParameterPairEEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeISB_EE5valuesr3std10is_base_ofINS4_10XInterfaceESB_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceINS3_7drawing28EnhancedCustomShapeTextFrameEEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeISB_EE5valuesr3std10is_base_ofINS4_10XInterfaceESB_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star7drawing28EnhancedCustomShapeParameterEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star7drawing32EnhancedCustomShapeParameterPairEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star4text14PageNumberTypeEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star10animations9ValuePairEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceINS4_3AnyEEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeISA_EE5valuesr3std10is_base_ofINS4_10XInterfaceESA_EE5valueENS_6detail8OptionalISA_E4typeEE4typeERKS6_
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star10animations6TimingEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star10animations5EventEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star12presentation15ParagraphTargetEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star7drawing14RectanglePointEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3awt9FontSlantEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3awt14FontDescriptorEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
_ZN4o3tl9tryAccessIN3com3sun4star3awt4SizeEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Line
Count
Source
148
879
tryAccess(css::uno::Any const & any) {
149
    // CHAR, STRING, TYPE, sequence types, enum types, struct types, exception
150
    // types, and com.sun.star.uno.XInterface interface type:
151
879
    return cppu::UnoType<T>::get().isAssignableFrom(any.getValueType())
152
879
        ? static_cast<T const *>(any.getValue()) : nullptr;
153
879
}
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceINS3_5style7TabStopEEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeISB_EE5valuesr3std10is_base_ofINS4_10XInterfaceESB_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
_ZN4o3tl9tryAccessIN3com3sun4star3uno9ReferenceINS4_10XInterfaceEEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeISA_EE5valuesr3std10is_base_ofIS6_SA_EE5valueENS_6detail8OptionalISA_E4typeEE4typeERKNS4_3AnyE
Line
Count
Source
148
22.8k
tryAccess(css::uno::Any const & any) {
149
    // CHAR, STRING, TYPE, sequence types, enum types, struct types, exception
150
    // types, and com.sun.star.uno.XInterface interface type:
151
22.8k
    return cppu::UnoType<T>::get().isAssignableFrom(any.getValueType())
152
22.8k
        ? static_cast<T const *>(any.getValue()) : nullptr;
153
22.8k
}
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceINS5_INS4_3AnyEEEEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeISB_EE5valuesr3std10is_base_ofINS4_10XInterfaceESB_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKS6_
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3sdb10SQLContextEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
_ZN4o3tl9tryAccessIN3com3sun4star4sdbc12SQLExceptionEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Line
Count
Source
148
43
tryAccess(css::uno::Any const & any) {
149
    // CHAR, STRING, TYPE, sequence types, enum types, struct types, exception
150
    // types, and com.sun.star.uno.XInterface interface type:
151
43
    return cppu::UnoType<T>::get().isAssignableFrom(any.getValueType())
152
43
        ? static_cast<T const *>(any.getValue()) : nullptr;
153
43
}
Unexecuted instantiation: _ZN4o3tl9tryAccessIDsEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS3_EE5valuesr3std10is_base_ofIN3com3sun4star3uno10XInterfaceES3_EE5valueENS_6detail8OptionalIS3_E4typeEE4typeERKNS7_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star4util4DateEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star4util4TimeEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceINS4_9ReferenceINS3_3awt4tree9XTreeNodeEEEEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeISE_EE5valuesr3std10is_base_ofINS4_10XInterfaceESE_EE5valueENS_6detail8OptionalISE_E4typeEE4typeERKNS4_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno4TypeEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS4_10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS4_3AnyE
_ZN4o3tl9tryAccessIN3com3sun4star5style13DropCapFormatEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Line
Count
Source
148
8
tryAccess(css::uno::Any const & any) {
149
    // CHAR, STRING, TYPE, sequence types, enum types, struct types, exception
150
    // types, and com.sun.star.uno.XInterface interface type:
151
8
    return cppu::UnoType<T>::get().isAssignableFrom(any.getValueType())
152
8
        ? static_cast<T const *>(any.getValue()) : nullptr;
153
8
}
_ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceINS3_4text20TableColumnSeparatorEEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeISB_EE5valuesr3std10is_base_ofINS4_10XInterfaceESB_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Line
Count
Source
148
4.46k
tryAccess(css::uno::Any const & any) {
149
    // CHAR, STRING, TYPE, sequence types, enum types, struct types, exception
150
    // types, and com.sun.star.uno.XInterface interface type:
151
4.46k
    return cppu::UnoType<T>::get().isAssignableFrom(any.getValueType())
152
4.46k
        ? static_cast<T const *>(any.getValue()) : nullptr;
153
4.46k
}
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star4form14FormButtonTypeEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star4form16FormSubmitMethodEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star4form18FormSubmitEncodingEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceIN3rtl8OUStringEEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeISB_EE5valuesr3std10is_base_ofINS4_10XInterfaceESB_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno8SequenceIsEEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS9_EE5valuesr3std10is_base_ofINS4_10XInterfaceES9_EE5valueENS_6detail8OptionalIS9_E4typeEE4typeERKNS4_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star7drawing9FillStyleEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star7drawing9LineStyleEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3awt9RectangleEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star5style11LineSpacingEEENSt3__19enable_ifIXntoooosr6detail18IsDerivedReferenceIT_EE5valuesr6detail17IsUnoSequenceTypeIS8_EE5valuesr3std10is_base_ofINS3_3uno10XInterfaceES8_EE5valueENS_6detail8OptionalIS8_E4typeEE4typeERKNS9_3AnyE
154
155
template<> inline detail::Optional<void>::type tryAccess<void>(
156
    css::uno::Any const & any)
157
0
{
158
0
    return any.hasValue()
159
0
        ? std::optional<detail::Void const>()
160
0
        : std::optional<detail::Void const>(detail::Void());
161
0
}
162
163
template<> inline detail::Optional<bool>::type tryAccess<bool>(
164
    css::uno::Any const & any)
165
4.65M
{
166
4.65M
    return detail::tryGetConverted<bool>(any);
167
4.65M
}
168
169
template<> inline detail::Optional<sal_Int8>::type tryAccess<sal_Int8>(
170
    css::uno::Any const & any)
171
0
{
172
0
    return detail::tryGetConverted<sal_Int8>(any);
173
0
}
174
175
template<> inline detail::Optional<sal_Int16>::type tryAccess<sal_Int16>(
176
    css::uno::Any const & any)
177
2.43k
{
178
2.43k
    return detail::tryGetConverted<sal_Int16>(any);
179
2.43k
}
180
181
template<> inline detail::Optional<sal_uInt16>::type tryAccess<sal_uInt16>(
182
    css::uno::Any const & any)
183
10.3k
{
184
10.3k
    return detail::tryGetConverted<sal_uInt16>(any);
185
10.3k
}
186
187
template<> inline detail::Optional<sal_Int32>::type tryAccess<sal_Int32>(
188
    css::uno::Any const & any)
189
62.1k
{
190
62.1k
    return detail::tryGetConverted<sal_Int32>(any);
191
62.1k
}
192
193
template<> inline detail::Optional<sal_uInt32>::type tryAccess<sal_uInt32>(
194
    css::uno::Any const & any)
195
0
{
196
0
    return detail::tryGetConverted<sal_uInt32>(any);
197
0
}
198
199
template<> inline detail::Optional<sal_Int64>::type tryAccess<sal_Int64>(
200
    css::uno::Any const & any)
201
0
{
202
0
    return detail::tryGetConverted<sal_Int64>(any);
203
0
}
204
205
template<> inline detail::Optional<sal_uInt64>::type tryAccess<sal_uInt64>(
206
    css::uno::Any const & any)
207
0
{
208
0
    return detail::tryGetConverted<sal_uInt64>(any);
209
0
}
210
211
template<> inline detail::Optional<float>::type tryAccess<float>(
212
    css::uno::Any const & any)
213
0
{
214
0
    return detail::tryGetConverted<float>(any);
215
0
}
216
217
template<> inline detail::Optional<double>::type tryAccess<double>(
218
    css::uno::Any const & any)
219
0
{
220
0
    return detail::tryGetConverted<double>(any);
221
0
}
222
223
template<> detail::Optional<css::uno::Any>::type tryAccess<css::uno::Any>(
224
    css::uno::Any const &) = delete;
225
226
template<> detail::Optional<sal_Bool>::type tryAccess<sal_Bool>(
227
    css::uno::Any const &) = delete;
228
229
/*
230
231
// Already prevented by std::is_base_of<css::uno::XInterface, T> requiring T to
232
// be complete:
233
234
template<> detail::Optional<cppu::UnoVoidType>::type
235
tryAccess<cppu::UnoVoidType>(css::uno::Any const &) = delete;
236
237
template<> detail::Optional<cppu::UnoUnsignedShortType>::type
238
tryAccess<cppu::UnoUnsignedShortType>(css::uno::Any const &) = delete;
239
240
template<> detail::Optional<cppu::UnoCharType>::type
241
tryAccess<cppu::UnoCharType>(css::uno::Any const &) = delete;
242
243
*/
244
245
template<typename T> inline
246
typename std::enable_if<
247
    detail::IsDerivedReference<T>::value,
248
    typename detail::Optional<T>::type>::type
249
1.23M
tryAccess(css::uno::Any const & any) {
250
1.23M
    return detail::tryGetConverted<T>(any);
251
1.23M
}
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno9ReferenceINS3_4lang13XTypeProviderEEEEENSt3__19enable_ifIXsr6detail18IsDerivedReferenceIT_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
_ZN4o3tl9tryAccessIN3com3sun4star3uno9ReferenceINS3_4lang10XUnoTunnelEEEEENSt3__19enable_ifIXsr6detail18IsDerivedReferenceIT_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Line
Count
Source
249
955k
tryAccess(css::uno::Any const & any) {
250
955k
    return detail::tryGetConverted<T>(any);
251
955k
}
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno9ReferenceINS3_7drawing6XShapeEEEEENSt3__19enable_ifIXsr6detail18IsDerivedReferenceIT_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno9ReferenceINS3_2io12XInputStreamEEEEENSt3__19enable_ifIXsr6detail18IsDerivedReferenceIT_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
_ZN4o3tl9tryAccessIN3com3sun4star3uno9ReferenceINS3_5beans12XPropertySetEEEEENSt3__19enable_ifIXsr6detail18IsDerivedReferenceIT_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Line
Count
Source
249
269k
tryAccess(css::uno::Any const & any) {
250
269k
    return detail::tryGetConverted<T>(any);
251
269k
}
_ZN4o3tl9tryAccessIN3com3sun4star3uno9ReferenceINS3_4text10XTextRangeEEEEENSt3__19enable_ifIXsr6detail18IsDerivedReferenceIT_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Line
Count
Source
249
4.28k
tryAccess(css::uno::Any const & any) {
250
4.28k
    return detail::tryGetConverted<T>(any);
251
4.28k
}
_ZN4o3tl9tryAccessIN3com3sun4star3uno9ReferenceINS3_5beans14XPropertyStateEEEEENSt3__19enable_ifIXsr6detail18IsDerivedReferenceIT_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Line
Count
Source
249
2.15k
tryAccess(css::uno::Any const & any) {
250
2.15k
    return detail::tryGetConverted<T>(any);
251
2.15k
}
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno9ReferenceINS3_4form14XFormComponentEEEEENSt3__19enable_ifIXsr6detail18IsDerivedReferenceIT_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno9ReferenceINS3_4form5XFormEEEEENSt3__19enable_ifIXsr6detail18IsDerivedReferenceIT_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
Unexecuted instantiation: _ZN4o3tl9tryAccessIN3com3sun4star3uno9ReferenceINS3_7drawing9XDrawPageEEEEENSt3__19enable_ifIXsr6detail18IsDerivedReferenceIT_EE5valueENS_6detail8OptionalISB_E4typeEE4typeERKNS4_3AnyE
252
253
template<typename T> typename detail::Optional<T>::type tryAccess(
254
    css::uno::Any const volatile &&) = delete;
255
256
/** Access the value of a specific type stored in an Any, throwing an exception
257
    on failure.
258
259
    @attention A proxy returned from this function must not outlive the
260
    corresponding Any passed into this function (as it may constitute a pointer
261
    into the Any's internals).  However, unlike with tryAccess, the benefit of
262
    allowing this function to operate on temporaries appears to outweigh its
263
    dangers.
264
265
    @note Ideally this would be a public member function of css::uno::Any.  See
266
    tryAccess for details.
267
268
    @tparam T  the C++ representation of a UNO type that can be contained in a
269
    UNO ANY.  See tryAccess for details.
270
271
    @param any  an Any value.
272
273
    @return a positive proxy for the value of the specified type obtained from
274
    the given Any.  See tryAccess for details.
275
276
    @throws css::uno::RuntimeException  when a value of the requested type
277
    cannot be obtained.
278
*/
279
template<typename T> inline typename detail::Optional<T>::type doAccess(
280
    css::uno::Any const & any)
281
586k
{
282
586k
    auto opt = tryAccess<T>(any);
283
586k
    if (!opt) {
284
128
        throw css::uno::RuntimeException(
285
128
            OUString(
286
128
                cppu_Any_extraction_failure_msg(
287
128
                    &any, cppu::UnoType<T>::get().getTypeLibType()),
288
128
                SAL_NO_ACQUIRE));
289
128
    }
290
586k
    return opt;
291
586k
}
Unexecuted instantiation: o3tl::detail::Optional<long>::type o3tl::doAccess<long>(com::sun::star::uno::Any const&)
o3tl::detail::Optional<short>::type o3tl::doAccess<short>(com::sun::star::uno::Any const&)
Line
Count
Source
281
2.43k
{
282
2.43k
    auto opt = tryAccess<T>(any);
283
2.43k
    if (!opt) {
284
0
        throw css::uno::RuntimeException(
285
0
            OUString(
286
0
                cppu_Any_extraction_failure_msg(
287
0
                    &any, cppu::UnoType<T>::get().getTypeLibType()),
288
0
                SAL_NO_ACQUIRE));
289
0
    }
290
2.43k
    return opt;
291
2.43k
}
o3tl::detail::Optional<int>::type o3tl::doAccess<int>(com::sun::star::uno::Any const&)
Line
Count
Source
281
11.1k
{
282
11.1k
    auto opt = tryAccess<T>(any);
283
11.1k
    if (!opt) {
284
0
        throw css::uno::RuntimeException(
285
0
            OUString(
286
0
                cppu_Any_extraction_failure_msg(
287
0
                    &any, cppu::UnoType<T>::get().getTypeLibType()),
288
0
                SAL_NO_ACQUIRE));
289
0
    }
290
11.1k
    return opt;
291
11.1k
}
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::awt::Gradient>::type o3tl::doAccess<com::sun::star::awt::Gradient>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<unsigned int>::type o3tl::doAccess<unsigned int>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<rtl::OUString>::type o3tl::doAccess<rtl::OUString>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::drawing::LineDash>::type o3tl::doAccess<com::sun::star::drawing::LineDash>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::uno::Sequence<signed char> >::type o3tl::doAccess<com::sun::star::uno::Sequence<signed char> >(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::awt::Point>::type o3tl::doAccess<com::sun::star::awt::Point>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<unsigned short>::type o3tl::doAccess<unsigned short>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::uno::Sequence<com::sun::star::uno::Sequence<com::sun::star::awt::Point> > >::type o3tl::doAccess<com::sun::star::uno::Sequence<com::sun::star::uno::Sequence<com::sun::star::awt::Point> > >(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::drawing::PolyPolygonBezierCoords>::type o3tl::doAccess<com::sun::star::drawing::PolyPolygonBezierCoords>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::uno::Reference<com::sun::star::drawing::XShape> >::type o3tl::doAccess<com::sun::star::uno::Reference<com::sun::star::drawing::XShape> >(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::drawing::CircleKind>::type o3tl::doAccess<com::sun::star::drawing::CircleKind>(com::sun::star::uno::Any const&)
o3tl::detail::Optional<bool>::type o3tl::doAccess<bool>(com::sun::star::uno::Any const&)
Line
Count
Source
281
572k
{
282
572k
    auto opt = tryAccess<T>(any);
283
572k
    if (!opt) {
284
128
        throw css::uno::RuntimeException(
285
128
            OUString(
286
128
                cppu_Any_extraction_failure_msg(
287
128
                    &any, cppu::UnoType<T>::get().getTypeLibType()),
288
128
                SAL_NO_ACQUIRE));
289
128
    }
290
572k
    return opt;
291
572k
}
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::util::DateTime>::type o3tl::doAccess<com::sun::star::util::DateTime>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::uno::Sequence<com::sun::star::drawing::EnhancedCustomShapeParameterPair> >::type o3tl::doAccess<com::sun::star::uno::Sequence<com::sun::star::drawing::EnhancedCustomShapeParameterPair> >(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::uno::Sequence<com::sun::star::drawing::EnhancedCustomShapeTextFrame> >::type o3tl::doAccess<com::sun::star::uno::Sequence<com::sun::star::drawing::EnhancedCustomShapeTextFrame> >(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::drawing::EnhancedCustomShapeParameter>::type o3tl::doAccess<com::sun::star::drawing::EnhancedCustomShapeParameter>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::drawing::EnhancedCustomShapeParameterPair>::type o3tl::doAccess<com::sun::star::drawing::EnhancedCustomShapeParameterPair>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::text::PageNumberType>::type o3tl::doAccess<com::sun::star::text::PageNumberType>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::drawing::RectanglePoint>::type o3tl::doAccess<com::sun::star::drawing::RectanglePoint>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<float>::type o3tl::doAccess<float>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::awt::FontSlant>::type o3tl::doAccess<com::sun::star::awt::FontSlant>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::awt::FontDescriptor>::type o3tl::doAccess<com::sun::star::awt::FontDescriptor>(com::sun::star::uno::Any const&)
o3tl::detail::Optional<com::sun::star::awt::Size>::type o3tl::doAccess<com::sun::star::awt::Size>(com::sun::star::uno::Any const&)
Line
Count
Source
281
879
{
282
879
    auto opt = tryAccess<T>(any);
283
879
    if (!opt) {
284
0
        throw css::uno::RuntimeException(
285
0
            OUString(
286
0
                cppu_Any_extraction_failure_msg(
287
0
                    &any, cppu::UnoType<T>::get().getTypeLibType()),
288
0
                SAL_NO_ACQUIRE));
289
0
    }
290
879
    return opt;
291
879
}
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::uno::Sequence<com::sun::star::style::TabStop> >::type o3tl::doAccess<com::sun::star::uno::Sequence<com::sun::star::style::TabStop> >(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::uno::Reference<com::sun::star::uno::XInterface> >::type o3tl::doAccess<com::sun::star::uno::Reference<com::sun::star::uno::XInterface> >(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::sdbc::SQLException>::type o3tl::doAccess<com::sun::star::sdbc::SQLException>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::sdb::SQLContext>::type o3tl::doAccess<com::sun::star::sdb::SQLContext>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::util::Date>::type o3tl::doAccess<com::sun::star::util::Date>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::util::Time>::type o3tl::doAccess<com::sun::star::util::Time>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<double>::type o3tl::doAccess<double>(com::sun::star::uno::Any const&)
o3tl::detail::Optional<com::sun::star::style::DropCapFormat>::type o3tl::doAccess<com::sun::star::style::DropCapFormat>(com::sun::star::uno::Any const&)
Line
Count
Source
281
8
{
282
8
    auto opt = tryAccess<T>(any);
283
8
    if (!opt) {
284
0
        throw css::uno::RuntimeException(
285
0
            OUString(
286
0
                cppu_Any_extraction_failure_msg(
287
0
                    &any, cppu::UnoType<T>::get().getTypeLibType()),
288
0
                SAL_NO_ACQUIRE));
289
0
    }
290
8
    return opt;
291
8
}
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::form::FormButtonType>::type o3tl::doAccess<com::sun::star::form::FormButtonType>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::awt::Rectangle>::type o3tl::doAccess<com::sun::star::awt::Rectangle>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> >::type o3tl::doAccess<com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> >(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::style::LineSpacing>::type o3tl::doAccess<com::sun::star::style::LineSpacing>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::uno::Reference<com::sun::star::drawing::XDrawPage> >::type o3tl::doAccess<com::sun::star::uno::Reference<com::sun::star::drawing::XDrawPage> >(com::sun::star::uno::Any const&)
292
293
/** Access the value of a specific type stored in an Any, knowing the Any
294
    contains a value of a matching type.
295
296
    @attention A proxy returned from this function must not outlive the
297
    corresponding Any passed into this function (as it may constitute a pointer
298
    into the Any's internals).  However, unlike with tryAccess, the benefit of
299
    allowing this function to operate on temporaries appears to outweigh its
300
    dangers.
301
302
    @note Ideally this would be a public member function of css::uno::Any.  See
303
    tryAccess for details.
304
305
    @tparam T  the C++ representation of a UNO type that can be contained in a
306
    UNO ANY.  See tryAccess for details.
307
308
    @param any  an Any value.
309
310
    @return a positive proxy for the value of the specified type obtained from
311
    the given Any.  See tryAccess for details.
312
*/
313
template<typename T> inline typename detail::Optional<T>::type forceAccess(
314
    css::uno::Any const & any)
315
50.9k
{
316
50.9k
    auto opt = tryAccess<T>(any);
317
    assert(opt);
318
50.9k
    return opt;
319
50.9k
}
Unexecuted instantiation: o3tl::detail::Optional<signed char>::type o3tl::forceAccess<signed char>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<short>::type o3tl::forceAccess<short>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<unsigned short>::type o3tl::forceAccess<unsigned short>(com::sun::star::uno::Any const&)
o3tl::detail::Optional<int>::type o3tl::forceAccess<int>(com::sun::star::uno::Any const&)
Line
Count
Source
315
50.9k
{
316
50.9k
    auto opt = tryAccess<T>(any);
317
    assert(opt);
318
50.9k
    return opt;
319
50.9k
}
Unexecuted instantiation: o3tl::detail::Optional<unsigned int>::type o3tl::forceAccess<unsigned int>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<bool>::type o3tl::forceAccess<bool>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<rtl::OUString>::type o3tl::forceAccess<rtl::OUString>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<double>::type o3tl::forceAccess<double>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<char16_t>::type o3tl::forceAccess<char16_t>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<float>::type o3tl::forceAccess<float>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<com::sun::star::uno::Reference<com::sun::star::uno::XInterface> >::type o3tl::forceAccess<com::sun::star::uno::Reference<com::sun::star::uno::XInterface> >(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<long>::type o3tl::forceAccess<long>(com::sun::star::uno::Any const&)
Unexecuted instantiation: o3tl::detail::Optional<unsigned long>::type o3tl::forceAccess<unsigned long>(com::sun::star::uno::Any const&)
320
321
}
322
323
#endif
324
325
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */