| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| #ifndef __com_sun_star_ucb_TransientDocumentsContentProvider_idl__ |
| #define __com_sun_star_ucb_TransientDocumentsContentProvider_idl__ |
| |
| #ifndef __com_sun_star_ucb_XContentProvider_idl__ |
| #include <com/sun/star/ucb/XContentProvider.idl> |
| #endif |
| |
| //============================================================================= |
| |
| module com { module sun { module star { module ucb { |
| |
| //============================================================================= |
| /** The Transient Documents Content Provider (TDCP) implements a |
| <type>ContentProvider</type> for the <type>UniversalContentBroker</type> |
| (UCB). |
| |
| <p>It provides access to the hierachical 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 OpenOffice 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 (<type>TransientDocumentsStreamContent</type>) 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 (<type>TransientDocumentsFolderContent</type>) 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 (<type>TransientDocumentsDocumentContent</type>) |
| 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 |
| (<type>TransientDocumentsRootContent</type>) 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; |
| |
| }; |
| |
| //============================================================================= |
| |
| }; }; }; }; |
| |
| #endif |