blob: 14f5eb6e1c26371aa9573f85cdeb3482ae46cb2d [file] [log] [blame]
/**************************************************************
*
* 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>&lt;<!--
--><var>Parameter</var><sub>1</sub>,&hellip;,<!--
--><var>Parameter</var><sub><var>n</var></sub>&gt;"</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&lt;long&gt;"</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