| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| #ifndef __com_sun_star_reflection_TypeDescriptionManager_idl__ |
| #define __com_sun_star_reflection_TypeDescriptionManager_idl__ |
| |
| #ifndef __com_sun_star_container_XHierarchicalNameAccess_idl__ |
| #include <com/sun/star/container/XHierarchicalNameAccess.idl> |
| #endif |
| |
| #ifndef __com_sun_star_container_XSet_idl__ |
| #include <com/sun/star/container/XSet.idl> |
| #endif |
| |
| #ifndef __com_sun_star_lang_XInitialization_idl__ |
| #include <com/sun/star/lang/XInitialization.idl> |
| #endif |
| |
| #ifndef __com_sun_star_lang_XComponent_idl__ |
| #include <com/sun/star/lang/XComponent.idl> |
| #endif |
| |
| #ifndef __com_sun_star_reflection_XTypeDescriptionEnumerationAccess_idl__ |
| #include <com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl> |
| #endif |
| |
| //============================================================================= |
| |
| module com { module sun { module star { module reflection { |
| |
| //============================================================================= |
| |
| /** This service manages type descriptions and acts as a central access point |
| to every type description. It delegates calls for demanded types to |
| subsequent |
| <type scope="com::sun::star::reflection">TypeDescriptionProvider</type>s |
| and may cache type descriptions.<br> |
| Using cppuhelper's bootstrapping routines bootstrapping an initial |
| component context, there is a singleton accessable via key |
| "/singletons/com.sun.star.reflection.theTypeDescriptionManager". |
| This singleton object is hooked into the C UNO runtime typelib and |
| lives until the context is shut down.<br> |
| |
| @see com::sun::star::reflection::TypeDescriptionProvider |
| @see com::sun::star::reflection::XTypeDescription |
| */ |
| published service TypeDescriptionManager |
| { |
| /** Interface to retrieve type descriptions. |
| |
| <ul> |
| <li>Names are given in dotted notation, for example |
| <code>"com.sun.star.uno.XInterface"</code>.</li> |
| |
| <li>Sequence types are accessible via |
| <code>"[]<var>ComponentType</var>"</code></li> |
| |
| <li>Instantiated polymorphic struct types are accessible via |
| <code>"<var>StructType</var><<!-- |
| --><var>Parameter</var><sub>1</sub>,…,<!-- |
| --><var>Parameter</var><sub><var>n</var></sub>>"</code>.</li> |
| |
| <li>Members of interface types are accessible via |
| <code>"<var>InterfaceType</var>::<var>Member</var>"</code>.</li> |
| </ul> |
| |
| <p>The returned values are of interface type |
| <type>XTypeDescription</type>.</p> |
| |
| <p>Even though the name of this interface suggests that the used type |
| names are hierarchic, this need not be the case. (For example, consider |
| the names of instantiated polymorphic struct types, like |
| <code>"Struct<long>"</code>.)</p> |
| */ |
| interface com::sun::star::container::XHierarchicalNameAccess; |
| |
| /** You can manually add or remove a providers via this interface. |
| */ |
| interface com::sun::star::container::XSet; |
| |
| /** Interface to signal shutdown to the manager.<br> |
| This signals all providers to shut down, because usually each provider |
| references its manager, listening for disposing events. |
| */ |
| [optional] interface com::sun::star::lang::XComponent; |
| |
| /** Interface for creating enumerations for type descriptions supported |
| by this <type>TypeDescriptionManager</type> |
| |
| @since OpenOffice 1.1.2 |
| */ |
| [optional] interface XTypeDescriptionEnumerationAccess; |
| }; |
| |
| //============================================================================= |
| |
| }; }; }; }; |
| |
| /*============================================================================= |
| |
| =============================================================================*/ |
| #endif |