diff options
author | Noel Grandin <noel@peralex.com> | 2012-09-13 11:01:15 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2012-09-14 18:24:48 +0200 |
commit | 2e284203da7f9882842111265f5f68ea0a145065 (patch) | |
tree | 40eb08bffa732c6371bb15eff73a8d2ff18859a3 /offapi | |
parent | 82e94dcaab4534f657458a2461033d686f10cb10 (diff) |
fdo#46808, Adapt ucb::UniversalContentBroker UNO service to new style
Create a merged XUniversalContentBroker interface for this service to implement.
Which is backwards-compatible, but does not require creating a new service.
Change-Id: Id264387bf8af8bf211050e15b8801a1fde368167
Diffstat (limited to 'offapi')
-rw-r--r-- | offapi/UnoApi_offapi.mk | 3 | ||||
-rw-r--r-- | offapi/com/sun/star/ucb/UniversalContentBroker.idl | 121 | ||||
-rw-r--r-- | offapi/com/sun/star/ucb/XUniversalContentBroker.idl | 153 | ||||
-rw-r--r-- | offapi/type_reference/types.rdb | bin | 7655424 -> 7655424 bytes |
4 files changed, 159 insertions, 118 deletions
diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk index 740bf33cd0b9..558747878479 100644 --- a/offapi/UnoApi_offapi.mk +++ b/offapi/UnoApi_offapi.mk @@ -288,6 +288,7 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/ucb,\ SimpleFileAccess \ SortedDynamicResultSetFactory \ Store \ + UniversalContentBroker \ )) $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/ui,\ GlobalAcceleratorConfiguration \ @@ -1449,7 +1450,6 @@ $(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,offapi/com/sun/star/ucb,\ TransientDocumentsFolderContent \ TransientDocumentsRootContent \ TransientDocumentsStreamContent \ - UniversalContentBroker \ WebDAVContentProvider \ WebDAVDocumentContent \ WebDAVFolderContent \ @@ -3918,6 +3918,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/ucb,\ XSimpleFileAccess3 \ XSortedDynamicResultSetFactory \ XSourceInitialization \ + XUniversalContentBroker \ XWebDAVCommandEnvironment \ )) $(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/ui,\ diff --git a/offapi/com/sun/star/ucb/UniversalContentBroker.idl b/offapi/com/sun/star/ucb/UniversalContentBroker.idl index 44fa60623617..6d764341a275 100644 --- a/offapi/com/sun/star/ucb/UniversalContentBroker.idl +++ b/offapi/com/sun/star/ucb/UniversalContentBroker.idl @@ -28,13 +28,7 @@ #ifndef __com_sun_star_ucb_UniversalContentBroker_idl__ #define __com_sun_star_ucb_UniversalContentBroker_idl__ -#include <com/sun/star/lang/XComponent.idl> -#include <com/sun/star/ucb/XCommandProcessor.idl> -#include <com/sun/star/ucb/XCommandProcessor2.idl> -#include <com/sun/star/ucb/XContentProviderManager.idl> -#include <com/sun/star/ucb/XContentProvider.idl> -#include <com/sun/star/ucb/XContentIdentifierFactory.idl> -#include <com/sun/star/lang/XInitialization.idl> +#include <com/sun/star/ucb/XUniversalContentBroker.idl> module com { module sun { module star { module ucb { @@ -51,118 +45,11 @@ module com { module sun { module star { module ucb { <p>If the instance is created without arguments, the newly instantiated broker is not configured. */ -published service UniversalContentBroker +published service UniversalContentBroker : XUniversalContentBroker { - /** must be implemented to make it possible to resolve cyclic object - references. - - <p>Those references i.e. may occur if content provider implementations - hold references to the Broker. The Broker itself always holds its - providers. If the Broker shall be released, - <member scope="com::sun::star::lang">XComponent::dispose</member> - must be called at the Broker. The implementation of this method must - call - <member scope="com::sun::star::lang">XEventListener::disposing</member> - on the registered listeners (the providers holding the Broker must be - those listeners) and release the appropriate object references. At - the other hand, the implementation of XEventListener::disposing must - release its appropriate references. - - <p>This interface is required. - */ - interface com::sun::star::lang::XComponent; - - /** provides access to all kind of contents provided by the registered - content providers. - - <p>This interface is required. - */ - interface com::sun::star::ucb::XContentProvider; - - /** provides access to a set of content providers registered with the UCB. - - <p>This interface is required. - */ - interface com::sun::star::ucb::XContentProviderManager; - - /** creates <type>XContentIdentifier</type> implementation objects for - all kind of contents provided by the UCB. - - <p>This interface is required. - */ - interface com::sun::star::ucb::XContentIdentifierFactory; - - /** supports the configuration of a newly created broker. - - <p>The - <member scope="com::sun::star::lang">XInitialization::initialize</member> - method should be called with two arguments of type string. These strings - are used as a pair of keys to retrieve a set of content provider - descriptions from the configuration management (stored at - <code>org.openoffice.ucb.Configuration.ContentProviders.<var>key<sub>1</sub></var>.SecondaryKeys.<var>key<sub>2</sub></var>.ProviderData</code> - within the configuration management's hierarchy). The retrieved - descriptions are in turn used to register the corresponding content - provider services at the broker. - - <p>Typical values for the pair of strings would be - <code>"Local"</code>/<code>"Office"</code>, to configure a broker that - contains all the relevant content providers. - - <p>This interface is required. - */ - interface com::sun::star::lang::XInitialization; - - /** enables the caller to execute commands at the broker. - - <p>This interface is required. - - <p><pre> - ======================================================================= - Commands: - ======================================================================= - - [return type] - [command name] - [parameter type and name] - - ----------------------------------------------------------------------- - Required commands: - ----------------------------------------------------------------------- - - // This command obtains an interface which allows to query - // information on commands supported by the Content Broker. - - <type>XCommandInfo</type> - getCommandInfo - void - - // This command transfers Contents from one location to another. - // Additionally, it can be used to create a link to a Content. - // The implementation must be able to handle Contents provided - // by any Content Provider. This is different from the command - // "transfer" that can be supported by a Content. That command - // typically can only handle <type>Content</type>s provided by one - // <type>ContentProvider</type>. - - void - globalTransfer - <type>GlobalTransferCommandArgument</type> - </pre> - */ - interface com::sun::star::ucb::XCommandProcessor; - - /** is an enhanced version of <type>XCommandProcessor</type> that has an - additional method for releasing command identifiers obtained via - <member>XCommandProcessor::createCommandIdentifier</member> to avoid - resource leaks. For a detailed description of the problem refer to - <member>XCommandProcessor2::releaseCommandIdentifier</member>. - - <p>Where many existing <type>UniversalContentBroker</type> - implementations do not (yet), every new implementation should support - this interface. - */ - [optional] interface com::sun::star::ucb::XCommandProcessor2; + createDefault(); + createWithKeys([in] string primaryConfigKey, [in] string secondaryConfigKey); }; diff --git a/offapi/com/sun/star/ucb/XUniversalContentBroker.idl b/offapi/com/sun/star/ucb/XUniversalContentBroker.idl new file mode 100644 index 000000000000..ff0313e2fc89 --- /dev/null +++ b/offapi/com/sun/star/ucb/XUniversalContentBroker.idl @@ -0,0 +1,153 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ +#ifndef __com_sun_star_ucb_XUniversalContentBroker_idl__ +#define __com_sun_star_ucb_XUniversalContentBroker_idl__ + +#include <com/sun/star/lang/XComponent.idl> +#include <com/sun/star/ucb/XCommandProcessor.idl> +#include <com/sun/star/ucb/XCommandProcessor2.idl> +#include <com/sun/star/ucb/XContentProviderManager.idl> +#include <com/sun/star/ucb/XContentProvider.idl> +#include <com/sun/star/ucb/XContentIdentifierFactory.idl> +#include <com/sun/star/lang/XInitialization.idl> + + +module com { module sun { module star { module ucb { + +/** + + @since LibreOffice 3.7 +*/ +published interface XUniversalContentBroker +{ + /** must be implemented to make it possible to resolve cyclic object + references. + + <p>Those references i.e. may occur if content provider implementations + hold references to the Broker. The Broker itself always holds its + providers. If the Broker shall be released, + <member scope="com::sun::star::lang">XComponent::dispose</member> + must be called at the Broker. The implementation of this method must + call + <member scope="com::sun::star::lang">XEventListener::disposing</member> + on the registered listeners (the providers holding the Broker must be + those listeners) and release the appropriate object references. At + the other hand, the implementation of XEventListener::disposing must + release its appropriate references. + + <p>This interface is required. + */ + interface com::sun::star::lang::XComponent; + + /** provides access to all kind of contents provided by the registered + content providers. + + <p>This interface is required. + */ + interface com::sun::star::ucb::XContentProvider; + + /** provides access to a set of content providers registered with the UCB. + + <p>This interface is required. + */ + interface com::sun::star::ucb::XContentProviderManager; + + /** creates <type>XContentIdentifier</type> implementation objects for + all kind of contents provided by the UCB. + + <p>This interface is required. + */ + interface com::sun::star::ucb::XContentIdentifierFactory; + + /** supports the configuration of a newly created broker. + + <p>The + <member scope="com::sun::star::lang">XInitialization::initialize</member> + method should be called with two arguments of type string. These strings + are used as a pair of keys to retrieve a set of content provider + descriptions from the configuration management (stored at + <code>org.openoffice.ucb.Configuration.ContentProviders.<var>key<sub>1</sub></var>.SecondaryKeys.<var>key<sub>2</sub></var>.ProviderData</code> + within the configuration management's hierarchy). The retrieved + descriptions are in turn used to register the corresponding content + provider services at the broker. + + <p>Typical values for the pair of strings would be + <code>"Local"</code>/<code>"Office"</code>, to configure a broker that + contains all the relevant content providers. + + <p>This interface is required. + */ + interface com::sun::star::lang::XInitialization; + + /** Enables the caller to execute commands at the broker. + + Is an enhanced version of <type>XCommandProcessor</type> that has an + additional method for releasing command identifiers obtained via + <member>XCommandProcessor::createCommandIdentifier</member> to avoid + resource leaks. For a detailed description of the problem refer to + <member>XCommandProcessor2::releaseCommandIdentifier</member>. + + + <p>This interface is required. + + <p><pre> + ======================================================================= + Commands: + ======================================================================= + + [return type] + [command name] + [parameter type and name] + + ----------------------------------------------------------------------- + Required commands: + ----------------------------------------------------------------------- + + // This command obtains an interface which allows to query + // information on commands supported by the Content Broker. + + <type>XCommandInfo</type> + getCommandInfo + void + + // This command transfers Contents from one location to another. + // Additionally, it can be used to create a link to a Content. + // The implementation must be able to handle Contents provided + // by any Content Provider. This is different from the command + // "transfer" that can be supported by a Content. That command + // typically can only handle <type>Content</type>s provided by one + // <type>ContentProvider</type>. + + void + globalTransfer + <type>GlobalTransferCommandArgument</type> + </pre> + + */ + interface com::sun::star::ucb::XCommandProcessor2; + +}; + + +}; }; }; }; + +#endif + + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/type_reference/types.rdb b/offapi/type_reference/types.rdb Binary files differindex 753f0bcddc16..674109c7195f 100644 --- a/offapi/type_reference/types.rdb +++ b/offapi/type_reference/types.rdb |