1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23#ifndef __com_sun_star_ucb_TransientDocumentsContentProvider_idl__ 24#define __com_sun_star_ucb_TransientDocumentsContentProvider_idl__ 25 26#ifndef __com_sun_star_ucb_XContentProvider_idl__ 27#include <com/sun/star/ucb/XContentProvider.idl> 28#endif 29 30//============================================================================= 31 32module com { module sun { module star { module ucb { 33 34//============================================================================= 35/** The Transient Documents Content Provider (TDCP) implements a 36 <type>ContentProvider</type> for the <type>UniversalContentBroker</type> 37 (UCB). 38 39 <p>It provides access to the hierachical structure of the documents that 40 are active in a running OpenOffice.org process. As long as a document was 41 not closed, the TDCP can access it. All documents that have been loaded - 42 regardless of their persistent document format (sxw, doc, sxc, xls, ...) 43 or that have been created but not yet saved to any storage medium, are 44 supported. The TDCP is not able to load any documents itself. This is 45 exclusively done by the OpenOffice.org document handling framework. The 46 document contents provided by the TDCP represent live data, which may 47 differ from any persistent representation of the document, for instance, 48 because the user modified the document after loading, but did not yet save 49 it. 50 51 @see TransientDocumentsRootContent 52 @see TransientDocumentsDocumentContent 53 @see TransientDocumentsFolderContent 54 @see TransientDocumentsStreamContent 55 56 @since OpenOffice 2.0 57*/ 58service TransientDocumentsContentProvider 59{ 60 //------------------------------------------------------------------------- 61 /** provides four different types of contents: Stream, Folder, Document and 62 Root. 63 64 <p> 65 66 <b>TDCP Contents</b> 67 <ol> 68 <li> 69 A TDCP Stream (<type>TransientDocumentsStreamContent</type>) is a 70 content which represents a data stream of an Office document. It is 71 contained in a TDCP Folder or TDCP Document. A TDCP Stream has no 72 children. 73 </li> 74 <li> 75 A TDCP Folder (<type>TransientDocumentsFolderContent</type>) is a 76 container for other TDCP Folders and TDCP Streams. It may be contained 77 in another TDCP Folder or in a TDCP Document. 78 </li> 79 <li> 80 A TDCP Document (<type>TransientDocumentsDocumentContent</type>) 81 represents the root folder of a transient document. It is a container 82 for other TDCP Folders and TDCP Streams. It is always a child of the 83 TDCP Root. 84 </li> 85 <li> 86 There is at most one instance of a TDCP Root 87 (<type>TransientDocumentsRootContent</type>) at a time. All other TDCP 88 contents are children of this folder. The TDCP Root Folder can contain 89 only TDCP Documents. It has the fixed URL "vnd.sun.star.tdoc:/". 90 </li> 91 </ol> 92 93 <p><b>URL Scheme for TDCP Contents</b> 94 95 <p>Each TDCP content has an identifier corresponding to the following 96 scheme: 97 98 <ul> 99 <li> 100 tdcp-URL = "vnd.sun.star.tdoc:" abs-path 101 </li> 102 <li> 103 abs-path = +( "/" segment ) 104 </li> 105 <li> 106 segment = *( pchar ) 107 </li> 108 <li> 109 pchar = unreserved | escaped | ":" | "@" | "&" | "=" | "+" | "$" | "," 110 </li> 111 <li> 112 unreserved = alphanum | mark 113 </li> 114 <li> 115 mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" 116 </li> 117 <li> 118 escaped = "%" hex hex 119 </li> 120 </ul> 121 122 <p>Examples: 123 124 <ul> 125 <li> 126 vnd.sun.star.tdoc:/ 127 ( The TDCP Root ) 128 </li> 129 <li> 130 vnd.sun.star.tdoc:/22 131 ( The document with the id 22 ) 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:/42/folder/subfolder 139 ( The folder/stream named subfolder contained in folder named folder, 140 which is contained in the document with the id 42 ) 141 </li> 142 </ul> 143 144 </p> 145 */ 146 interface com::sun::star::ucb::XContentProvider; 147 148}; 149 150//============================================================================= 151 152}; }; }; }; 153 154#endif 155