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