Line data Source code
1 : #ifndef INCLUDED_COM_SUN_STAR_UNO_TYPECLASS_HPP
2 : #define INCLUDED_COM_SUN_STAR_UNO_TYPECLASS_HPP
3 :
4 : #include "sal/config.h"
5 :
6 : #include "com/sun/star/uno/TypeClass.hdl"
7 :
8 : #include "com/sun/star/uno/Type.hxx"
9 : #include "cppu/unotype.hxx"
10 : #include "osl/mutex.hxx"
11 : #include "rtl/instance.hxx"
12 :
13 : namespace com { namespace sun { namespace star { namespace uno { namespace detail {
14 :
15 : struct theTypeClassType : public rtl::StaticWithInit< ::com::sun::star::uno::Type *, theTypeClassType >
16 : {
17 34 : ::com::sun::star::uno::Type * operator()() const
18 : {
19 34 : ::rtl::OUString sTypeName( "com.sun.star.uno.TypeClass" );
20 :
21 : // Start inline typedescription generation
22 34 : typelib_TypeDescription * pTD = 0;
23 :
24 : rtl_uString* enumValueNames[32];
25 34 : ::rtl::OUString sEnumValue0( "VOID" );
26 34 : enumValueNames[0] = sEnumValue0.pData;
27 34 : ::rtl::OUString sEnumValue1( "CHAR" );
28 34 : enumValueNames[1] = sEnumValue1.pData;
29 34 : ::rtl::OUString sEnumValue2( "BOOLEAN" );
30 34 : enumValueNames[2] = sEnumValue2.pData;
31 34 : ::rtl::OUString sEnumValue3( "BYTE" );
32 34 : enumValueNames[3] = sEnumValue3.pData;
33 34 : ::rtl::OUString sEnumValue4( "SHORT" );
34 34 : enumValueNames[4] = sEnumValue4.pData;
35 34 : ::rtl::OUString sEnumValue5( "UNSIGNED_SHORT" );
36 34 : enumValueNames[5] = sEnumValue5.pData;
37 34 : ::rtl::OUString sEnumValue6( "LONG" );
38 34 : enumValueNames[6] = sEnumValue6.pData;
39 34 : ::rtl::OUString sEnumValue7( "UNSIGNED_LONG" );
40 34 : enumValueNames[7] = sEnumValue7.pData;
41 34 : ::rtl::OUString sEnumValue8( "HYPER" );
42 34 : enumValueNames[8] = sEnumValue8.pData;
43 34 : ::rtl::OUString sEnumValue9( "UNSIGNED_HYPER" );
44 34 : enumValueNames[9] = sEnumValue9.pData;
45 34 : ::rtl::OUString sEnumValue10( "FLOAT" );
46 34 : enumValueNames[10] = sEnumValue10.pData;
47 34 : ::rtl::OUString sEnumValue11( "DOUBLE" );
48 34 : enumValueNames[11] = sEnumValue11.pData;
49 34 : ::rtl::OUString sEnumValue12( "STRING" );
50 34 : enumValueNames[12] = sEnumValue12.pData;
51 34 : ::rtl::OUString sEnumValue13( "TYPE" );
52 34 : enumValueNames[13] = sEnumValue13.pData;
53 34 : ::rtl::OUString sEnumValue14( "ANY" );
54 34 : enumValueNames[14] = sEnumValue14.pData;
55 34 : ::rtl::OUString sEnumValue15( "ENUM" );
56 34 : enumValueNames[15] = sEnumValue15.pData;
57 34 : ::rtl::OUString sEnumValue16( "TYPEDEF" );
58 34 : enumValueNames[16] = sEnumValue16.pData;
59 34 : ::rtl::OUString sEnumValue17( "STRUCT" );
60 34 : enumValueNames[17] = sEnumValue17.pData;
61 34 : ::rtl::OUString sEnumValue18( "UNION" );
62 34 : enumValueNames[18] = sEnumValue18.pData;
63 34 : ::rtl::OUString sEnumValue19( "EXCEPTION" );
64 34 : enumValueNames[19] = sEnumValue19.pData;
65 34 : ::rtl::OUString sEnumValue20( "SEQUENCE" );
66 34 : enumValueNames[20] = sEnumValue20.pData;
67 34 : ::rtl::OUString sEnumValue21( "ARRAY" );
68 34 : enumValueNames[21] = sEnumValue21.pData;
69 34 : ::rtl::OUString sEnumValue22( "INTERFACE" );
70 34 : enumValueNames[22] = sEnumValue22.pData;
71 34 : ::rtl::OUString sEnumValue23( "SERVICE" );
72 34 : enumValueNames[23] = sEnumValue23.pData;
73 34 : ::rtl::OUString sEnumValue24( "MODULE" );
74 34 : enumValueNames[24] = sEnumValue24.pData;
75 34 : ::rtl::OUString sEnumValue25( "INTERFACE_METHOD" );
76 34 : enumValueNames[25] = sEnumValue25.pData;
77 34 : ::rtl::OUString sEnumValue26( "INTERFACE_ATTRIBUTE" );
78 34 : enumValueNames[26] = sEnumValue26.pData;
79 34 : ::rtl::OUString sEnumValue27( "UNKNOWN" );
80 34 : enumValueNames[27] = sEnumValue27.pData;
81 34 : ::rtl::OUString sEnumValue28( "PROPERTY" );
82 34 : enumValueNames[28] = sEnumValue28.pData;
83 34 : ::rtl::OUString sEnumValue29( "CONSTANT" );
84 34 : enumValueNames[29] = sEnumValue29.pData;
85 34 : ::rtl::OUString sEnumValue30( "CONSTANTS" );
86 34 : enumValueNames[30] = sEnumValue30.pData;
87 34 : ::rtl::OUString sEnumValue31( "SINGLETON" );
88 34 : enumValueNames[31] = sEnumValue31.pData;
89 :
90 : sal_Int32 enumValues[32];
91 34 : enumValues[0] = 0;
92 34 : enumValues[1] = 1;
93 34 : enumValues[2] = 2;
94 34 : enumValues[3] = 3;
95 34 : enumValues[4] = 4;
96 34 : enumValues[5] = 5;
97 34 : enumValues[6] = 6;
98 34 : enumValues[7] = 7;
99 34 : enumValues[8] = 8;
100 34 : enumValues[9] = 9;
101 34 : enumValues[10] = 10;
102 34 : enumValues[11] = 11;
103 34 : enumValues[12] = 12;
104 34 : enumValues[13] = 13;
105 34 : enumValues[14] = 14;
106 34 : enumValues[15] = 15;
107 34 : enumValues[16] = 16;
108 34 : enumValues[17] = 17;
109 34 : enumValues[18] = 18;
110 34 : enumValues[19] = 19;
111 34 : enumValues[20] = 20;
112 34 : enumValues[21] = 21;
113 34 : enumValues[22] = 22;
114 34 : enumValues[23] = 23;
115 34 : enumValues[24] = 24;
116 34 : enumValues[25] = 25;
117 34 : enumValues[26] = 26;
118 34 : enumValues[27] = 27;
119 34 : enumValues[28] = 28;
120 34 : enumValues[29] = 29;
121 34 : enumValues[30] = 30;
122 34 : enumValues[31] = 31;
123 :
124 : typelib_typedescription_newEnum( &pTD,
125 : sTypeName.pData,
126 : (sal_Int32)::com::sun::star::uno::TypeClass_VOID,
127 34 : 32, enumValueNames, enumValues );
128 :
129 34 : typelib_typedescription_register( (typelib_TypeDescription**)&pTD );
130 34 : typelib_typedescription_release( pTD );
131 : // End inline typedescription generation
132 :
133 34 : return new ::com::sun::star::uno::Type( ::com::sun::star::uno::TypeClass_ENUM, sTypeName ); // leaked
134 : }
135 : };
136 :
137 : } } } } }
138 :
139 : namespace com { namespace sun { namespace star { namespace uno {
140 :
141 54 : inline ::com::sun::star::uno::Type const & cppu_detail_getUnoType(SAL_UNUSED_PARAMETER css::uno::TypeClass const *) {
142 54 : return *detail::theTypeClassType::get();
143 : }
144 :
145 : } } } }
146 :
147 1 : inline ::com::sun::star::uno::Type const & SAL_CALL getCppuType(SAL_UNUSED_PARAMETER css::uno::TypeClass const *) SAL_THROW(()) {
148 1 : return ::cppu::UnoType< css::uno::TypeClass >::get();
149 : }
150 :
151 : #endif // INCLUDED_COM_SUN_STAR_UNO_TYPECLASS_HPP
|