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
|
/* -*- 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 .
*/
module com { module sun { module star { module ucb {
/** The Transient Documents Content Provider (TDCP) implements a
ContentProvider for the UniversalContentBroker
(UCB).
<p>It provides access to the hierarchical 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
*/
service TransientDocumentsContentProvider
{
/** provides four different types of contents: Stream, Folder, Document and
Root.
<p>
<b>TDCP Contents</b>
<ol>
<li>
A TDCP Stream (TransientDocumentsStreamContent) 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 (TransientDocumentsFolderContent) 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 (TransientDocumentsDocumentContent)
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
(TransientDocumentsRootContent) 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;
};
}; }; }; };
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|