| /************************************************************** |
| * |
| * 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_loader_XImplementationLoader_idl__ |
| #define __com_sun_star_loader_XImplementationLoader_idl__ |
| |
| #ifndef __com_sun_star_uno_XInterface_idl__ |
| #include <com/sun/star/uno/XInterface.idl> |
| #endif |
| |
| #ifndef __com_sun_star_registry_XRegistryKey_idl__ |
| #include <com/sun/star/registry/XRegistryKey.idl> |
| #endif |
| |
| #ifndef __com_sun_star_registry_CannotRegisterImplementationException_idl__ |
| #include <com/sun/star/registry/CannotRegisterImplementationException.idl> |
| #endif |
| |
| #ifndef __com_sun_star_loader_CannotActivateFactoryException_idl__ |
| #include <com/sun/star/loader/CannotActivateFactoryException.idl> |
| #endif |
| |
| //============================================================================= |
| |
| module com { module sun { module star { module loader { |
| |
| //============================================================================= |
| |
| /** handles activation (loading) of a UNO component. |
| @see com::sun::star::registry::XImplementationRegistration |
| */ |
| published interface XImplementationLoader: com::sun::star::uno::XInterface |
| { |
| //------------------------------------------------------------------------- |
| |
| /** activates a concrete implementation within a component. |
| @param implementationName The name of the implementation, |
| which shall be instantiated. The method |
| <member>XImplementationLoader::writeRegistryInfo</member> |
| writes a list of implementation names hosted by this component. |
| @param implementationLoaderUrl specification bug, ignore this parameter, please |
| pass an empty string. |
| @param locationUrl Points to the location of the file containing |
| the component (for instance a .jar-file or a shared library). |
| This parameter |
| should be in an URL format (= protocol:protocol-dependent-part). |
| In case the string contains no |
| leading "protocol:", the implementation in general assumes, |
| that it is a relative file url. <p>Special loaders may define |
| their own protocol (for instance an executable loader may need |
| more than only one file url). |
| |
| @param xKey A registry which may be used to read static data previously |
| written via <method>XImplementationLoader::writeRegistryInfo()</method>. |
| The use of this parameter is deprecated. |
| |
| @return returns a factory interface, which allows to create an instance of |
| the concrete implementation. In general, the object supports a |
| <type scope="com::sun::star::lang">XSingleComponentFactory</type> |
| and the <type scope="com::sun::star::lang">XServiceInfo</type> interface. The |
| XServiceInfo interface informs about the capabilities of the |
| service implementation, not the factory itself. |
| */ |
| com::sun::star::uno::XInterface activate( [in] string implementationName, |
| [in] string implementationLoaderUrl, |
| [in] string locationUrl, |
| [in] com::sun::star::registry::XRegistryKey xKey ) |
| raises( com::sun::star::loader::CannotActivateFactoryException ); |
| |
| //------------------------------------------------------------------------- |
| /** writes a list of all implementations hosted by this component into a registry key. |
| <p>This method is called during registering a component. |
| @param xKey The registry key, which shall be used to write for each |
| implementation the implementation name plus a list of supported |
| services. |
| @param implementationLoaderUrl specification bug, ignore this parameter, please |
| pass an empty string. |
| @param locationUrl Points to the location of the file containing |
| the component (for instance a .jar-file or a shared library). |
| This parameter |
| should be in an URL format (= protocol:protocol-dependent-part). |
| In case the string contains no |
| leading "protocol:", the implementation in general assumes, |
| that it is a relative file url. <p>Special loaders may define |
| their own protocol (for instance an executable loader may need |
| more than only one file url). |
| @see com::sun::star::registry::XImplementationRegistration |
| */ |
| boolean writeRegistryInfo( [in] com::sun::star::registry::XRegistryKey xKey, |
| [in] string implementationLoaderUrl, |
| [in] string locationUrl ) |
| raises( com::sun::star::registry::CannotRegisterImplementationException ); |
| |
| }; |
| |
| //============================================================================= |
| |
| }; }; }; }; |
| |
| #endif |