Branch data Line data Source code
1 : : #ifndef INCLUDED_INTERFACE2_HPP
2 : : #define INCLUDED_INTERFACE2_HPP
3 : :
4 : : #include "sal/config.h"
5 : :
6 : : #include "Interface2.hdl"
7 : :
8 : : #include "com/sun/star/uno/RuntimeException.hpp"
9 : : #include "com/sun/star/uno/XInterface.hpp"
10 : : #include "com/sun/star/uno/Reference.hxx"
11 : : #include "com/sun/star/uno/Type.hxx"
12 : : #include "cppu/unotype.hxx"
13 : : #include "osl/mutex.hxx"
14 : : #include "rtl/instance.hxx"
15 : :
16 : : namespace detail {
17 : :
18 : : struct theInterface2Type : public rtl::StaticWithInit< ::com::sun::star::uno::Type *, theInterface2Type >
19 : : {
20 : 5 : ::com::sun::star::uno::Type * operator()() const
21 : : {
22 [ + - ]: 5 : ::rtl::OUString sTypeName( RTL_CONSTASCII_USTRINGPARAM("Interface2") );
23 : :
24 : : // Start inline typedescription generation
25 : 5 : typelib_InterfaceTypeDescription * pTD = 0;
26 : :
27 : : typelib_TypeDescriptionReference * aSuperTypes[1];
28 [ + - ]: 5 : aSuperTypes[0] = ::cppu::UnoType< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > >::get().getTypeLibType();
29 : :
30 : : typelib_typedescription_newMIInterface(
31 : : &pTD,
32 : : sTypeName.pData, 0x00000000, 0x0000, 0x0000, 0x00000000, 0x00000000,
33 : : 1, aSuperTypes,
34 : : 0,
35 : 5 : 0 );
36 : :
37 : 5 : typelib_typedescription_register( (typelib_TypeDescription**)&pTD );
38 : 5 : typelib_typedescription_release( (typelib_TypeDescription*)pTD );
39 : :
40 : 5 : return new ::com::sun::star::uno::Type( ::com::sun::star::uno::TypeClass_INTERFACE, sTypeName ); // leaked
41 : : }
42 : : };
43 : :
44 : : }
45 : :
46 : 35 : inline ::com::sun::star::uno::Type const & cppu_detail_getUnoType(SAL_UNUSED_PARAMETER Interface2 const *) {
47 : 35 : const ::com::sun::star::uno::Type &rRet = *detail::theInterface2Type::get();
48 : : // End inline typedescription generation
49 : : static bool bInitStarted = false;
50 [ + + ]: 35 : if (!bInitStarted)
51 : : {
52 [ + - ][ + - ]: 5 : ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
53 [ + - ]: 5 : if (!bInitStarted)
54 : : {
55 : : OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
56 : 5 : bInitStarted = true;
57 [ + - ]: 5 : ::cppu::UnoType< ::com::sun::star::uno::RuntimeException >::get();
58 [ + - ]: 5 : }
59 : : }
60 : : else
61 : : {
62 : : OSL_DOUBLE_CHECKED_LOCKING_MEMORY_BARRIER();
63 : : }
64 : 35 : return rRet;
65 : : }
66 : :
67 : : inline ::com::sun::star::uno::Type const & SAL_CALL getCppuType(SAL_UNUSED_PARAMETER ::com::sun::star::uno::Reference< Interface2 > const *) SAL_THROW(()) {
68 : : return ::cppu::UnoType< ::com::sun::star::uno::Reference< Interface2 > >::get();
69 : : }
70 : :
71 : : ::com::sun::star::uno::Type const & Interface2::static_type(SAL_UNUSED_PARAMETER void *) {
72 : : return ::getCppuType(static_cast< ::com::sun::star::uno::Reference< Interface2 > * >(0));
73 : : }
74 : :
75 : : #endif // INCLUDED_INTERFACE2_HPP
|