1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27#ifndef __com_sun_star_ucb_TransientDocumentsContentProvider_idl__
28#define __com_sun_star_ucb_TransientDocumentsContentProvider_idl__
29
30#ifndef __com_sun_star_ucb_XContentProvider_idl__
31#include <com/sun/star/ucb/XContentProvider.idl>
32#endif
33
34//=============================================================================
35
36module com { module sun { module star { module ucb {
37
38//=============================================================================
39/** The Transient Documents Content Provider (TDCP) implements a
40    <type>ContentProvider</type> for the <type>UniversalContentBroker</type>
41	(UCB).
42
43    <p>It provides access to the hierachical structure of the documents that
44    are active in a running OpenOffice.org process. As long as a document was
45    not closed, the TDCP can access it. All documents that have been loaded -
46    regardless of their persistent document format (sxw, doc, sxc, xls, ...)
47    or that have been created  but not yet saved to any storage medium, are
48    supported. The TDCP is not able to load any documents itself. This is
49    exclusively done by the OpenOffice.org document handling framework. The
50    document contents provided by the TDCP represent live data, which may
51    differ from any persistent representation of the document, for instance,
52    because the user modified the document after loading, but did not yet save
53    it.
54
55    @see TransientDocumentsRootContent
56    @see TransientDocumentsDocumentContent
57    @see TransientDocumentsFolderContent
58    @see TransientDocumentsStreamContent
59
60    @since OOo 2.0
61*/
62service TransientDocumentsContentProvider
63{
64	//-------------------------------------------------------------------------
65    /** provides four different types of contents: Stream, Folder, Document and
66        Root.
67
68		<p>
69
70        <b>TDCP Contents</b>
71		<ol>
72		<li>
73        A TDCP Stream (<type>TransientDocumentsStreamContent</type>) is a
74        content which represents a data stream of an Office document. It is
75        contained in a TDCP Folder or TDCP Document. A TDCP Stream has no
76        children.
77		</li>
78		<li>
79        A TDCP Folder (<type>TransientDocumentsFolderContent</type>) is a
80        container for other TDCP Folders and TDCP Streams. It may be contained
81        in another TDCP Folder or in a TDCP Document.
82		</li>
83		<li>
84        A TDCP Document (<type>TransientDocumentsDocumentContent</type>)
85        represents the root folder of a transient document. It is a container
86        for other TDCP Folders and TDCP Streams. It is always a child of the
87        TDCP Root.
88		</li>
89        <li>
90        There is at most one instance of a TDCP Root
91        (<type>TransientDocumentsRootContent</type>) at a time. All other TDCP
92        contents are children of this folder. The TDCP Root Folder can contain
93        only TDCP Documents. It has the fixed URL "vnd.sun.star.tdoc:/".
94        </li>
95		</ol>
96
97        <p><b>URL Scheme for TDCP Contents</b>
98
99        <p>Each TDCP content has an identifier corresponding to the following
100        scheme:
101
102        <ul>
103        <li>
104        tdcp-URL   = "vnd.sun.star.tdoc:" abs-path
105        </li>
106        <li>
107        abs-path   = +( "/" segment )
108        </li>
109        <li>
110        segment    = *( pchar )
111        </li>
112        <li>
113        pchar      = unreserved | escaped | ":" | "@" | "&" | "=" | "+" | "$" | ","
114        </li>
115        <li>
116        unreserved = alphanum | mark
117        </li>
118        <li>
119        mark       = "-" | "_" | "." | "!" | "~" | "*" | "'" | "("  | ")"
120        </li>
121        <li>
122        escaped    = "%" hex hex
123        </li>
124        </ul>
125
126        <p>Examples:
127
128        <ul>
129        <li>
130        vnd.sun.star.tdoc:/
131        ( The TDCP Root  )
132        </li>
133        <li>
134        vnd.sun.star.tdoc:/22
135        ( The document with the id 22 )
136        </li>
137        <li>
138        vnd.sun.star.tdoc:/22/
139        ( The document with the id 22 )
140        </li>
141        <li>
142        vnd.sun.star.tdoc:/42/folder/subfolder
143        ( The folder/stream named subfolder contained in folder named folder,
144        which is contained in the document with the id 42 )
145        </li>
146        </ul>
147
148        </p>
149     */
150	interface com::sun::star::ucb::XContentProvider;
151
152};
153
154//=============================================================================
155
156}; }; }; };
157
158#endif
159