| /************************************************************** |
| * |
| * 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_ucb_ContentProviderProxy_idl__ |
| #define __com_sun_star_ucb_ContentProviderProxy_idl__ |
| |
| #ifndef __com_sun_star_ucb_XContentProviderSupplier_idl__ |
| #include <com/sun/star/ucb/XContentProviderSupplier.idl> |
| #endif |
| |
| #ifndef __com_sun_star_ucb_XContentProvider_idl__ |
| #include <com/sun/star/ucb/XContentProvider.idl> |
| #endif |
| |
| #ifndef __com_sun_star_ucb_XParameterizedContentProvider_idl__ |
| #include <com/sun/star/ucb/XParameterizedContentProvider.idl> |
| #endif |
| |
| //============================================================================= |
| |
| module com { module sun { module star { module ucb { |
| |
| //============================================================================= |
| /** is a proxy for a content provider. |
| |
| <p>Implementing a content provider proxy can be useful if the creation of |
| the real content provider object shall be deferred for some reason |
| (i.e. performance) until the first method gets called on it. Instaead of |
| instanciating and registering the real provider at the UCB, a proxy for |
| the real provider can be created and registered at the UCB. |
| |
| @see XContentProviderProxyFactory |
| */ |
| published service ContentProviderProxy |
| { |
| //------------------------------------------------------------------------- |
| /** The implementation of |
| <member scope="com::sun::star::uno">XInterface::queryInterface</member> |
| must instanciate the real provider and return the return value |
| of a queryInterface call at the real provider, except for queries |
| for the interfaces implemented by the proxy itself. So the caller of |
| the queryInterface method at the proxy will get access to the real |
| provider in a completely transparent way. |
| */ |
| interface com::sun::star::uno::XInterface; |
| |
| //------------------------------------------------------------------------- |
| /** gives access to the original content provider behind the proxy. |
| |
| <p>The implementation will instantiate the real content provider only |
| on demand using its UNO service name. This will load the content |
| providers implementation code (dynamic library), if not already done. |
| */ |
| interface com::sun::star::ucb::XContentProviderSupplier; |
| |
| //------------------------------------------------------------------------- |
| /** a content provider implementation that wrappes the original provider. |
| */ |
| interface com::sun::star::ucb::XContentProvider; |
| |
| //------------------------------------------------------------------------- |
| /** a parameterized content provider implementation that wrappes the |
| original provider. |
| */ |
| interface com::sun::star::ucb::XParameterizedContentProvider; |
| }; |
| |
| //============================================================================= |
| |
| }; }; }; }; |
| |
| #endif |