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
24#ifndef __com_sun_star_embed_FileSystemStorage_idl__
25#define __com_sun_star_embed_FileSystemStorage_idl__
26
27#ifndef __com_sun_star_embed_BaseStorage_idl__
28#include <com/sun/star/embed/BaseStorage.idl>
29#endif
30
31//============================================================================
32
33 module com {  module sun {  module star {  module embed {
34
35//============================================================================
36/** This is a service that allows to get access to a file system folder using
37	storage hierarchy.
38 */
39published service FileSystemStorage
40{
41	// -----------------------------------------------------------------------
42	/** This service describes the base functionality of storages.
43
44		<p>
45		Please see below the description of additional requirements for the
46		file system storage implementation.
47		</p>
48
49		<dl>
50			<dt>interface <type scope="com::sun::star::lang">XComponent</type>
51			</dt>
52			<dd>
53				<p>
54				A file system storage is created either by
55				<type>StorageFactory</type> or by <type>XStorage</type>
56				interface and is controlled by refcounting. In case
57				refcounting is decreased to zero the storage will be
58				disposed automatically.
59				</p>
60
61				<p>
62				In case a storage object is disposed the elements
63				( substorages and substreams ) are not affected.
64				</p>
65			</dd>
66			<dt>interface <type>XStorage</type></dt>
67			<dd>
68				<dl>
69					<dt><method>XStorage::openStorageElement</method></dt>
70					<dd>
71						This method returns <type>FileSystemStorage</type>
72						service implementation.
73					</dd>
74
75					<dt><method>XStorage::copyLastCommitTo</method></dt>
76					<dd>
77						Since this service implementation supports no transaction
78						this method just creates a copy of the storage in it's
79						current state.
80					</dd>
81
82					<dt><method>XStorage::copyStorageElementLastCommitTo</method></dt>
83					<dd>
84						Since this service implementation supports no transaction
85						this method just creates a copy of the storage in it's
86						current state.
87					</dd>
88
89					<dt><method>XStorage::removeStorageElement</method></dt>
90					<dd>
91						If the element is opened and it is a stream element
92						the removing will fail. If the element is opened and
93						it is a storage element, all the contents that can be
94						removed will be removed.
95					</dd>
96				</dl>
97			</dd>
98			<dt>property URL</dt>
99			<dd>
100				This property is not optional for this service.
101			</dd>
102		</dl>
103
104	 */
105	service BaseStorage;
106};
107
108//============================================================================
109
110}; }; }; };
111
112#endif
113
114