1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 *   Licensed to the Apache Software Foundation (ASF) under one or more
12 *   contributor license agreements. See the NOTICE file distributed
13 *   with this work for additional information regarding copyright
14 *   ownership. The ASF licenses this file to you under the Apache
15 *   License, Version 2.0 (the "License"); you may not use this file
16 *   except in compliance with the License. You may obtain a copy of
17 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#ifndef __com_sun_star_deployment_XUpdateInformationProvider_idl__
21#define __com_sun_star_deployment_XUpdateInformationProvider_idl__
22
23#include <com/sun/star/uno/XInterface.idl>
24#include <com/sun/star/uno/Exception.idl>
25
26module com { module sun { module star { module container {
27interface XEnumeration;
28}; }; }; };
29
30module com { module sun { module star { module task {
31interface XInteractionHandler;
32}; }; }; };
33
34module com { module sun { module star { module xml { module dom {
35interface XElement;
36}; }; }; }; };
37
38module com { module sun { module star { module deployment {
39
40/** Objects implementing this interface provide access to the xml root of
41    one or more update information files for a given set of URLs.
42
43    @since OOo 2.2
44*/
45interface XUpdateInformationProvider
46{
47    /** get update information for a specific extension or all available
48        information from a repository.
49
50        @param repositories
51               a repository and its mirrors.
52        @param extensionId
53               the unique identifier of an extension. If it is not empty and
54               the update document is an atom feed, only items whose "term"
55               attribute of the atom:category tag matches extensionId are returned.
56
57    */
58    sequence < com::sun::star::xml::dom::XElement > getUpdateInformation(
59        [in] sequence< string > repositories,
60        [in] string extensionId
61    ) raises ( com::sun::star::uno::Exception );
62
63    /** interrupts a getUpdateInformation call and let's it return immediately.
64    */
65    void cancel();
66
67    /** Sets an interaction handler to be used for further operations.
68
69    <p>
70    A default interaction handler is available as service
71        com::sun::star::task::InteractionHandler.
72        The documentation of this service also contains further
73        information about the interaction handler concept.
74    </p>
75
76    @see com::sun::star::task::InteractionHandler
77
78    @param handler
79           The interaction handler to be set
80    */
81    void setInteractionHandler( [in] com::sun::star::task::XInteractionHandler handler );
82
83    /** get update information for a specific extension or all available
84        information from a repository.
85
86        @param repositories
87               a repository and its mirrors.
88        @param extensionId
89               the unique identifier of an extension. If it is not empty and
90               the update document is an atom feed, only items whose "term"
91               attribute of the atom:category tag matches extensionId are returned.
92
93        @returns
94               an enumeration of UpdateInformationEntry.
95    */
96    com::sun::star::container::XEnumeration getUpdateInformationEnumeration(
97        [in] sequence< string > repositories,
98        [in] string extensionId
99    ) raises ( com::sun::star::uno::Exception );
100};
101
102}; }; }; };
103#endif
104
105/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
106