2a1b850b78
.. so I don't keep tripping over the bad ones during my UNO cleanup work. (1) make them all use a similar syntax, makes it easier to run my automatic checker (2) some of them were just cut'n'paste accidents waiting to happen (3) remove unnecessary header guards in the __including__ file. That is very brittle. Change-Id: I4e679c15161483ad93aeb316a25d6db6d97e9d4e
312 lines
12 KiB
Text
312 lines
12 KiB
Text
/* -*- 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_deployment_XPackageManager_idl
|
|
#define _com_sun_star_deployment_XPackageManager_idl
|
|
|
|
#include <com/sun/star/lang/XComponent.idl>
|
|
#include <com/sun/star/task/XAbortChannel.idl>
|
|
#include <com/sun/star/util/XModifyBroadcaster.idl>
|
|
#include <com/sun/star/deployment/XPackage.idl>
|
|
#include <com/sun/star/deployment/XPackageTypeInfo.idl>
|
|
#include <com/sun/star/ucb/XCommandEnvironment.idl>
|
|
#include <com/sun/star/deployment/DeploymentException.idl>
|
|
#include <com/sun/star/container/NoSuchElementException.idl>
|
|
#include <com/sun/star/lang/IllegalArgumentException.idl>
|
|
#include <com/sun/star/beans/NamedValue.idl>
|
|
|
|
|
|
module com { module sun { module star { module deployment {
|
|
|
|
/** The <type>XPackageManager</type> interface is used to add or remove
|
|
packages to a specific repository. This interface represents a particular
|
|
repository.
|
|
Packages are deployable files, e.g. scripts or UNO components.
|
|
<p>
|
|
Adding an UNO package means that a copy of the package is stored
|
|
in the repository.
|
|
</p>
|
|
<p>
|
|
Removing an UNO package means that the previously added package is
|
|
removed from the repository.
|
|
</p>
|
|
<p>
|
|
All interface methods do neither register nor revoke an extension.
|
|
This happens exclusively by <type>XExtensionManager</type>.
|
|
</p>
|
|
<p>
|
|
Objects of this interface are created using the
|
|
<type>XPackageManagerFactory</type> service resp. the singleton
|
|
<code>
|
|
/singletons/com.sun.star.deployment.thePackageManagerFactory
|
|
</code>.
|
|
</p>
|
|
|
|
@see thePackageManagerFactory
|
|
@since OOo 2.0
|
|
@deprecated
|
|
Use <type>XExtensionManager</type>.
|
|
*/
|
|
interface XPackageManager
|
|
{
|
|
/** interface to notify disposing
|
|
*/
|
|
interface com::sun::star::lang::XComponent;
|
|
|
|
/** interface to notify changes of the set of deployed packages of
|
|
this manager
|
|
*/
|
|
interface com::sun::star::util::XModifyBroadcaster;
|
|
|
|
/** returns the underlying deployment context, that is,
|
|
the name of the repository..
|
|
|
|
@return
|
|
underlying deployment context
|
|
*/
|
|
string getContext();
|
|
|
|
/** gets the supported <type>XPackageTypeInfo</type>s.
|
|
|
|
@return
|
|
supported <type>XPackageTypeInfo</type>s.
|
|
*/
|
|
sequence<XPackageTypeInfo> getSupportedPackageTypes();
|
|
|
|
/** creates a command channel to be used to asynchronously abort a command.
|
|
|
|
@return
|
|
abort channel
|
|
*/
|
|
com::sun::star::task::XAbortChannel createAbortChannel();
|
|
|
|
/** adds an UNO package.
|
|
|
|
The properties argument is currently only used to suppress the license information
|
|
for shared extensions.
|
|
|
|
|
|
@param url
|
|
package URL, must be UCB conform
|
|
@param properties
|
|
additional properties, for example, that the license is to be
|
|
suppressed (if supported by the extension)
|
|
@param mediaType
|
|
media-type of package, empty string if to be detected
|
|
@param xAbortChannel
|
|
abort channel to asynchronously abort the adding process,
|
|
or null
|
|
@param xCmdEnv
|
|
command environment for error and progress handling
|
|
@return
|
|
<type>XPackage</type> handle
|
|
*/
|
|
XPackage addPackage( [in] string url,
|
|
[in] sequence<com::sun::star::beans::NamedValue> properties,
|
|
[in] string mediaType,
|
|
[in] com::sun::star::task::XAbortChannel xAbortChannel,
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (DeploymentException,
|
|
com::sun::star::ucb::CommandFailedException,
|
|
com::sun::star::ucb::CommandAbortedException,
|
|
com::sun::star::lang::IllegalArgumentException);
|
|
|
|
/** adds an extension.
|
|
|
|
This copies the extension. If it was from the same repository,
|
|
which is represented by this XPackageManager interface, then
|
|
nothing happens.
|
|
|
|
@param extension
|
|
|
|
@param xAbortChannel
|
|
abort channel to asynchronously abort the adding process,
|
|
or null
|
|
@param xCmdEnv
|
|
command environment for error and progress handling
|
|
@return
|
|
<type>XPackage</type> handle
|
|
*/
|
|
XPackage importExtension( [in] XPackage extension,
|
|
[in] com::sun::star::task::XAbortChannel xAbortChannel,
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (DeploymentException,
|
|
com::sun::star::ucb::CommandFailedException,
|
|
com::sun::star::ucb::CommandAbortedException,
|
|
com::sun::star::lang::IllegalArgumentException);
|
|
|
|
/** removes an UNO package.
|
|
|
|
@param identifier
|
|
package identifier
|
|
@param fileName
|
|
package file name
|
|
@param xAbortChannel
|
|
abort channel to asynchronously abort the removing process,
|
|
or null
|
|
@param xCmdEnv
|
|
command environment for error and progress handling
|
|
*/
|
|
void removePackage( [in] string identifier,
|
|
[in] string fileName,
|
|
[in] com::sun::star::task::XAbortChannel xAbortChannel,
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (DeploymentException,
|
|
com::sun::star::ucb::CommandFailedException,
|
|
com::sun::star::ucb::CommandAbortedException,
|
|
com::sun::star::lang::IllegalArgumentException);
|
|
|
|
/** gets a deployed package.
|
|
|
|
@param identifier
|
|
package identifier
|
|
@param fileName
|
|
package file name
|
|
@param xCmdEnv
|
|
command environment for error and progress handling
|
|
@return
|
|
<type>XPackage</type> handle
|
|
*/
|
|
XPackage getDeployedPackage(
|
|
[in] string identifier,
|
|
[in] string fileName,
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (DeploymentException,
|
|
com::sun::star::ucb::CommandFailedException,
|
|
com::sun::star::lang::IllegalArgumentException);
|
|
|
|
/** gets all currently deployed packages.
|
|
|
|
@param xAbortChannel
|
|
abort channel to asynchronously abort the removing process,
|
|
or null
|
|
@param xCmdEnv
|
|
command environment for error and progress handling
|
|
@return
|
|
all currently deployed packages
|
|
*/
|
|
sequence<XPackage> getDeployedPackages(
|
|
[in] com::sun::star::task::XAbortChannel xAbortChannel,
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (DeploymentException,
|
|
com::sun::star::ucb::CommandFailedException,
|
|
com::sun::star::ucb::CommandAbortedException,
|
|
com::sun::star::lang::IllegalArgumentException);
|
|
|
|
/** Expert feature: erases the underlying registry cache and reinstalls
|
|
all previously added packages. Please keep in mind that all
|
|
registration status get lost.
|
|
<p>
|
|
Please use this in case of suspected cache inconsistencies only.
|
|
</p>
|
|
|
|
@param force
|
|
set to true when called during soffice bootstrap after cleaning
|
|
old extension cache
|
|
@param xAbortChannel
|
|
abort channel to asynchronously abort the adding process
|
|
@param xCmdEnv
|
|
command environment for error and progress handling
|
|
*/
|
|
void reinstallDeployedPackages(
|
|
[in] boolean force,
|
|
[in] com::sun::star::task::XAbortChannel xAbortChannel,
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (DeploymentException,
|
|
com::sun::star::ucb::CommandFailedException,
|
|
com::sun::star::ucb::CommandAbortedException,
|
|
com::sun::star::lang::IllegalArgumentException);
|
|
|
|
/** indicates that this implementation cannot be used for tasks
|
|
which require write access to the location where the extensions
|
|
are installed.
|
|
<p>
|
|
Normally one would call a method and handle the exception
|
|
if writing failed. However, a GUI interface may need to know beforehand
|
|
if writing is allowed. For example, the Extension Manager dialog
|
|
needs to enable / disable the Add button depending if the user has
|
|
write permission. Only the XPackageManager implementation knows the
|
|
location of the installed extensions. Therefore it is not possible
|
|
to check "externally" for write permission.
|
|
</p>
|
|
*/
|
|
boolean isReadOnly();
|
|
|
|
/** synchronizes the extension database with the contents of the extensions
|
|
folder.
|
|
|
|
Added extensions will be added to the database and removed extensions
|
|
will be removed from the database.
|
|
|
|
@param xAddedExtension
|
|
new extensions which may need to be registered.
|
|
|
|
@param
|
|
removed extensions which must be revoked
|
|
@return
|
|
If true - then at least one extension was removed or added. Otherwise
|
|
nothing was changed.
|
|
*/
|
|
boolean synchronize([in] com::sun::star::task::XAbortChannel xAbortChannel,
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (DeploymentException,
|
|
com::sun::star::ucb::CommandFailedException,
|
|
com::sun::star::ucb::CommandAbortedException);
|
|
|
|
|
|
/** returns all extensions which are currently not in use
|
|
because the user did not accept the license.
|
|
|
|
The function will not return any object for the user repository, because
|
|
a user extension will not be kept in the user repository if its license
|
|
is declined. Only extensions which are registered at start-up of OOo,
|
|
that is, shared and bundled extensions, can be returned.
|
|
|
|
Extensions which allow the license to be suppressed, that is, it does not
|
|
need to be displayed, and which are installed with the corresponding option,
|
|
are also not returned.
|
|
*/
|
|
sequence<XPackage> getExtensionsWithUnacceptedLicenses(
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (DeploymentException);
|
|
|
|
/** checks if the extension can be used.
|
|
|
|
The extension must be managed by this package manager, that is, it must
|
|
be recorded in its database. The package manager calls
|
|
XPackage::checkPrerequisites and updates its data base with the
|
|
result. The result, which is from <type>Prerequisites</type> will be
|
|
returned.
|
|
*/
|
|
long checkPrerequisites(
|
|
[in] XPackage extension,
|
|
[in] com::sun::star::task::XAbortChannel xAbortChannel,
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (DeploymentException,
|
|
com::sun::star::ucb::CommandFailedException,
|
|
com::sun::star::ucb::CommandAbortedException,
|
|
com::sun::star::lang::IllegalArgumentException);
|
|
|
|
};
|
|
|
|
}; }; }; };
|
|
|
|
#endif
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|