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 28#ifndef __com_sun_star_embed_StorageFactory_idl__ 29#define __com_sun_star_embed_StorageFactory_idl__ 30 31#ifndef __com_sun_star_lang_XSingleServiceFactory_idl__ 32#include <com/sun/star/lang/XSingleServiceFactory.idl> 33#endif 34 35 36//============================================================================ 37 38 module com { module sun { module star { module embed { 39 40//============================================================================ 41/** The <type>StorageFactory</type> is a service that allows to create 42 a storage based on either stream or URL. 43 */ 44published service StorageFactory 45{ 46 // ---------------------------------------------------------------------- 47 /** A storage can be created through this interface. 48 49 <p> 50 In case 51 <method scope="com::sun::star::lang">XSingleServiceFactory::createInstance</method> 52 call is used the result storage will be open in readwrite mode based 53 on an arbitrary medium. 54 </p> 55 56 <p> 57 In case 58 <method scope="com::sun::star::lang">XSingleServiceFactory::createInstanceWithArguments</method> 59 call is used a sequence of the following parameters can be used: 60 </p> 61 62 <dl> 63 <dt>parameter 1</dt> 64 <dd> 65 specifies source of the object, it can be a string 66 containing URL, an 67 <type scope="com::sun::star::io">XStream</type> 68 implementation or 69 <type scope="com::sun::star::io">XInputStream</type>; 70 in case of 71 <type scope="com::sun::star::io">XStream</type> 72 implementation 73 the <type scope="com::sun::star::io">XSeekable</type> 74 interface must be supported. 75 </dd> 76 77 <dt>parameter 2</dt> 78 <dd> 79 specifies mode the storage should be open in, can take 80 values from <type>ElementModes</type> constant set. 81 </dd> 82 83 <dt>parameter 3</dt> 84 <dd> 85 this paramenter represents 86 <type scope="com::sun::star::uno">Any</type> 87 containing a sequence of 88 <type scope="com::sun::star::beans">PropertyValue</type>.<br> 89 The parameter can contain entries from 90 <type scope="com::sun::star::document">MediaDescryptor</type> 91 to transport some document info during the storage 92 initialization, it can be for example 93 <type scope="com::sun::star::task">XInteractionHandler</type> 94 implementation, password for the storage and repair 95 package flag.<br> 96 Additionaly the parameter might contain property with the name 97 "StorageFormat" that can take values from 98 <type scope="com::sun::star::embed">StorageFormats</type>. 99 If the property is not provided a storage of package format 100 is created. 101 </dd> 102 </dl> 103 104 <p> 105 The parameters are optional, that means that sequence can be empty or 106 contain only first parameter, or first and second one. In case 107 no parameters are provided the call works the same way as 108 <member scope="com::sun::star::lang">XSingleServiceFactory::createInstance</member>. 109 In case only first parameter is provided, the storage is opened in 110 readonly mode. 111 </p> 112 113 <p> 114 The opened root storage can support read access in addition to 115 specified one. 116 </p> 117 */ 118 interface ::com::sun::star::lang::XSingleServiceFactory; 119}; 120 121//============================================================================ 122 123}; }; }; }; 124 125#endif 126 127