| /************************************************************** |
| * |
| * 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_embed_StorageFactory_idl__ |
| #define __com_sun_star_embed_StorageFactory_idl__ |
| |
| #ifndef __com_sun_star_lang_XSingleServiceFactory_idl__ |
| #include <com/sun/star/lang/XSingleServiceFactory.idl> |
| #endif |
| |
| |
| //============================================================================ |
| |
| module com { module sun { module star { module embed { |
| |
| //============================================================================ |
| /** The <type>StorageFactory</type> is a service that allows to create |
| a storage based on either stream or URL. |
| */ |
| published service StorageFactory |
| { |
| // ---------------------------------------------------------------------- |
| /** A storage can be created through this interface. |
| |
| <p> |
| In case |
| <method scope="com::sun::star::lang">XSingleServiceFactory::createInstance</method> |
| call is used the result storage will be open in readwrite mode based |
| on an arbitrary medium. |
| </p> |
| |
| <p> |
| In case |
| <method scope="com::sun::star::lang">XSingleServiceFactory::createInstanceWithArguments</method> |
| call is used a sequence of the following parameters can be used: |
| </p> |
| |
| <dl> |
| <dt>parameter 1</dt> |
| <dd> |
| specifies source of the object, it can be a string |
| containing URL, an |
| <type scope="com::sun::star::io">XStream</type> |
| implementation or |
| <type scope="com::sun::star::io">XInputStream</type>; |
| in case of |
| <type scope="com::sun::star::io">XStream</type> |
| implementation |
| the <type scope="com::sun::star::io">XSeekable</type> |
| interface must be supported. |
| </dd> |
| |
| <dt>parameter 2</dt> |
| <dd> |
| specifies mode the storage should be open in, can take |
| values from <type>ElementModes</type> constant set. |
| </dd> |
| |
| <dt>parameter 3</dt> |
| <dd> |
| this paramenter represents |
| <type scope="com::sun::star::uno">Any</type> |
| containing a sequence of |
| <type scope="com::sun::star::beans">PropertyValue</type>.<br> |
| The parameter can contain entries from |
| <type scope="com::sun::star::document">MediaDescryptor</type> |
| to transport some document info during the storage |
| initialization, it can be for example |
| <type scope="com::sun::star::task">XInteractionHandler</type> |
| implementation, password for the storage and repair |
| package flag.<br> |
| Additionaly the parameter might contain property with the name |
| "StorageFormat" that can take values from |
| <type scope="com::sun::star::embed">StorageFormats</type>. |
| If the property is not provided a storage of package format |
| is created. |
| </dd> |
| </dl> |
| |
| <p> |
| The parameters are optional, that means that sequence can be empty or |
| contain only first parameter, or first and second one. In case |
| no parameters are provided the call works the same way as |
| <member scope="com::sun::star::lang">XSingleServiceFactory::createInstance</member>. |
| In case only first parameter is provided, the storage is opened in |
| readonly mode. |
| </p> |
| |
| <p> |
| The opened root storage can support read access in addition to |
| specified one. |
| </p> |
| */ |
| interface ::com::sun::star::lang::XSingleServiceFactory; |
| }; |
| |
| //============================================================================ |
| |
| }; }; }; }; |
| |
| #endif |
| |