19#ifndef INCLUDED_COMPHELPER_STORAGEHELPER_HXX
20#define INCLUDED_COMPHELPER_STORAGEHELPER_HXX
22#include <com/sun/star/uno/Sequence.h>
23#include <com/sun/star/uno/Reference.hxx>
24#include <com/sun/star/embed/ElementModes.hpp>
39 namespace beans {
struct NamedValue; }
40 namespace embed {
class XStorage; }
46 namespace lang {
class XSingleServiceFactory; }
47 namespace uno {
class XComponentContext; }
65 void commitStorages();
72 static css::uno::Reference< css::lang::XSingleServiceFactory >
74 const css::uno::Reference< css::uno::XComponentContext >& rxContext
75 = css::uno::Reference< css::uno::XComponentContext >() );
78 static css::uno::Reference< css::lang::XSingleServiceFactory >
79 GetFileSystemStorageFactory(
80 const css::uno::Reference< css::uno::XComponentContext >& rxContext
81 = css::uno::Reference< css::uno::XComponentContext >() );
84 static css::uno::Reference< css::embed::XStorage >
86 const css::uno::Reference< css::uno::XComponentContext >& rxContext
87 = css::uno::Reference< css::uno::XComponentContext >() );
92 static css::uno::Reference< css::embed::XStorage >
95 sal_Int32 nStorageMode,
96 const css::uno::Reference< css::uno::XComponentContext >& rxContext
97 = css::uno::Reference< css::uno::XComponentContext >() );
102 static css::uno::Reference< css::embed::XStorage >
104 const OUString&
aURL,
105 sal_Int32 nStorageMode,
106 const css::uno::Reference< css::uno::XComponentContext >& rxContext
107 = css::uno::Reference< css::uno::XComponentContext >() );
110 static css::uno::Reference< css::embed::XStorage >
111 GetStorageFromInputStream(
112 const css::uno::Reference < css::io::XInputStream >&
xStream,
113 const css::uno::Reference< css::uno::XComponentContext >& rxContext
114 = css::uno::Reference< css::uno::XComponentContext >() );
117 static css::uno::Reference< css::embed::XStorage >
118 GetStorageFromStream(
119 const css::uno::Reference < css::io::XStream >&
xStream,
120 sal_Int32 nStorageMode = css::embed::ElementModes::READWRITE,
121 const css::uno::Reference< css::uno::XComponentContext >& rxContext
122 = css::uno::Reference< css::uno::XComponentContext >() );
125 static void CopyInputToOutput(
126 const css::uno::Reference< css::io::XInputStream >& xInput,
127 const css::uno::Reference< css::io::XOutputStream >& xOutput );
130 static css::uno::Reference< css::io::XInputStream >
131 GetInputStreamFromURL(
132 const OUString&
aURL,
133 const css::uno::Reference< css::uno::XComponentContext >& context );
136 static void SetCommonStorageEncryptionData(
137 const css::uno::Reference< css::embed::XStorage >& xStorage,
138 const css::uno::Sequence< css::beans::NamedValue >& aEncryptionData );
142 static sal_Int32 GetXStorageFormat(
143 const css::uno::Reference< css::embed::XStorage >& xStorage );
146 static css::uno::Reference< css::embed::XStorage >
147 GetStorageOfFormatFromURL(
148 const OUString& aFormat,
149 const OUString&
aURL,
150 sal_Int32 nStorageMode,
151 const css::uno::Reference< css::uno::XComponentContext >& rxContext
152 = css::uno::Reference< css::uno::XComponentContext >() );
155 static css::uno::Reference< css::embed::XStorage >
156 GetStorageOfFormatFromInputStream(
157 const OUString& aFormat,
158 const css::uno::Reference < css::io::XInputStream >&
xStream,
159 const css::uno::Reference< css::uno::XComponentContext >& rxContext
160 = css::uno::Reference< css::uno::XComponentContext >(),
161 bool bRepairStorage =
false );
164 static css::uno::Reference< css::embed::XStorage >
165 GetStorageOfFormatFromStream(
166 const OUString& aFormat,
167 const css::uno::Reference < css::io::XStream >&
xStream,
168 sal_Int32 nStorageMode = css::embed::ElementModes::READWRITE,
169 const css::uno::Reference< css::uno::XComponentContext >& rxContext
170 = css::uno::Reference< css::uno::XComponentContext >(),
171 bool bRepairStorage =
false );
173 static css::uno::Sequence< css::beans::NamedValue >
174 CreatePackageEncryptionData(
175 std::u16string_view aPassword );
177 static css::uno::Sequence< css::beans::NamedValue >
178 CreateGpgPackageEncryptionData();
180 static bool IsValidZipEntryFileName( std::u16string_view
aName,
bool bSlashAllowed );
182 static bool PathHasSegment( std::u16string_view aPath, std::u16string_view aSegment );
186 static css::uno::Reference< css::embed::XStorage > GetStorageAtPath(
187 const css::uno::Reference< css::embed::XStorage > &xStorage,
188 std::u16string_view aPath, sal_uInt32 nOpenMode,
LifecycleProxy const &rNastiness );
189 static css::uno::Reference< css::io::XStream > GetStreamAtPath(
190 const css::uno::Reference< css::embed::XStorage > &xStorage,
191 std::u16string_view aPath, sal_uInt32 nOpenMode,
LifecycleProxy const &rNastiness );
192 static css::uno::Reference< css::io::XStream > GetStreamAtPackageURL(
193 const css::uno::Reference< css::embed::XStorage > &xStorage,
194 const OUString& rURL, sal_uInt32
const nOpenMode,
198 GetODFVersionFromStorage(
const css::uno::Reference<css::embed::XStorage>& xStorage);
std::unique_ptr< Impl > m_xBadness
#define COMPHELPER_DLLPUBLIC
constexpr OUStringLiteral ZIP_STORAGE_FORMAT_STRING
constexpr OUStringLiteral PACKAGE_ENCRYPTIONDATA_SHA1UTF8
constexpr OUStringLiteral PACKAGE_ENCRYPTIONDATA_SHA1CORRECT
constexpr OUStringLiteral PACKAGE_ENCRYPTIONDATA_SHA1MS1252
constexpr OUStringLiteral OFOPXML_STORAGE_FORMAT_STRING
constexpr OUStringLiteral PACKAGE_ENCRYPTIONDATA_SHA256UTF8
constexpr OUStringLiteral PACKAGE_STORAGE_FORMAT_STRING