1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
21 module com
{ module sun
{ module star
{ module embed
{
23 /** This is a temporary interface that is introduced to temporarily optimize
24 the document storing process. PLEASE DO NOT USE IT, it might change in any
25 time and will be deprecated soon!
26 Another solution will be introduced as final one.
28 published
interface XOptimizedStorage
30 /** allows to insert a raw stream representing non-encrypted stream with
33 void insertRawNonEncrStreamElementDirect
(
34 [in] string sStreamName
,
35 [in] ::com
::sun
::star
::io
::XInputStream xInStream
)
36 raises
( ::com
::sun
::star
::embed
::InvalidStorageException
,
37 ::com
::sun
::star
::lang
::IllegalArgumentException
,
38 ::com
::sun
::star
::packages
::NoRawFormatException
,
39 ::com
::sun
::star
::container
::ElementExistException
,
40 ::com
::sun
::star
::io
::IOException
,
41 ::com
::sun
::star
::embed
::StorageWrappedTargetException
);
43 /** allows to insert a stream to the storage directly. The stream must
44 stay alive till the storage is committed.
46 void insertStreamElementDirect
(
47 [in] string sStreamName
,
48 [in] ::com
::sun
::star
::io
::XInputStream xInStream
,
49 [in] sequence
< ::com
::sun
::star
::beans
::PropertyValue
> aProperties
)
50 raises
( ::com
::sun
::star
::embed
::InvalidStorageException
,
51 ::com
::sun
::star
::lang
::IllegalArgumentException
,
52 ::com
::sun
::star
::container
::ElementExistException
,
53 ::com
::sun
::star
::io
::IOException
,
54 ::com
::sun
::star
::embed
::StorageWrappedTargetException
);
56 /** allows to copy storage element directly, not guaranteed to work.
58 void copyElementDirectlyTo
(
59 [in] string sSourceName
,
60 [in] ::com
::sun
::star
::embed
::XOptimizedStorage xTargetStorage
,
61 [in] string sTargetName
)
62 raises
( ::com
::sun
::star
::embed
::InvalidStorageException
,
63 ::com
::sun
::star
::lang
::IllegalArgumentException
,
64 ::com
::sun
::star
::container
::NoSuchElementException
,
65 ::com
::sun
::star
::container
::ElementExistException
,
66 ::com
::sun
::star
::io
::IOException
,
67 ::com
::sun
::star
::embed
::StorageWrappedTargetException
);
69 /** allows to switch storage persistence to the provided stream. The stream
70 will be filled by the storage. If an empty reference is provided, the
71 storage will create a temporary stream to switch to itself.
72 It is applicable only for root storages.
74 void writeAndAttachToStream
(
75 [in] ::com
::sun
::star
::io
::XStream xStream
)
76 raises
( ::com
::sun
::star
::embed
::InvalidStorageException
,
77 ::com
::sun
::star
::lang
::IllegalArgumentException
,
78 ::com
::sun
::star
::io
::IOException
,
79 ::com
::sun
::star
::embed
::StorageWrappedTargetException
);
81 /** allows to switch storage persistence to the provided URL. The caller is
82 responsible to be sure that the file referenced by the URL contains the
83 same contents as the stream the storage is based currently. Thus using
84 of this method is very dangerous and should be avoided when possible.
85 It is applicable only for root storages.
87 void attachToURL
( [in] string sURL
,
88 [in] boolean bReadOnly
)
89 raises
( ::com
::sun
::star
::embed
::InvalidStorageException
,
90 ::com
::sun
::star
::lang
::IllegalArgumentException
,
91 ::com
::sun
::star
::io
::IOException
,
92 ::com
::sun
::star
::embed
::StorageWrappedTargetException
);
94 /** allows to get property of the child element with the specified name.
95 The implementation of the method might allow to access only subset
96 of the supported by element properties.
98 any getElementPropertyValue
( [in] string sElementName
,
99 [in] string sPropertyName
)
100 raises
( ::com
::sun
::star
::embed
::InvalidStorageException
,
101 ::com
::sun
::star
::lang
::IllegalArgumentException
,
102 ::com
::sun
::star
::container
::NoSuchElementException
,
103 ::com
::sun
::star
::io
::IOException
,
104 ::com
::sun
::star
::beans
::UnknownPropertyException
,
105 ::com
::sun
::star
::beans
::PropertyVetoException
,
106 ::com
::sun
::star
::embed
::StorageWrappedTargetException
);
108 /** fills the provided stream with the last flushed version of data from
109 the child stream of the storage.
112 the name of the substream that should be copied
115 the target stream where the data must be copied to
117 @throws ::com::sun::star::embed::InvalidStorageException
118 this storage is in invalid state for any reason
120 @throws ::com::sun::star::lang::IllegalArgumentException
121 one of provided arguments is illegal
123 @throws ::com::sun::star::packages::WrongPasswordException
124 the provided password is wrong
126 @throws ::com::sun::star::io::IOException
127 in case of io errors during stream opening
129 @throws ::com::sun::star::embed::StorageWrappedTargetException
130 wraps other exceptions
132 void copyStreamElementData
( [in] string sStreamName
,
133 [in] ::com
::sun
::star
::io
::XStream xTargetStream
)
134 raises
( ::com
::sun
::star
::embed
::InvalidStorageException
,
135 ::com
::sun
::star
::lang
::IllegalArgumentException
,
136 ::com
::sun
::star
::packages
::WrongPasswordException
,
137 ::com
::sun
::star
::io
::IOException
,
138 ::com
::sun
::star
::embed
::StorageWrappedTargetException
);
145 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */