/************************************************************** * * 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_PackageContentProvider_idl__ #define __com_sun_star_ucb_PackageContentProvider_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 Package Content Provider (PCP) implements a <type>ContentProvider</type> for the <type>UniversalContentBroker</type> (UCB). <p>It provides access to packages ( zip / jar archive files ) containing folders and streams. @see com::sun::star::ucb::Content */ published service PackageContentProvider { //------------------------------------------------------------------------- /** provides two types of contents: Stream and Folder. <p> <b>PCP Contents</b> <ol> <li> A PCP Stream (<type>PackageStreamContent</type>) is a content which represents a file inside a package. It is always contained in a PCP Folder. A PCP Stream has no children. </li> <li> A PCP Folder (<type>PackageFolderContent</type>) is a container for other PCP Folders and PCP Streams. </li> </ol> <p><b>URL Scheme for PCP Contents</b> <p>Each HCP content has an identifier corresponding to the following scheme: <ul> <li> package-URL = "vnd.sun.star.pkg://" orig-URL [ abs-path ] </li> <li> abs-path = "/" path-segments </li> <li> path-segements = segment *( "/" segment ) </li> <li> segment = pchar </li> <li> pchar = unreserved | escaped | ":" | "@" | "&" | "=" | "+" | "$" | "," </li> <li> unreserved = alphanum | mark </li> <li> mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" </li> <li> escaped = "%" hex hex </li> <li> orig-URL = 1 *( unreserved | escaped | "$" | "," | ";" | ":" | "@" | "&" | "&" | "=" | "+" </li> </ul> <p>Examples: <ul> <li> vnd.sun.star.pkg://file:%2F%2F%2Fe:%2Fmy.xsw/ ( The root folder of the package located at file:///e:/my.xsw ) </li> <li> vnd.sun.star.pkg://file:%2F%2F%2Fe:%2Fmy.xsw/Content ( The folder/stream named "Content" that is contained in the root folder of the located at file:///e:/my.xsw ) </li> <li> vnd.sun.star.pkg://file:%2F%2F%2Fe:%2Fmy.xsw/Content%20A ( The folder/stream named "Content A" that is contained in the root folder of the located at file:///e:/my.xsw ) </li> </ul> </p> */ interface com::sun::star::ucb::XContentProvider; }; //============================================================================= }; }; }; }; #endif