20#ifndef INCLUDED_PACKAGE_SOURCE_XSTOR_XSTORAGE_HXX
21#define INCLUDED_PACKAGE_SOURCE_XSTOR_XSTORAGE_HXX
23#include <com/sun/star/uno/Sequence.hxx>
24#include <com/sun/star/embed/XStorage2.hpp>
25#include <com/sun/star/embed/XOptimizedStorage.hpp>
26#include <com/sun/star/embed/XHierarchicalStorageAccess2.hpp>
27#include <com/sun/star/embed/XStorageRawAccess.hpp>
28#include <com/sun/star/embed/XTransactedObject.hpp>
29#include <com/sun/star/embed/XTransactionBroadcaster.hpp>
30#include <com/sun/star/embed/XEncryptionProtectedStorage.hpp>
31#include <com/sun/star/embed/XRelationshipAccess.hpp>
32#include <com/sun/star/util/XModifiable.hpp>
33#include <com/sun/star/container/XNameContainer.hpp>
34#include <com/sun/star/beans/XPropertySet.hpp>
35#include <com/sun/star/beans/PropertyValue.hpp>
36#include <com/sun/star/beans/StringPair.hpp>
37#include <com/sun/star/io/XStream.hpp>
38#include <com/sun/star/lang/XSingleServiceFactory.hpp>
39#include <com/sun/star/lang/XTypeProvider.hpp>
40#include <com/sun/star/lang/XComponent.hpp>
60 class XComponentContext;
63#define RELINFO_NO_INIT 1
65#define RELINFO_CHANGED 3
66#define RELINFO_CHANGED_STREAM 4
67#define RELINFO_CHANGED_STREAM_READ 5
68#define RELINFO_BROKEN 6
69#define RELINFO_CHANGED_BROKEN 7
71#define STOR_MESS_PRECOMMIT 1
72#define STOR_MESS_COMMITTED 2
73#define STOR_MESS_PREREVERT 3
74#define STOR_MESS_REVERTED 4
89 std::unique_ptr<OWriteStream_Impl, o3tl::default_delete<OWriteStream_Impl>>
m_xStream;
138 css::uno::Reference< css::lang::XSingleServiceFactory >
m_xPackage;
139 css::uno::Reference< css::uno::XComponentContext >
m_xContext;
165 css::uno::Sequence< css::uno::Sequence< css::beans::StringPair > >
m_aRelInfo;
170 OStorage_Impl( css::uno::Reference< css::io::XInputStream >
const & xInputStream,
172 const css::uno::Sequence< css::beans::PropertyValue >& xProperties,
173 css::uno::Reference< css::uno::XComponentContext >
const & xContext,
174 sal_Int32 nStorageType );
178 const css::uno::Sequence< css::beans::PropertyValue >& xProperties,
179 css::uno::Reference< css::uno::XComponentContext >
const & xContext,
180 sal_Int32 nStorageType );
185 css::uno::Reference< css::container::XNameContainer >
const & xPackageFolder,
186 css::uno::Reference< css::lang::XSingleServiceFactory > xPackage,
187 css::uno::Reference< css::uno::XComponentContext >
const & xContext,
188 sal_Int32 nStorageType );
203 void CopyLastCommitTo(
const css::uno::Reference< css::embed::XStorage >& xNewStor );
206 const OUString& aName,
207 const css::uno::Reference< css::container::XNameContainer >& xParentPackageFolder );
215 void CopyToStorage(
const css::uno::Reference< css::embed::XStorage >& xDest,
218 const css::uno::Reference< css::embed::XStorage >& xDest,
219 const OUString& aName,
225 void InsertRawStream(
const OUString& aName,
const css::uno::Reference< css::io::XInputStream >& xInStream );
248 const OUString& aStreamName,
250 const ::comphelper::SequenceAsHashMap& aEncryptionData,
251 css::uno::Reference< css::io::XStream >& xTargetStream );
257 std::u16string_view aName );
258 void CommitRelInfo(
const css::uno::Reference< css::container::XNameContainer >& xNewPackageFolder );
261 const css::uno::Reference< css::io::XStream >& xSource,
262 const css::uno::Reference< css::io::XStream >& xDest,
263 sal_Int32 nStorageType,
264 const css::uno::Sequence< css::uno::Sequence< css::beans::StringPair > >& aRelInfo );
268class OStorage final :
public css::lang::XTypeProvider
269 ,
public css::embed::XStorage2
270 ,
public css::embed::XStorageRawAccess
271 ,
public css::embed::XTransactedObject
272 ,
public css::embed::XTransactionBroadcaster
273 ,
public css::util::XModifiable
274 ,
public css::embed::XEncryptionProtectedStorage
275 ,
public css::beans::XPropertySet
276 ,
public css::embed::XOptimizedStorage
277 ,
public css::embed::XRelationshipAccess
278 ,
public css::embed::XHierarchicalStorageAccess2
297 const css::uno::Reference< css::lang::XComponent >& xComponent );
301 OStorage( css::uno::Reference< css::io::XInputStream >
const & xInputStream,
303 const css::uno::Sequence< css::beans::PropertyValue >& xProperties,
304 css::uno::Reference< css::uno::XComponentContext >
const & xContext,
305 sal_Int32 nStorageType );
307 OStorage( css::uno::Reference< css::io::XStream >
const & xStream,
309 const css::uno::Sequence< css::beans::PropertyValue >& xProperties,
310 css::uno::Reference< css::uno::XComponentContext >
const & xContext,
311 sal_Int32 nStorageType );
319 void ChildIsDisposed(
const css::uno::Reference< css::uno::XInterface >& xChild );
325 virtual css::uno::Any SAL_CALL
queryInterface(
const css::uno::Type& rType )
override;
327 virtual void SAL_CALL
acquire() noexcept override;
329 virtual
void SAL_CALL
release() noexcept override;
339 virtual
void SAL_CALL
copyToStorage( const css::
uno::Reference< css::embed::XStorage >& xDest ) override;
342 const OUString& aStreamName, sal_Int32 nOpenMode ) override;
345 const OUString& aStreamName, sal_Int32 nOpenMode, const OUString& aPass ) override;
348 const OUString& aStorName, sal_Int32 nStorageMode ) override;
351 const OUString& aStreamName ) override;
354 const OUString& aStreamName, const OUString& aPass ) override;
357 const css::
uno::Reference< css::embed::XStorage >& xTargetStorage ) override;
360 const OUString& aStorName,
361 const css::
uno::Reference< css::embed::XStorage >& xTargetStorage ) override;
367 virtual
void SAL_CALL
removeElement( const OUString& aElementName ) override;
369 virtual
void SAL_CALL
renameElement( const OUString& rEleName, const OUString& rNewName ) override;
371 virtual
void SAL_CALL
copyElementTo( const OUString& aElementName,
372 const css::
uno::Reference< css::embed::XStorage >& xDest,
373 const OUString& aNewName ) override;
375 virtual
void SAL_CALL
moveElementTo( const OUString& aElementName,
376 const css::
uno::Reference< css::embed::XStorage >& xDest,
377 const OUString& rNewName ) override;
381 virtual css::
uno::Reference< css::io::XStream > SAL_CALL
openEncryptedStream( const OUString& sStreamName, ::sal_Int32 nOpenMode, const css::
uno::Sequence< css::beans::NamedValue >& aEncryptionData ) override;
383 virtual css::
uno::Reference< css::io::XStream > SAL_CALL
cloneEncryptedStream( const OUString& sStreamName, const css::
uno::Sequence< css::beans::NamedValue >& aEncryptionData ) override;
388 const OUString& sStreamName ) override;
391 const OUString& sStreamName ) override;
394 const css::
uno::Reference< css::io::XInputStream >& xInStream ) override;
397 virtual
void SAL_CALL
commit() override;
399 virtual
void SAL_CALL
revert() override;
403 const css::
uno::Reference< css::embed::XTransactionListener >& aListener ) override;
406 const css::
uno::Reference< css::embed::XTransactionListener >& aListener ) override;
415 const css::
uno::Reference< css::util::XModifyListener >& aListener ) override;
418 const css::
uno::Reference< css::util::XModifyListener >& aListener ) override;
422 virtual css::
uno::Any SAL_CALL
getByName( const OUString& aName ) override;
434 virtual
void SAL_CALL
dispose() override;
437 const css::
uno::Reference< css::lang::XEventListener >& xListener ) override;
440 const css::
uno::Reference< css::lang::XEventListener >& xListener ) override;
451 const css::
uno::Sequence< css::beans::NamedValue >& aEncryptionData ) override;
458 virtual
void SAL_CALL
setGpgProperties( const css::
uno::Sequence< css::
uno::Sequence< css::beans::NamedValue > >& aCryptProps ) override;
466 virtual
void SAL_CALL
setPropertyValue( const OUString& aPropertyName, const css::
uno::Any& aValue ) override;
471 const OUString& aPropertyName,
472 const css::
uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override;
475 const OUString& aPropertyName,
476 const css::
uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override;
479 const OUString& PropertyName,
480 const css::
uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
482 virtual
void SAL_CALL
removeVetoableChangeListener( const OUString& PropertyName, const css::
uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override;
487 virtual
void SAL_CALL
insertStreamElementDirect( const OUString& sStreamName, const css::
uno::Reference< css::io::XInputStream >& xInStream, const css::
uno::Sequence< css::beans::PropertyValue >& aProps ) override;
489 virtual
void SAL_CALL
copyElementDirectlyTo( const OUString& sSourceName, const css::
uno::Reference< css::embed::XOptimizedStorage >& xTargetStorage, const OUString& sTargetName ) override;
495 virtual css::
uno::Any SAL_CALL
getElementPropertyValue( const OUString& sElementName, const OUString& sPropertyName ) override;
497 virtual
void SAL_CALL
copyStreamElementData( const OUString& sStreamName, const css::
uno::Reference< css::io::XStream >& xTargetStream ) override;
502 virtual OUString SAL_CALL
getTargetByID( const OUString& sID ) override;
504 virtual OUString SAL_CALL
getTypeByID( const OUString& sID ) override;
528 virtual css::
uno::Reference< css::embed::XExtendedStorageStream > SAL_CALL
openEncryptedStreamByHierarchicalName( const OUString& sStreamName, ::sal_Int32 nOpenMode, const css::
uno::Sequence< css::beans::NamedValue >& aEncryptionData ) override;
532: m_pPointer( pStorage )
533, m_xWeakRef( css::
uno::Reference< css::embed::XStorage >( pStorage ) )
virtual void SAL_CALL addVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
void ChildIsDisposed(const css::uno::Reference< css::uno::XInterface > &xChild)
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
virtual void SAL_CALL clearRelationships() override
virtual void SAL_CALL insertRelationshipByID(const OUString &sID, const css::uno::Sequence< css::beans::StringPair > &aEntry, sal_Bool bReplace) override
virtual void SAL_CALL release() noexcept override
virtual css::uno::Type SAL_CALL getElementType() override
virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes() override
virtual void SAL_CALL removeEncryption() override
virtual void SAL_CALL removeModifyListener(const css::uno::Reference< css::util::XModifyListener > &aListener) override
virtual css::uno::Sequence< css::uno::Sequence< css::beans::StringPair > > SAL_CALL getAllRelationships() override
virtual void SAL_CALL removeElement(const OUString &aElementName) override
virtual void SAL_CALL acquire() noexcept override
virtual css::uno::Reference< css::embed::XExtendedStorageStream > SAL_CALL openEncryptedStreamElementByHierarchicalName(const OUString &sStreamName, ::sal_Int32 nOpenMode, const OUString &sPassword) override
virtual void SAL_CALL removeTransactionListener(const css::uno::Reference< css::embed::XTransactionListener > &aListener) override
SotElement_Impl * OpenStreamElement_Impl(const OUString &aStreamName, sal_Int32 nOpenMode, bool bEncr)
virtual css::uno::Reference< css::io::XStream > SAL_CALL openEncryptedStreamElement(const OUString &aStreamName, sal_Int32 nOpenMode, const OUString &aPass) override
OStorage(css::uno::Reference< css::io::XInputStream > const &xInputStream, sal_Int32 nMode, const css::uno::Sequence< css::beans::PropertyValue > &xProperties, css::uno::Reference< css::uno::XComponentContext > const &xContext, sal_Int32 nStorageType)
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() override
virtual css::uno::Reference< css::embed::XExtendedStorageStream > SAL_CALL openEncryptedStreamByHierarchicalName(const OUString &sStreamName, ::sal_Int32 nOpenMode, const css::uno::Sequence< css::beans::NamedValue > &aEncryptionData) override
virtual sal_Bool SAL_CALL isStreamElement(const OUString &aElementName) override
virtual ~OStorage() override
virtual void SAL_CALL copyLastCommitTo(const css::uno::Reference< css::embed::XStorage > &xTargetStorage) override
virtual css::uno::Reference< css::embed::XStorage > SAL_CALL openStorageElement(const OUString &aStorName, sal_Int32 nStorageMode) override
virtual void SAL_CALL insertStreamElementDirect(const OUString &sStreamName, const css::uno::Reference< css::io::XInputStream > &xInStream, const css::uno::Sequence< css::beans::PropertyValue > &aProps) override
virtual void SAL_CALL insertRelationships(const css::uno::Sequence< css::uno::Sequence< css::beans::StringPair > > &aEntries, sal_Bool bReplace) override
virtual css::uno::Sequence< css::beans::NamedValue > SAL_CALL getEncryptionAlgorithms() override
virtual void SAL_CALL commit() override
void MakeLinkToSubComponent_Impl(const css::uno::Reference< css::lang::XComponent > &xComponent)
OStorage(css::uno::Reference< css::io::XStream > const &xStream, sal_Int32 nMode, const css::uno::Sequence< css::beans::PropertyValue > &xProperties, css::uno::Reference< css::uno::XComponentContext > const &xContext, sal_Int32 nStorageType)
virtual css::uno::Sequence< css::beans::StringPair > SAL_CALL getRelationshipByID(const OUString &sID) override
::rtl::Reference< OChildDispListener_Impl > m_pSubElDispListener
virtual void SAL_CALL setModified(sal_Bool bModified) override
virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > &xListener) override
virtual void SAL_CALL renameElement(const OUString &rEleName, const OUString &rNewName) override
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
virtual sal_Bool SAL_CALL hasEncryptionData() override
virtual void SAL_CALL moveElementTo(const OUString &aElementName, const css::uno::Reference< css::embed::XStorage > &xDest, const OUString &rNewName) override
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
virtual void SAL_CALL copyStorageElementLastCommitTo(const OUString &aStorName, const css::uno::Reference< css::embed::XStorage > &xTargetStorage) override
virtual void SAL_CALL removePropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &aListener) override
virtual css::uno::Reference< css::io::XStream > SAL_CALL cloneStreamElement(const OUString &aStreamName) override
virtual sal_Bool SAL_CALL hasElements() override
virtual css::uno::Reference< css::io::XStream > SAL_CALL openEncryptedStream(const OUString &sStreamName, ::sal_Int32 nOpenMode, const css::uno::Sequence< css::beans::NamedValue > &aEncryptionData) override
comphelper::OMultiTypeInterfaceContainerHelper2 m_aListenersContainer
void BroadcastTransaction(sal_Int8 nMessage)
virtual void SAL_CALL attachToURL(const OUString &sURL, sal_Bool bReadOnly) override
virtual void SAL_CALL addTransactionListener(const css::uno::Reference< css::embed::XTransactionListener > &aListener) override
::std::optional< ::cppu::OTypeCollection > m_oTypeCollection
void BroadcastModifiedIfNecessary()
virtual void SAL_CALL insertRawEncrStreamElement(const OUString &aStreamName, const css::uno::Reference< css::io::XInputStream > &xInStream) override
virtual void SAL_CALL addModifyListener(const css::uno::Reference< css::util::XModifyListener > &aListener) override
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
virtual css::uno::Reference< css::io::XStream > SAL_CALL cloneEncryptedStreamElement(const OUString &aStreamName, const OUString &aPass) override
virtual css::uno::Sequence< css::uno::Sequence< css::beans::StringPair > > SAL_CALL getRelationshipsByType(const OUString &sType) override
virtual void SAL_CALL setEncryptionData(const css::uno::Sequence< css::beans::NamedValue > &aEncryptionData) override
virtual void SAL_CALL removeVetoableChangeListener(const OUString &PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > &aListener) override
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getRawEncrStreamElement(const OUString &sStreamName) override
virtual void SAL_CALL dispose() override
virtual css::uno::Reference< css::io::XInputStream > SAL_CALL getPlainRawStreamElement(const OUString &sStreamName) override
virtual void SAL_CALL setGpgProperties(const css::uno::Sequence< css::uno::Sequence< css::beans::NamedValue > > &aCryptProps) override
virtual css::uno::Any SAL_CALL getElementPropertyValue(const OUString &sElementName, const OUString &sPropertyName) override
virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > &xListener) override
virtual sal_Bool SAL_CALL hasByID(const OUString &sID) override
::std::vector< css::uno::WeakReference< css::lang::XComponent > > m_aOpenSubComponentsVector
virtual css::uno::Reference< css::embed::XExtendedStorageStream > SAL_CALL openStreamElementByHierarchicalName(const OUString &sStreamPath, ::sal_Int32 nOpenMode) override
virtual css::uno::Any SAL_CALL queryInterface(const css::uno::Type &rType) override
virtual css::uno::Reference< css::io::XStream > SAL_CALL openStreamElement(const OUString &aStreamName, sal_Int32 nOpenMode) override
virtual void SAL_CALL copyElementTo(const OUString &aElementName, const css::uno::Reference< css::embed::XStorage > &xDest, const OUString &aNewName) override
virtual OUString SAL_CALL getTypeByID(const OUString &sID) override
virtual void SAL_CALL revert() override
virtual css::uno::Reference< css::io::XStream > SAL_CALL cloneEncryptedStream(const OUString &sStreamName, const css::uno::Sequence< css::beans::NamedValue > &aEncryptionData) override
virtual void SAL_CALL insertRawNonEncrStreamElementDirect(const OUString &sStreamName, const css::uno::Reference< css::io::XInputStream > &xInStream) override
virtual void SAL_CALL writeAndAttachToStream(const css::uno::Reference< css::io::XStream > &xStream) override
virtual OUString SAL_CALL getTargetByID(const OUString &sID) override
virtual void SAL_CALL addPropertyChangeListener(const OUString &aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > &xListener) override
virtual sal_Bool SAL_CALL isStorageElement(const OUString &aElementName) override
rtl::Reference< comphelper::RefCountedMutex > m_xSharedMutex
::rtl::Reference< OHierarchyHolder_Impl > m_rHierarchyHolder
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
void InternalDispose(bool bNotifyImpl)
virtual sal_Bool SAL_CALL isModified() override
virtual void SAL_CALL setEncryptionAlgorithms(const css::uno::Sequence< css::beans::NamedValue > &aAlgorithms) override
virtual void SAL_CALL copyElementDirectlyTo(const OUString &sSourceName, const css::uno::Reference< css::embed::XOptimizedStorage > &xTargetStorage, const OUString &sTargetName) override
virtual void SAL_CALL setEncryptionPassword(const OUString &aPass) override
virtual void SAL_CALL copyToStorage(const css::uno::Reference< css::embed::XStorage > &xDest) override
virtual void SAL_CALL removeStreamElementByHierarchicalName(const OUString &sElementPath) override
virtual void SAL_CALL copyStreamElementData(const OUString &sStreamName, const css::uno::Reference< css::io::XStream > &xTargetStream) override
virtual void SAL_CALL removeRelationshipByID(const OUString &sID) override
sal_Int32 GetRefCount_Impl() const
oslInterlockedCount m_refCount
OStorage_Impl(css::uno::Reference< css::io::XStream > const &xStream, sal_Int32 nMode, const css::uno::Sequence< css::beans::PropertyValue > &xProperties, css::uno::Reference< css::uno::XComponentContext > const &xContext, sal_Int32 nStorageType)
css::uno::Reference< css::container::XNameContainer > m_xPackageFolder
OStorage_Impl(css::uno::Reference< css::io::XInputStream > const &xInputStream, sal_Int32 nMode, const css::uno::Sequence< css::beans::PropertyValue > &xProperties, css::uno::Reference< css::uno::XComponentContext > const &xContext, sal_Int32 nStorageType)
std::vector< StorageHolder_Impl > StorageHoldersType
SotElement_Impl * InsertStorage(const OUString &aName, sal_Int32 nStorageMode)
bool m_bBroadcastModified
sal_Int16 m_nRelInfoStatus
void OpenSubStream(SotElement_Impl *pElement)
SotElement_Impl * InsertStream(const OUString &aName, bool bEncr)
css::uno::Reference< css::io::XInputStream > GetRelInfoStreamForName(std::u16string_view aName)
void CopyToStorage(const css::uno::Reference< css::embed::XStorage > &xDest, bool bDirect)
css::uno::Reference< css::uno::XComponentContext > m_xContext
void CopyLastCommitTo(const css::uno::Reference< css::embed::XStorage > &xNewStor)
std::unordered_map< OUString, std::vector< SotElement_Impl * > > m_aChildrenMap
void GetStorageProperties()
SotElement_Impl * FindElement(const OUString &rName)
OStorage_Impl * m_pParent
bool HasModifiedListener() const
std::vector< SotElement_Impl * > m_aDeletedVector
SotElement_Impl * m_pRelStorElement
css::uno::Sequence< css::beans::PropertyValue > m_xProperties
SotElement_Impl * InsertElement(const OUString &aName, bool bIsStorage)
css::uno::Sequence< css::uno::Sequence< css::beans::StringPair > > GetAllRelationshipsIfAny()
void InsertIntoPackageFolder(const OUString &aName, const css::uno::Reference< css::container::XNameContainer > &xParentPackageFolder)
rtl::Reference< comphelper::RefCountedMutex > m_xMutex
std::unique_ptr< OStorage_Impl > CreateNewStorageImpl(sal_Int32 nStorageMode)
rtl::Reference< SwitchablePersistenceStream > m_pSwitchStream
css::uno::Reference< css::embed::XStorage > m_xRelStorage
void RemoveStreamRelInfo(std::u16string_view aOriginalName)
void CommitStreamRelInfo(std::u16string_view rName, SotElement_Impl const *pStreamElement)
static void completeStorageStreamCopy_Impl(const css::uno::Reference< css::io::XStream > &xSource, const css::uno::Reference< css::io::XStream > &xDest, sal_Int32 nStorageType, const css::uno::Sequence< css::uno::Sequence< css::beans::StringPair > > &aRelInfo)
void ReadRelInfoIfNecessary()
void OpenSubStorage(SotElement_Impl *pElement, sal_Int32 nStorageMode)
css::uno::Reference< css::lang::XSingleServiceFactory > m_xPackage
css::uno::Sequence< css::uno::Sequence< css::beans::StringPair > > m_aRelInfo
css::uno::Reference< css::io::XStream > m_xStream
void CloneStreamElement(const OUString &aStreamName, bool bPassProvided, const ::comphelper::SequenceAsHashMap &aEncryptionData, css::uno::Reference< css::io::XStream > &xTargetStream)
::comphelper::SequenceAsHashMap m_aCommonEncryptionData
StorageHoldersType m_aReadOnlyWrapVector
static void ClearElement(SotElement_Impl *pElement)
void RemoveElement(OUString const &rName, SotElement_Impl *pElement)
::comphelper::SequenceAsHashMap GetCommonRootEncryptionData()
void SetReadOnlyWrap(OStorage &aStorage)
bool m_bHasCommonEncryptionData
oslInterlockedCount m_nModifiedListenerCount
Count of registered modification listeners.
css::uno::Sequence< OUString > GetElementNames()
void CopyStorageElement(SotElement_Impl *pElement, const css::uno::Reference< css::embed::XStorage > &xDest, const OUString &aName, bool bDirect)
css::uno::Reference< css::io::XInputStream > m_xInputStream
void CommitRelInfo(const css::uno::Reference< css::container::XNameContainer > &xNewPackageFolder)
css::uno::Reference< css::io::XInputStream > m_xNewRelInfoStream
void RemoveReadOnlyWrap(const OStorage &aStorage)
OStorage_Impl(OStorage_Impl *pParent, sal_Int32 nMode, css::uno::Reference< css::container::XNameContainer > const &xPackageFolder, css::uno::Reference< css::lang::XSingleServiceFactory > xPackage, css::uno::Reference< css::uno::XComponentContext > const &xContext, sal_Int32 nStorageType)
void InsertRawStream(const OUString &aName, const css::uno::Reference< css::io::XInputStream > &xInStream)
SotElement_Impl(OUString aName, bool bStor, bool bNew)
std::unique_ptr< OWriteStream_Impl, o3tl::default_delete< OWriteStream_Impl > > m_xStream
std::unique_ptr< OStorage_Impl > m_xStorage
StorageHolder_Impl(OStorage *pStorage)
css::uno::WeakReference< css::embed::XStorage > m_xWeakRef