1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23#ifndef __com_sun_star_reflection_TypeDescriptionManager_idl__ 24#define __com_sun_star_reflection_TypeDescriptionManager_idl__ 25 26#ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__ 27#include <com/sun/star/container/XHierarchicalNameAccess.idl> 28#endif 29 30#ifndef __com_sun_star_container_XSet_idl__ 31#include <com/sun/star/container/XSet.idl> 32#endif 33 34#ifndef __com_sun_star_lang_XInitialization_idl__ 35#include <com/sun/star/lang/XInitialization.idl> 36#endif 37 38#ifndef __com_sun_star_lang_XComponent_idl__ 39#include <com/sun/star/lang/XComponent.idl> 40#endif 41 42#ifndef __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__ 43#include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl> 44#endif 45 46//============================================================================= 47 48 module com { module sun { module star { module reflection { 49 50//============================================================================= 51 52/** This service manages type descriptions and acts as a central access point 53 to every type description. It delegates calls for demanded types to 54 subsequent 55 <type scope="com::sun::star::reflection">TypeDescriptionProvider</type>s 56 and may cache type descriptions.<br> 57 Using cppuhelper's bootstrapping routines bootstrapping an initial 58 component context, there is a singleton accessable via key 59 "/singletons/com.sun.star.reflection.theTypeDescriptionManager". 60 This singleton object is hooked into the C UNO runtime typelib and 61 lives until the context is shut down.<br> 62 63 @see com::sun::star::reflection::TypeDescriptionProvider 64 @see com::sun::star::reflection::XTypeDescription 65*/ 66published service TypeDescriptionManager 67{ 68 /** Interface to retrieve type descriptions. 69 70 <ul> 71 <li>Names are given in dotted notation, for example 72 <code>"com.sun.star.uno.XInterface"</code>.</li> 73 74 <li>Sequence types are accessible via 75 <code>"[]<var>ComponentType</var>"</code></li> 76 77 <li>Instantiated polymorphic struct types are accessible via 78 <code>"<var>StructType</var><<!-- 79 --><var>Parameter</var><sub>1</sub>,…,<!-- 80 --><var>Parameter</var><sub><var>n</var></sub>>"</code>.</li> 81 82 <li>Members of interface types are accessible via 83 <code>"<var>InterfaceType</var>::<var>Member</var>"</code>.</li> 84 </ul> 85 86 <p>The returned values are of interface type 87 <type>XTypeDescription</type>.</p> 88 89 <p>Even though the name of this interface suggests that the used type 90 names are hierarchic, this need not be the case. (For example, consider 91 the names of instantiated polymorphic struct types, like 92 <code>"Struct<long>"</code>.)</p> 93 */ 94 interface com::sun::star::container::XHierarchicalNameAccess; 95 96 /** You can manually add or remove a providers via this interface. 97 */ 98 interface com::sun::star::container::XSet; 99 100 /** Interface to signal shutdown to the manager.<br> 101 This signals all providers to shut down, because usually each provider 102 references its manager, listening for disposing events. 103 */ 104 [optional] interface com::sun::star::lang::XComponent; 105 106 /** Interface for creating enumerations for type descriptions supported 107 by this <type>TypeDescriptionManager</type> 108 109 @since OpenOffice 1.1.2 110 */ 111 [optional] interface XTypeDescriptionEnumerationAccess; 112}; 113 114//============================================================================= 115 116}; }; }; }; 117 118/*============================================================================= 119 120=============================================================================*/ 121#endif 122