summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/ucb/TransientDocumentsContentProvider.idl
blob: d985376b4c78cc0bb1b196958603eac99665c6f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
/*************************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * Copyright 2000, 2010 Oracle and/or its affiliates.
 *
 * OpenOffice.org - a multi-platform office productivity suite
 *
 * This file is part of OpenOffice.org.
 *
 * OpenOffice.org is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * only, as published by the Free Software Foundation.
 *
 * OpenOffice.org is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License version 3 for more details
 * (a copy is included in the LICENSE file that accompanied this code).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with OpenOffice.org.  If not, see
 * <http://www.openoffice.org/license.html>
 * for a copy of the LGPLv3 License.
 *
 ************************************************************************/
#ifndef __com_sun_star_ucb_TransientDocumentsContentProvider_idl__
#define __com_sun_star_ucb_TransientDocumentsContentProvider_idl__

#ifndef __com_sun_star_ucb_XContentProvider_idl__
#include <com/sun/star/ucb/XContentProvider.idl>
#endif

//=============================================================================

module com { module sun { module star { module ucb {

//=============================================================================
/** The Transient Documents Content Provider (TDCP) implements a
    <type>ContentProvider</type> for the <type>UniversalContentBroker</type>
    (UCB).

    <p>It provides access to the hierachical structure of the documents that
    are active in a running OpenOffice.org process. As long as a document was
    not closed, the TDCP can access it. All documents that have been loaded -
    regardless of their persistent document format (sxw, doc, sxc, xls, ...)
    or that have been created  but not yet saved to any storage medium, are
    supported. The TDCP is not able to load any documents itself. This is
    exclusively done by the OpenOffice.org document handling framework. The
    document contents provided by the TDCP represent live data, which may
    differ from any persistent representation of the document, for instance,
    because the user modified the document after loading, but did not yet save
    it.

    @see TransientDocumentsRootContent
    @see TransientDocumentsDocumentContent
    @see TransientDocumentsFolderContent
    @see TransientDocumentsStreamContent

    @since OOo 2.0.0
*/
service TransientDocumentsContentProvider
{
    //-------------------------------------------------------------------------
    /** provides four different types of contents: Stream, Folder, Document and
        Root.

        <p>

        <b>TDCP Contents</b>
        <ol>
        <li>
        A TDCP Stream (<type>TransientDocumentsStreamContent</type>) is a
        content which represents a data stream of an Office document. It is
        contained in a TDCP Folder or TDCP Document. A TDCP Stream has no
        children.
        </li>
        <li>
        A TDCP Folder (<type>TransientDocumentsFolderContent</type>) is a
        container for other TDCP Folders and TDCP Streams. It may be contained
        in another TDCP Folder or in a TDCP Document.
        </li>
        <li>
        A TDCP Document (<type>TransientDocumentsDocumentContent</type>)
        represents the root folder of a transient document. It is a container
        for other TDCP Folders and TDCP Streams. It is always a child of the
        TDCP Root.
        </li>
        <li>
        There is at most one instance of a TDCP Root
        (<type>TransientDocumentsRootContent</type>) at a time. All other TDCP
        contents are children of this folder. The TDCP Root Folder can contain
        only TDCP Documents. It has the fixed URL "vnd.sun.star.tdoc:/".
        </li>
        </ol>

        <p><b>URL Scheme for TDCP Contents</b>

        <p>Each TDCP content has an identifier corresponding to the following
        scheme:

        <ul>
        <li>
        tdcp-URL   = "vnd.sun.star.tdoc:" abs-path
        </li>
        <li>
        abs-path   = +( "/" segment )
        </li>
        <li>
        segment    = *( pchar )
        </li>
        <li>
        pchar      = unreserved | escaped | ":" | "@" | "&" | "=" | "+" | "$" | ","
        </li>
        <li>
        unreserved = alphanum | mark
        </li>
        <li>
        mark       = "-" | "_" | "." | "!" | "~" | "*" | "'" | "("  | ")"
        </li>
        <li>
        escaped    = "%" hex hex
        </li>
        </ul>

        <p>Examples:

        <ul>
        <li>
        vnd.sun.star.tdoc:/
        ( The TDCP Root  )
        </li>
        <li>
        vnd.sun.star.tdoc:/22
        ( The document with the id 22 )
        </li>
        <li>
        vnd.sun.star.tdoc:/22/
        ( The document with the id 22 )
        </li>
        <li>
        vnd.sun.star.tdoc:/42/folder/subfolder
        ( The folder/stream named subfolder contained in folder named folder,
        which is contained in the document with the id 42 )
        </li>
        </ul>

        </p>
     */
    interface com::sun::star::ucb::XContentProvider;

};

//=============================================================================

}; }; }; };

#endif