Version 5.2.6.1, tag libreoffice-5.2.6.1
[LibreOffice.git] / offapi / com / sun / star / ucb / TransientDocumentsContentProvider.idl
blob012a3dd46fa8ee24d41511b1c76545bc7076bb58
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
19 #ifndef __com_sun_star_ucb_TransientDocumentsContentProvider_idl__
20 #define __com_sun_star_ucb_TransientDocumentsContentProvider_idl__
22 #include <com/sun/star/ucb/XContentProvider.idl>
25 module com { module sun { module star { module ucb {
27 /** The Transient Documents Content Provider (TDCP) implements a
28 ContentProvider for the UniversalContentBroker
29 (UCB).
31 <p>It provides access to the hierarchical structure of the documents that
32 are active in a running OpenOffice.org process. As long as a document was
33 not closed, the TDCP can access it. All documents that have been loaded -
34 regardless of their persistent document format (sxw, doc, sxc, xls, ...)
35 or that have been created but not yet saved to any storage medium, are
36 supported. The TDCP is not able to load any documents itself. This is
37 exclusively done by the OpenOffice.org document handling framework. The
38 document contents provided by the TDCP represent live data, which may
39 differ from any persistent representation of the document, for instance,
40 because the user modified the document after loading, but did not yet save
41 it.
43 @see TransientDocumentsRootContent
44 @see TransientDocumentsDocumentContent
45 @see TransientDocumentsFolderContent
46 @see TransientDocumentsStreamContent
48 @since OOo 2.0
50 service TransientDocumentsContentProvider
52 /** provides four different types of contents: Stream, Folder, Document and
53 Root.
55 <p>
57 <b>TDCP Contents</b>
58 <ol>
59 <li>
60 A TDCP Stream (TransientDocumentsStreamContent) is a
61 content which represents a data stream of an Office document. It is
62 contained in a TDCP Folder or TDCP Document. A TDCP Stream has no
63 children.
64 </li>
65 <li>
66 A TDCP Folder (TransientDocumentsFolderContent) is a
67 container for other TDCP Folders and TDCP Streams. It may be contained
68 in another TDCP Folder or in a TDCP Document.
69 </li>
70 <li>
71 A TDCP Document (TransientDocumentsDocumentContent)
72 represents the root folder of a transient document. It is a container
73 for other TDCP Folders and TDCP Streams. It is always a child of the
74 TDCP Root.
75 </li>
76 <li>
77 There is at most one instance of a TDCP Root
78 (TransientDocumentsRootContent) at a time. All other TDCP
79 contents are children of this folder. The TDCP Root Folder can contain
80 only TDCP Documents. It has the fixed URL "vnd.sun.star.tdoc:/".
81 </li>
82 </ol>
84 <p><b>URL Scheme for TDCP Contents</b>
86 <p>Each TDCP content has an identifier corresponding to the following
87 scheme:
89 <ul>
90 <li>
91 tdcp-URL = "vnd.sun.star.tdoc:" abs-path
92 </li>
93 <li>
94 abs-path = +( "/" segment )
95 </li>
96 <li>
97 segment = *( pchar )
98 </li>
99 <li>
100 pchar = unreserved | escaped | ":" | "@" | "&" | "=" | "+" | "$" | ","
101 </li>
102 <li>
103 unreserved = alphanum | mark
104 </li>
105 <li>
106 mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
107 </li>
108 <li>
109 escaped = "%" hex hex
110 </li>
111 </ul>
113 <p>Examples:
115 <ul>
116 <li>
117 vnd.sun.star.tdoc:/
118 ( The TDCP Root )
119 </li>
120 <li>
121 vnd.sun.star.tdoc:/22
122 ( The document with the id 22 )
123 </li>
124 <li>
125 vnd.sun.star.tdoc:/22/
126 ( The document with the id 22 )
127 </li>
128 <li>
129 vnd.sun.star.tdoc:/42/folder/subfolder
130 ( The folder/stream named subfolder contained in folder named folder,
131 which is contained in the document with the id 42 )
132 </li>
133 </ul>
135 </p>
137 interface com::sun::star::ucb::XContentProvider;
142 }; }; }; };
144 #endif
146 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */