da40cac540
Change-Id: I1ab4e23b0539f8d39974787f226e57a21f96e959 Reviewed-on: https://gerrit.libreoffice.org/12164 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
117 lines
4.7 KiB
Text
117 lines
4.7 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_XPackageRegistry_idl
|
|
#define _com_sun_star_deployment_XPackageRegistry_idl
|
|
|
|
#include <com/sun/star/deployment/XPackage.idl>
|
|
#include <com/sun/star/deployment/XPackageTypeInfo.idl>
|
|
#include <com/sun/star/deployment/InvalidRemovedParameterException.idl>
|
|
#include <com/sun/star/beans/StringPair.idl>
|
|
|
|
|
|
module com { module sun { module star { module deployment {
|
|
|
|
/** Interface to bind an UNO package.
|
|
|
|
@since OOo 2.0
|
|
*/
|
|
interface XPackageRegistry
|
|
{
|
|
/** binds a package URL to a XPackage handle.
|
|
The returned UNO package handle ought to late-initialize itself,
|
|
thus the process of binding must not be an expensive operation, because
|
|
it is not abortable.
|
|
|
|
Calling the function several time with the same parameters must result
|
|
in returning the same object.
|
|
|
|
The file or folder at the location where url points to may not exist or
|
|
it was replaced. This can happen, for example, when a bundled extension
|
|
was removed by the setup and a user later starts OOo. Then the user data
|
|
may still contain all registration data of that extension, but the
|
|
actual extension files do not exist anymore. The registration data must
|
|
then be cleaned of all the remains of that extension. To do that one
|
|
creates an XPackage object on behalf of that extension and
|
|
calls XPackage::revokePakage(). The parameter
|
|
<code>removed</code> indicates this case. The returned object may not
|
|
rely on the file or folder to which refers <code>url</code>. Instead it
|
|
must use previously saved data to successfully carry out the revocation
|
|
of this object (XPackage::revokePackage()).
|
|
|
|
The implementation must ensure that there is only one instance of
|
|
XPackage for the same <code>url</code> at any
|
|
time. Therefore calling bindPackage() again with the same
|
|
<code>url</code> but different <code>mediaType</code> (the exception is,
|
|
if previously an empty string was provided to cause the determination
|
|
of the media type) or <code>removed</code> parameters will cause an
|
|
exception. An com::sun::star::lang::IllegalArgumentException will be
|
|
thrown in case of a different <code>mediaType</code> parameter and a
|
|
InvalidRemovedParameterException is thrown if the
|
|
<code>removed</code> parameter is different.
|
|
|
|
The <code>identifier</code> parameter must be provided when
|
|
<code>removed</code> = true. If not, then an
|
|
com::sun::star::lang::IllegalArgumentException will be thrown.
|
|
|
|
@param url
|
|
package URL, must be UCB conform
|
|
@param mediaType
|
|
media type of package, empty string if to be detected
|
|
@param removed
|
|
|
|
@param identifier
|
|
the identifier of the extension
|
|
|
|
@param xCmdEnv
|
|
command environment for error and progress handling
|
|
@return
|
|
XPackage handle
|
|
*/
|
|
XPackage bindPackage(
|
|
[in] string url,
|
|
[in] string mediaType,
|
|
[in] boolean removed,
|
|
[in] string identifier,
|
|
[in] com::sun::star::ucb::XCommandEnvironment xCmdEnv )
|
|
raises (DeploymentException,
|
|
InvalidRemovedParameterException,
|
|
com::sun::star::ucb::CommandFailedException,
|
|
com::sun::star::lang::IllegalArgumentException);
|
|
|
|
/** gets the supported XPackageTypeInfos.
|
|
|
|
@return
|
|
supported XPackageTypeInfos.
|
|
*/
|
|
sequence<XPackageTypeInfo> getSupportedPackageTypes();
|
|
|
|
void packageRemoved(
|
|
[in] string url,
|
|
[in] string mediaType)
|
|
raises (DeploymentException,
|
|
com::sun::star::lang::IllegalArgumentException);
|
|
|
|
};
|
|
|
|
}; }; }; };
|
|
|
|
#endif
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|