diff options
Diffstat (limited to 'offapi/com/sun/star/embed/XOptimizedStorage.idl')
-rw-r--r-- | offapi/com/sun/star/embed/XOptimizedStorage.idl | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/offapi/com/sun/star/embed/XOptimizedStorage.idl b/offapi/com/sun/star/embed/XOptimizedStorage.idl new file mode 100644 index 0000000000..b0646826f7 --- /dev/null +++ b/offapi/com/sun/star/embed/XOptimizedStorage.idl @@ -0,0 +1,145 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ + + + module com { module sun { module star { module embed { + +/** This is a temporary interface that is introduced to temporarily optimize + the document storing process. PLEASE DO NOT USE IT, it might change in any + time and will be deprecated soon! + Another solution will be introduced as final one. + */ +published interface XOptimizedStorage +{ + /** allows to insert a raw stream representing non-encrypted stream with + header. + */ + void insertRawNonEncrStreamElementDirect( + [in] string sStreamName, + [in] ::com::sun::star::io::XInputStream xInStream ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoRawFormatException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to insert a stream to the storage directly. The stream must + stay alive till the storage is committed. + */ + void insertStreamElementDirect( + [in] string sStreamName, + [in] ::com::sun::star::io::XInputStream xInStream, + [in] sequence < ::com::sun::star::beans::PropertyValue > aProperties ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to copy storage element directly, not guaranteed to work. + */ + void copyElementDirectlyTo( + [in] string sSourceName, + [in] ::com::sun::star::embed::XOptimizedStorage xTargetStorage, + [in] string sTargetName ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::container::ElementExistException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to switch storage persistence to the provided stream. The stream + will be filled by the storage. If an empty reference is provided, the + storage will create a temporary stream to switch to itself. + It is applicable only for root storages. + */ + void writeAndAttachToStream( + [in] ::com::sun::star::io::XStream xStream ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to switch storage persistence to the provided URL. The caller is + responsible to be sure that the file referenced by the URL contains the + same contents as the stream the storage is based currently. Thus using + of this method is very dangerous and should be avoided when possible. + It is applicable only for root storages. + */ + void attachToURL( [in] string sURL, + [in] boolean bReadOnly ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** allows to get property of the child element with the specified name. + The implementation of the method might allow to access only subset + of the supported by element properties. + */ + any getElementPropertyValue( [in] string sElementName, + [in] string sPropertyName ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::container::NoSuchElementException, + ::com::sun::star::io::IOException, + ::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException, + ::com::sun::star::embed::StorageWrappedTargetException ); + + /** fills the provided stream with the last flushed version of data from + the child stream of the storage. + + @param sStreamName + the name of the substream that should be copied + + @param xTargetStream + the target stream where the data must be copied to + + @throws ::com::sun::star::embed::InvalidStorageException + this storage is in invalid state for any reason + + @throws ::com::sun::star::lang::IllegalArgumentException + one of provided arguments is illegal + + @throws ::com::sun::star::packages::WrongPasswordException + the provided password is wrong + + @throws ::com::sun::star::io::IOException + in case of io errors during stream opening + + @throws ::com::sun::star::embed::StorageWrappedTargetException + wraps other exceptions + */ + void copyStreamElementData( [in] string sStreamName, + [in] ::com::sun::star::io::XStream xTargetStream ) + raises( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException ); + +}; + + +}; }; }; }; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |