1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef __XSTORAGE_HXX_ 25*b1cdbd2cSJim Jagielski #define __XSTORAGE_HXX_ 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Sequence.hxx> 28*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XStorage2.hpp> 29*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XOptimizedStorage.hpp> 30*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XHierarchicalStorageAccess2.hpp> 31*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XStorageRawAccess.hpp> 32*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XTransactedObject.hpp> 33*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XTransactionBroadcaster.hpp> 34*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XClassifiedObject.hpp> 35*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XEncryptionProtectedStorage.hpp> 36*b1cdbd2cSJim Jagielski #include <com/sun/star/embed/XRelationshipAccess.hpp> 37*b1cdbd2cSJim Jagielski #include <com/sun/star/util/XModifiable.hpp> 38*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XNameAccess.hpp> 39*b1cdbd2cSJim Jagielski #include <com/sun/star/container/XNameContainer.hpp> 40*b1cdbd2cSJim Jagielski #include <com/sun/star/util/XCloseable.hpp> 41*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/XPropertySet.hpp> 42*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/PropertyValue.hpp> 43*b1cdbd2cSJim Jagielski #include <com/sun/star/beans/StringPair.hpp> 44*b1cdbd2cSJim Jagielski #include <com/sun/star/io/XStream.hpp> 45*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XSingleServiceFactory.hpp> 46*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XMultiServiceFactory.hpp> 47*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XTypeProvider.hpp> 48*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XComponent.hpp> 49*b1cdbd2cSJim Jagielski #include <com/sun/star/packages/NoEncryptionException.hpp> 50*b1cdbd2cSJim Jagielski #include <com/sun/star/logging/XSimpleLogRing.hpp> 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski #include <cppuhelper/weak.hxx> 53*b1cdbd2cSJim Jagielski #include <cppuhelper/interfacecontainer.h> 54*b1cdbd2cSJim Jagielski #include <comphelper/sequenceashashmap.hxx> 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski #include "mutexholder.hxx" 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski #define RELINFO_NO_INIT 1 59*b1cdbd2cSJim Jagielski #define RELINFO_READ 2 60*b1cdbd2cSJim Jagielski #define RELINFO_CHANGED 3 61*b1cdbd2cSJim Jagielski #define RELINFO_CHANGED_STREAM 4 62*b1cdbd2cSJim Jagielski #define RELINFO_CHANGED_STREAM_READ 5 63*b1cdbd2cSJim Jagielski #define RELINFO_BROKEN 6 64*b1cdbd2cSJim Jagielski #define RELINFO_CHANGED_BROKEN 7 65*b1cdbd2cSJim Jagielski 66*b1cdbd2cSJim Jagielski #define STOR_MESS_PRECOMMIT 1 67*b1cdbd2cSJim Jagielski #define STOR_MESS_COMMITED 2 68*b1cdbd2cSJim Jagielski #define STOR_MESS_PREREVERT 3 69*b1cdbd2cSJim Jagielski #define STOR_MESS_REVERTED 4 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski namespace cppu 72*b1cdbd2cSJim Jagielski { 73*b1cdbd2cSJim Jagielski class OTypeCollection; 74*b1cdbd2cSJim Jagielski } 75*b1cdbd2cSJim Jagielski 76*b1cdbd2cSJim Jagielski //================================================ 77*b1cdbd2cSJim Jagielski // a common implementation for an entry 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielski struct StorInternalData_Impl; 80*b1cdbd2cSJim Jagielski struct OStorage_Impl; 81*b1cdbd2cSJim Jagielski struct OWriteStream_Impl; 82*b1cdbd2cSJim Jagielski 83*b1cdbd2cSJim Jagielski struct SotElement_Impl 84*b1cdbd2cSJim Jagielski { 85*b1cdbd2cSJim Jagielski ::rtl::OUString m_aName; 86*b1cdbd2cSJim Jagielski ::rtl::OUString m_aOriginalName; 87*b1cdbd2cSJim Jagielski sal_Bool m_bIsRemoved; 88*b1cdbd2cSJim Jagielski sal_Bool m_bIsInserted; 89*b1cdbd2cSJim Jagielski sal_Bool m_bIsStorage; 90*b1cdbd2cSJim Jagielski 91*b1cdbd2cSJim Jagielski OStorage_Impl* m_pStorage; 92*b1cdbd2cSJim Jagielski OWriteStream_Impl* m_pStream; 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski public: 95*b1cdbd2cSJim Jagielski SotElement_Impl( const ::rtl::OUString& rName, sal_Bool bStor, sal_Bool bNew ); 96*b1cdbd2cSJim Jagielski ~SotElement_Impl(); 97*b1cdbd2cSJim Jagielski }; 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim Jagielski #include <list> 100*b1cdbd2cSJim Jagielski typedef ::std::list< SotElement_Impl* > SotElementList_Impl; 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielski //========================================================================= 103*b1cdbd2cSJim Jagielski // Main storage implementation 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski class OStorage; 106*b1cdbd2cSJim Jagielski 107*b1cdbd2cSJim Jagielski struct StorageHolder_Impl 108*b1cdbd2cSJim Jagielski { 109*b1cdbd2cSJim Jagielski OStorage* m_pPointer; 110*b1cdbd2cSJim Jagielski ::com::sun::star::uno::WeakReference< ::com::sun::star::embed::XStorage > m_xWeakRef; 111*b1cdbd2cSJim Jagielski StorageHolder_ImplStorageHolder_Impl112*b1cdbd2cSJim Jagielski StorageHolder_Impl( OStorage* pStorage ) 113*b1cdbd2cSJim Jagielski : m_pPointer( pStorage ) 114*b1cdbd2cSJim Jagielski , m_xWeakRef( ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >( 115*b1cdbd2cSJim Jagielski (::com::sun::star::embed::XStorage*)pStorage ) ) 116*b1cdbd2cSJim Jagielski { 117*b1cdbd2cSJim Jagielski } 118*b1cdbd2cSJim Jagielski StorageHolder_ImplStorageHolder_Impl119*b1cdbd2cSJim Jagielski StorageHolder_Impl( const StorageHolder_Impl& aSH ) 120*b1cdbd2cSJim Jagielski : m_pPointer( aSH.m_pPointer ) 121*b1cdbd2cSJim Jagielski , m_xWeakRef( aSH.m_xWeakRef ) 122*b1cdbd2cSJim Jagielski { 123*b1cdbd2cSJim Jagielski } 124*b1cdbd2cSJim Jagielski }; 125*b1cdbd2cSJim Jagielski 126*b1cdbd2cSJim Jagielski typedef ::std::list< StorageHolder_Impl > OStorageList_Impl; 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski class SwitchablePersistenceStream; 129*b1cdbd2cSJim Jagielski struct OStorage_Impl 130*b1cdbd2cSJim Jagielski { 131*b1cdbd2cSJim Jagielski SotMutexHolderRef m_rMutexRef; 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski OStorage* m_pAntiImpl; // only valid if external references exists 134*b1cdbd2cSJim Jagielski OStorageList_Impl m_aReadOnlyWrapList; // only valid if readonly external reference exists 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski sal_Int32 m_nStorageMode; // open mode ( read/write/trunc/nocreate ) 137*b1cdbd2cSJim Jagielski sal_Bool m_bIsModified; // only modified elements will be sent to the original content 138*b1cdbd2cSJim Jagielski sal_Bool m_bBroadcastModified; // will be set if notification is required 139*b1cdbd2cSJim Jagielski sal_Bool m_bCommited; // sending the streams is coordinated by the root storage of the package 140*b1cdbd2cSJim Jagielski 141*b1cdbd2cSJim Jagielski sal_Bool m_bIsRoot; // marks this storage as root storages that manages all commits and reverts 142*b1cdbd2cSJim Jagielski sal_Bool m_bListCreated; 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski SotElementList_Impl m_aChildrenList; 146*b1cdbd2cSJim Jagielski SotElementList_Impl m_aDeletedList; 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > m_xPackageFolder; 149*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::logging::XSimpleLogRing > m_xLogRing; 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > m_xPackage; 152*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory; 153*b1cdbd2cSJim Jagielski 154*b1cdbd2cSJim Jagielski // valid only for root storage 155*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > m_xInputStream; // ??? may be stored in properties 156*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xStream; // ??? may be stored in properties 157*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_xProperties; 158*b1cdbd2cSJim Jagielski sal_Bool m_bHasCommonEncryptionData; 159*b1cdbd2cSJim Jagielski ::comphelper::SequenceAsHashMap m_aCommonEncryptionData; 160*b1cdbd2cSJim Jagielski 161*b1cdbd2cSJim Jagielski // must be empty in case of root storage 162*b1cdbd2cSJim Jagielski OStorage_Impl* m_pParent; 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski sal_Bool m_bControlMediaType; 165*b1cdbd2cSJim Jagielski ::rtl::OUString m_aMediaType; 166*b1cdbd2cSJim Jagielski sal_Bool m_bMTFallbackUsed; 167*b1cdbd2cSJim Jagielski 168*b1cdbd2cSJim Jagielski sal_Bool m_bControlVersion; 169*b1cdbd2cSJim Jagielski ::rtl::OUString m_aVersion; 170*b1cdbd2cSJim Jagielski 171*b1cdbd2cSJim Jagielski SwitchablePersistenceStream* m_pSwitchStream; 172*b1cdbd2cSJim Jagielski 173*b1cdbd2cSJim Jagielski sal_Int32 m_nStorageType; // the mode in wich the storage is used 174*b1cdbd2cSJim Jagielski 175*b1cdbd2cSJim Jagielski // the _rels substorage that is handled in a special way in embed::StorageFormats::OFOPXML 176*b1cdbd2cSJim Jagielski SotElement_Impl* m_pRelStorElement; 177*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > m_xRelStorage; 178*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair > > m_aRelInfo; 179*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > m_xNewRelInfoStream; 180*b1cdbd2cSJim Jagielski sal_Int16 m_nRelInfoStatus; 181*b1cdbd2cSJim Jagielski 182*b1cdbd2cSJim Jagielski ////////////////////////////////////////// 183*b1cdbd2cSJim Jagielski // Constructors 184*b1cdbd2cSJim Jagielski 185*b1cdbd2cSJim Jagielski OStorage_Impl( ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > xInputStream, 186*b1cdbd2cSJim Jagielski sal_Int32 nMode, 187*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > xProperties, 188*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory, 189*b1cdbd2cSJim Jagielski sal_Int32 nStorageType ); 190*b1cdbd2cSJim Jagielski 191*b1cdbd2cSJim Jagielski OStorage_Impl( ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > xStream, 192*b1cdbd2cSJim Jagielski sal_Int32 nMode, 193*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > xProperties, 194*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory, 195*b1cdbd2cSJim Jagielski sal_Int32 nStorageType ); 196*b1cdbd2cSJim Jagielski 197*b1cdbd2cSJim Jagielski // constructor for a substorage 198*b1cdbd2cSJim Jagielski OStorage_Impl( OStorage_Impl* pParent, 199*b1cdbd2cSJim Jagielski sal_Int32 nMode, 200*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > xPackageFolder, 201*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > xPackage, 202*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory, 203*b1cdbd2cSJim Jagielski sal_Int32 nStorageType ); 204*b1cdbd2cSJim Jagielski 205*b1cdbd2cSJim Jagielski ~OStorage_Impl(); 206*b1cdbd2cSJim Jagielski 207*b1cdbd2cSJim Jagielski void AddLog( const ::rtl::OUString& aMessage ); 208*b1cdbd2cSJim Jagielski 209*b1cdbd2cSJim Jagielski void SetReadOnlyWrap( OStorage& aStorage ); 210*b1cdbd2cSJim Jagielski void RemoveReadOnlyWrap( OStorage& aStorage ); 211*b1cdbd2cSJim Jagielski 212*b1cdbd2cSJim Jagielski void OpenOwnPackage(); 213*b1cdbd2cSJim Jagielski void ReadContents(); 214*b1cdbd2cSJim Jagielski void ReadRelInfoIfNecessary(); 215*b1cdbd2cSJim Jagielski 216*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > GetServiceFactory(); 217*b1cdbd2cSJim Jagielski SotElementList_Impl& GetChildrenList(); 218*b1cdbd2cSJim Jagielski void GetStorageProperties(); 219*b1cdbd2cSJim Jagielski 220*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair > > GetAllRelationshipsIfAny(); 221*b1cdbd2cSJim Jagielski void CopyLastCommitTo( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewStor ); 222*b1cdbd2cSJim Jagielski void CopyLastCommitTo( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xNewStor, 223*b1cdbd2cSJim Jagielski const ::rtl::OUString& aPass ); 224*b1cdbd2cSJim Jagielski 225*b1cdbd2cSJim Jagielski void InsertIntoPackageFolder( 226*b1cdbd2cSJim Jagielski const ::rtl::OUString& aName, 227*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xParentPackageFolder ); 228*b1cdbd2cSJim Jagielski 229*b1cdbd2cSJim Jagielski void Commit(); 230*b1cdbd2cSJim Jagielski void Revert(); 231*b1cdbd2cSJim Jagielski 232*b1cdbd2cSJim Jagielski ::comphelper::SequenceAsHashMap GetCommonRootEncryptionData() throw ( ::com::sun::star::packages::NoEncryptionException ); 233*b1cdbd2cSJim Jagielski 234*b1cdbd2cSJim Jagielski void CopyToStorage( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xDest, 235*b1cdbd2cSJim Jagielski sal_Bool bDirect ); 236*b1cdbd2cSJim Jagielski void CopyStorageElement( SotElement_Impl* pElement, 237*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > xDest, 238*b1cdbd2cSJim Jagielski ::rtl::OUString aName, 239*b1cdbd2cSJim Jagielski sal_Bool bDirect ); 240*b1cdbd2cSJim Jagielski 241*b1cdbd2cSJim Jagielski void SetModified( sal_Bool bModified ); 242*b1cdbd2cSJim Jagielski 243*b1cdbd2cSJim Jagielski SotElement_Impl* FindElement( const ::rtl::OUString& rName ); 244*b1cdbd2cSJim Jagielski 245*b1cdbd2cSJim Jagielski 246*b1cdbd2cSJim Jagielski SotElement_Impl* InsertStream( ::rtl::OUString aName, sal_Bool bEncr ); 247*b1cdbd2cSJim Jagielski SotElement_Impl* InsertRawStream( ::rtl::OUString aName, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xInStream ); 248*b1cdbd2cSJim Jagielski 249*b1cdbd2cSJim Jagielski OStorage_Impl* CreateNewStorageImpl( sal_Int32 nStorageMode ); 250*b1cdbd2cSJim Jagielski SotElement_Impl* InsertStorage( ::rtl::OUString aName, sal_Int32 nStorageMode ); 251*b1cdbd2cSJim Jagielski SotElement_Impl* InsertElement( ::rtl::OUString aName, sal_Bool bIsStorage ); 252*b1cdbd2cSJim Jagielski 253*b1cdbd2cSJim Jagielski void OpenSubStorage( SotElement_Impl* pElement, sal_Int32 nStorageMode ); 254*b1cdbd2cSJim Jagielski void OpenSubStream( SotElement_Impl* pElement ); 255*b1cdbd2cSJim Jagielski 256*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::rtl::OUString > GetElementNames(); 257*b1cdbd2cSJim Jagielski 258*b1cdbd2cSJim Jagielski void RemoveElement( SotElement_Impl* pElement ); 259*b1cdbd2cSJim Jagielski void ClearElement( SotElement_Impl* pElement ); 260*b1cdbd2cSJim Jagielski void DisposeChildren(); 261*b1cdbd2cSJim Jagielski 262*b1cdbd2cSJim Jagielski void CloneStreamElement( 263*b1cdbd2cSJim Jagielski const ::rtl::OUString& aStreamName, 264*b1cdbd2cSJim Jagielski sal_Bool bPassProvided, 265*b1cdbd2cSJim Jagielski const ::comphelper::SequenceAsHashMap& aEncryptionData, 266*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xTargetStream ) 267*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 268*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 269*b1cdbd2cSJim Jagielski ::com::sun::star::packages::WrongPasswordException, 270*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 271*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 272*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 273*b1cdbd2cSJim Jagielski 274*b1cdbd2cSJim Jagielski void RemoveStreamRelInfo( const ::rtl::OUString& aOriginalName ); 275*b1cdbd2cSJim Jagielski void CreateRelStorage(); 276*b1cdbd2cSJim Jagielski void CommitStreamRelInfo( SotElement_Impl* pStreamElement ); 277*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > GetRelInfoStreamForName( const ::rtl::OUString& aName ); 278*b1cdbd2cSJim Jagielski void CommitRelInfo( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& xNewPackageFolder ); 279*b1cdbd2cSJim Jagielski 280*b1cdbd2cSJim Jagielski static void completeStorageStreamCopy_Impl( 281*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xSource, 282*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xDest, 283*b1cdbd2cSJim Jagielski sal_Int32 nStorageType, 284*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair > >& aRelInfo ); 285*b1cdbd2cSJim Jagielski 286*b1cdbd2cSJim Jagielski }; 287*b1cdbd2cSJim Jagielski 288*b1cdbd2cSJim Jagielski 289*b1cdbd2cSJim Jagielski class OStorage : public ::com::sun::star::lang::XTypeProvider 290*b1cdbd2cSJim Jagielski , public ::com::sun::star::embed::XStorage2 291*b1cdbd2cSJim Jagielski , public ::com::sun::star::embed::XStorageRawAccess 292*b1cdbd2cSJim Jagielski , public ::com::sun::star::embed::XTransactedObject 293*b1cdbd2cSJim Jagielski , public ::com::sun::star::embed::XTransactionBroadcaster 294*b1cdbd2cSJim Jagielski , public ::com::sun::star::util::XModifiable 295*b1cdbd2cSJim Jagielski // , public ::com::sun::star::container::XNameAccess 296*b1cdbd2cSJim Jagielski // , public ::com::sun::star::lang::XComponent 297*b1cdbd2cSJim Jagielski , public ::com::sun::star::embed::XEncryptionProtectedStorage 298*b1cdbd2cSJim Jagielski , public ::com::sun::star::beans::XPropertySet 299*b1cdbd2cSJim Jagielski , public ::com::sun::star::embed::XOptimizedStorage 300*b1cdbd2cSJim Jagielski , public ::com::sun::star::embed::XRelationshipAccess 301*b1cdbd2cSJim Jagielski , public ::com::sun::star::embed::XHierarchicalStorageAccess2 302*b1cdbd2cSJim Jagielski , public ::cppu::OWeakObject 303*b1cdbd2cSJim Jagielski { 304*b1cdbd2cSJim Jagielski OStorage_Impl* m_pImpl; 305*b1cdbd2cSJim Jagielski StorInternalData_Impl* m_pData; 306*b1cdbd2cSJim Jagielski 307*b1cdbd2cSJim Jagielski protected: 308*b1cdbd2cSJim Jagielski 309*b1cdbd2cSJim Jagielski void Commit_Impl(); 310*b1cdbd2cSJim Jagielski 311*b1cdbd2cSJim Jagielski SotElement_Impl* OpenStreamElement_Impl( const ::rtl::OUString& aStreamName, sal_Int32 nOpenMode, sal_Bool bEncr ); 312*b1cdbd2cSJim Jagielski 313*b1cdbd2cSJim Jagielski void BroadcastModifiedIfNecessary(); 314*b1cdbd2cSJim Jagielski 315*b1cdbd2cSJim Jagielski void BroadcastTransaction( sal_Int8 nMessage ); 316*b1cdbd2cSJim Jagielski 317*b1cdbd2cSJim Jagielski void MakeLinkToSubComponent_Impl( 318*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XComponent >& xComponent ); 319*b1cdbd2cSJim Jagielski 320*b1cdbd2cSJim Jagielski public: 321*b1cdbd2cSJim Jagielski 322*b1cdbd2cSJim Jagielski OStorage( ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > xInputStream, 323*b1cdbd2cSJim Jagielski sal_Int32 nMode, 324*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > xProperties, 325*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory, 326*b1cdbd2cSJim Jagielski sal_Int32 nStorageType ); 327*b1cdbd2cSJim Jagielski 328*b1cdbd2cSJim Jagielski OStorage( ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > xStream, 329*b1cdbd2cSJim Jagielski sal_Int32 nMode, 330*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > xProperties, 331*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory, 332*b1cdbd2cSJim Jagielski sal_Int32 nStorageType ); 333*b1cdbd2cSJim Jagielski 334*b1cdbd2cSJim Jagielski OStorage( OStorage_Impl* pImpl, sal_Bool bReadOnlyWrap ); 335*b1cdbd2cSJim Jagielski 336*b1cdbd2cSJim Jagielski virtual ~OStorage(); 337*b1cdbd2cSJim Jagielski 338*b1cdbd2cSJim Jagielski void SAL_CALL InternalDispose( sal_Bool bNotifyImpl ); 339*b1cdbd2cSJim Jagielski 340*b1cdbd2cSJim Jagielski void ChildIsDisposed( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xChild ); 341*b1cdbd2cSJim Jagielski GetRefCount_Impl()342*b1cdbd2cSJim Jagielski sal_Int32 GetRefCount_Impl() { return m_refCount; } 343*b1cdbd2cSJim Jagielski 344*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 345*b1cdbd2cSJim Jagielski // XInterface 346*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 347*b1cdbd2cSJim Jagielski 348*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& rType ) 349*b1cdbd2cSJim Jagielski throw( ::com::sun::star::uno::RuntimeException ); 350*b1cdbd2cSJim Jagielski 351*b1cdbd2cSJim Jagielski virtual void SAL_CALL acquire() throw(); 352*b1cdbd2cSJim Jagielski 353*b1cdbd2cSJim Jagielski virtual void SAL_CALL release() throw(); 354*b1cdbd2cSJim Jagielski 355*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 356*b1cdbd2cSJim Jagielski // XTypeProvider 357*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 358*b1cdbd2cSJim Jagielski 359*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() 360*b1cdbd2cSJim Jagielski throw( ::com::sun::star::uno::RuntimeException ); 361*b1cdbd2cSJim Jagielski 362*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() 363*b1cdbd2cSJim Jagielski throw( ::com::sun::star::uno::RuntimeException ); 364*b1cdbd2cSJim Jagielski 365*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 366*b1cdbd2cSJim Jagielski // XStorage 367*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 368*b1cdbd2cSJim Jagielski 369*b1cdbd2cSJim Jagielski virtual void SAL_CALL copyToStorage( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xDest ) 370*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 371*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 372*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 373*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 374*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 375*b1cdbd2cSJim Jagielski 376*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > SAL_CALL openStreamElement( 377*b1cdbd2cSJim Jagielski const ::rtl::OUString& aStreamName, sal_Int32 nOpenMode ) 378*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 379*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 380*b1cdbd2cSJim Jagielski ::com::sun::star::packages::WrongPasswordException, 381*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 382*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 383*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 384*b1cdbd2cSJim Jagielski 385*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > SAL_CALL openEncryptedStreamElement( 386*b1cdbd2cSJim Jagielski const ::rtl::OUString& aStreamName, sal_Int32 nOpenMode, const ::rtl::OUString& aPass ) 387*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 388*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 389*b1cdbd2cSJim Jagielski ::com::sun::star::packages::NoEncryptionException, 390*b1cdbd2cSJim Jagielski ::com::sun::star::packages::WrongPasswordException, 391*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 392*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 393*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 394*b1cdbd2cSJim Jagielski 395*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > SAL_CALL openStorageElement( 396*b1cdbd2cSJim Jagielski const ::rtl::OUString& aStorName, sal_Int32 nStorageMode ) 397*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 398*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 399*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 400*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 401*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 402*b1cdbd2cSJim Jagielski 403*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > SAL_CALL cloneStreamElement( 404*b1cdbd2cSJim Jagielski const ::rtl::OUString& aStreamName ) 405*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 406*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 407*b1cdbd2cSJim Jagielski ::com::sun::star::packages::WrongPasswordException, 408*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 409*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 410*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 411*b1cdbd2cSJim Jagielski 412*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > SAL_CALL cloneEncryptedStreamElement( 413*b1cdbd2cSJim Jagielski const ::rtl::OUString& aStreamName, const ::rtl::OUString& aPass ) 414*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 415*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 416*b1cdbd2cSJim Jagielski ::com::sun::star::packages::NoEncryptionException, 417*b1cdbd2cSJim Jagielski ::com::sun::star::packages::WrongPasswordException, 418*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 419*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 420*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 421*b1cdbd2cSJim Jagielski 422*b1cdbd2cSJim Jagielski virtual void SAL_CALL copyLastCommitTo( 423*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xTargetStorage ) 424*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 425*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 426*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 427*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 428*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 429*b1cdbd2cSJim Jagielski 430*b1cdbd2cSJim Jagielski virtual void SAL_CALL copyStorageElementLastCommitTo( 431*b1cdbd2cSJim Jagielski const ::rtl::OUString& aStorName, 432*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xTargetStorage ) 433*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 434*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 435*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 436*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 437*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 438*b1cdbd2cSJim Jagielski 439*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL isStreamElement( const ::rtl::OUString& aElementName ) 440*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::container::NoSuchElementException, 441*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 442*b1cdbd2cSJim Jagielski ::com::sun::star::embed::InvalidStorageException, 443*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 444*b1cdbd2cSJim Jagielski 445*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL isStorageElement( const ::rtl::OUString& aElementName ) 446*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::container::NoSuchElementException, 447*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 448*b1cdbd2cSJim Jagielski ::com::sun::star::embed::InvalidStorageException, 449*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 450*b1cdbd2cSJim Jagielski 451*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeElement( const ::rtl::OUString& aElementName ) 452*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 453*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 454*b1cdbd2cSJim Jagielski ::com::sun::star::container::NoSuchElementException, 455*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 456*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 457*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 458*b1cdbd2cSJim Jagielski 459*b1cdbd2cSJim Jagielski virtual void SAL_CALL renameElement( const ::rtl::OUString& rEleName, const ::rtl::OUString& rNewName ) 460*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 461*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 462*b1cdbd2cSJim Jagielski ::com::sun::star::container::NoSuchElementException, 463*b1cdbd2cSJim Jagielski ::com::sun::star::container::ElementExistException, 464*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 465*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 466*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 467*b1cdbd2cSJim Jagielski 468*b1cdbd2cSJim Jagielski virtual void SAL_CALL copyElementTo( const ::rtl::OUString& aElementName, 469*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xDest, 470*b1cdbd2cSJim Jagielski const ::rtl::OUString& aNewName ) 471*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 472*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 473*b1cdbd2cSJim Jagielski ::com::sun::star::container::NoSuchElementException, 474*b1cdbd2cSJim Jagielski ::com::sun::star::container::ElementExistException, 475*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 476*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 477*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 478*b1cdbd2cSJim Jagielski 479*b1cdbd2cSJim Jagielski virtual void SAL_CALL moveElementTo( const ::rtl::OUString& aElementName, 480*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xDest, 481*b1cdbd2cSJim Jagielski const ::rtl::OUString& rNewName ) 482*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 483*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 484*b1cdbd2cSJim Jagielski ::com::sun::star::container::NoSuchElementException, 485*b1cdbd2cSJim Jagielski ::com::sun::star::container::ElementExistException, 486*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 487*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 488*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 489*b1cdbd2cSJim Jagielski 490*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 491*b1cdbd2cSJim Jagielski // XStorage2 492*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 493*b1cdbd2cSJim Jagielski 494*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > SAL_CALL openEncryptedStream( const ::rtl::OUString& sStreamName, ::sal_Int32 nOpenMode, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aEncryptionData ) 495*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 496*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 497*b1cdbd2cSJim Jagielski ::com::sun::star::packages::NoEncryptionException, 498*b1cdbd2cSJim Jagielski ::com::sun::star::packages::WrongPasswordException, 499*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 500*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 501*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 502*b1cdbd2cSJim Jagielski 503*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > SAL_CALL cloneEncryptedStream( const ::rtl::OUString& sStreamName, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aEncryptionData ) 504*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 505*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 506*b1cdbd2cSJim Jagielski ::com::sun::star::packages::NoEncryptionException, 507*b1cdbd2cSJim Jagielski ::com::sun::star::packages::WrongPasswordException, 508*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 509*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 510*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 511*b1cdbd2cSJim Jagielski 512*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 513*b1cdbd2cSJim Jagielski // XStorageRawAccess 514*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 515*b1cdbd2cSJim Jagielski 516*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getPlainRawStreamElement( 517*b1cdbd2cSJim Jagielski const ::rtl::OUString& sStreamName ) 518*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 519*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 520*b1cdbd2cSJim Jagielski ::com::sun::star::container::NoSuchElementException, 521*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 522*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 523*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 524*b1cdbd2cSJim Jagielski 525*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > SAL_CALL getRawEncrStreamElement( 526*b1cdbd2cSJim Jagielski const ::rtl::OUString& sStreamName ) 527*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 528*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 529*b1cdbd2cSJim Jagielski ::com::sun::star::packages::NoEncryptionException, 530*b1cdbd2cSJim Jagielski ::com::sun::star::container::NoSuchElementException, 531*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 532*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 533*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 534*b1cdbd2cSJim Jagielski 535*b1cdbd2cSJim Jagielski virtual void SAL_CALL insertRawEncrStreamElement( const ::rtl::OUString& aStreamName, 536*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xInStream ) 537*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 538*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 539*b1cdbd2cSJim Jagielski ::com::sun::star::packages::NoRawFormatException, 540*b1cdbd2cSJim Jagielski ::com::sun::star::container::ElementExistException, 541*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 542*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 543*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 544*b1cdbd2cSJim Jagielski 545*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 546*b1cdbd2cSJim Jagielski // XTransactedObject 547*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 548*b1cdbd2cSJim Jagielski 549*b1cdbd2cSJim Jagielski virtual void SAL_CALL commit() 550*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::io::IOException, 551*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 552*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 553*b1cdbd2cSJim Jagielski 554*b1cdbd2cSJim Jagielski virtual void SAL_CALL revert() 555*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::io::IOException, 556*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 557*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 558*b1cdbd2cSJim Jagielski 559*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 560*b1cdbd2cSJim Jagielski // XTransactionBroadcaster 561*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 562*b1cdbd2cSJim Jagielski 563*b1cdbd2cSJim Jagielski virtual void SAL_CALL addTransactionListener( 564*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XTransactionListener >& aListener ) 565*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 566*b1cdbd2cSJim Jagielski 567*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeTransactionListener( 568*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XTransactionListener >& aListener ) 569*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 570*b1cdbd2cSJim Jagielski 571*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 572*b1cdbd2cSJim Jagielski // XModifiable 573*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 574*b1cdbd2cSJim Jagielski 575*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL isModified() 576*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 577*b1cdbd2cSJim Jagielski 578*b1cdbd2cSJim Jagielski virtual void SAL_CALL setModified( sal_Bool bModified ) 579*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::beans::PropertyVetoException, 580*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 581*b1cdbd2cSJim Jagielski 582*b1cdbd2cSJim Jagielski virtual void SAL_CALL addModifyListener( 583*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) 584*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 585*b1cdbd2cSJim Jagielski 586*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeModifyListener( 587*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) 588*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 589*b1cdbd2cSJim Jagielski 590*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 591*b1cdbd2cSJim Jagielski // XNameAccess 592*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 593*b1cdbd2cSJim Jagielski 594*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName ) 595*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::container::NoSuchElementException, 596*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 597*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 598*b1cdbd2cSJim Jagielski 599*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames() 600*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 601*b1cdbd2cSJim Jagielski 602*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName ) 603*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 604*b1cdbd2cSJim Jagielski 605*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Type SAL_CALL getElementType() 606*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 607*b1cdbd2cSJim Jagielski 608*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL hasElements() 609*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 610*b1cdbd2cSJim Jagielski 611*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 612*b1cdbd2cSJim Jagielski // XComponent 613*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 614*b1cdbd2cSJim Jagielski 615*b1cdbd2cSJim Jagielski virtual void SAL_CALL dispose() 616*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 617*b1cdbd2cSJim Jagielski 618*b1cdbd2cSJim Jagielski virtual void SAL_CALL addEventListener( 619*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) 620*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 621*b1cdbd2cSJim Jagielski 622*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeEventListener( 623*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener >& xListener ) 624*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 625*b1cdbd2cSJim Jagielski 626*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 627*b1cdbd2cSJim Jagielski // XEncryptionProtectedSource 628*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 629*b1cdbd2cSJim Jagielski 630*b1cdbd2cSJim Jagielski virtual void SAL_CALL setEncryptionPassword( const ::rtl::OUString& aPass ) 631*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException, 632*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException ); 633*b1cdbd2cSJim Jagielski 634*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeEncryption() 635*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException, 636*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException ); 637*b1cdbd2cSJim Jagielski 638*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 639*b1cdbd2cSJim Jagielski // XEncryptionProtectedSource2 640*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 641*b1cdbd2cSJim Jagielski 642*b1cdbd2cSJim Jagielski virtual void SAL_CALL setEncryptionData( 643*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aEncryptionData ) 644*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::io::IOException, 645*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 646*b1cdbd2cSJim Jagielski 647*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 648*b1cdbd2cSJim Jagielski // XEncryptionProtectedStorage 649*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 650*b1cdbd2cSJim Jagielski 651*b1cdbd2cSJim Jagielski virtual void SAL_CALL setEncryptionAlgorithms( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aAlgorithms ) throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); 652*b1cdbd2cSJim Jagielski 653*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue > SAL_CALL getEncryptionAlgorithms() throw (::com::sun::star::uno::RuntimeException); 654*b1cdbd2cSJim Jagielski 655*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 656*b1cdbd2cSJim Jagielski // XPropertySet 657*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 658*b1cdbd2cSJim Jagielski 659*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() 660*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 661*b1cdbd2cSJim Jagielski 662*b1cdbd2cSJim Jagielski virtual void SAL_CALL setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) 663*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::beans::UnknownPropertyException, 664*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyVetoException, 665*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 666*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 667*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 668*b1cdbd2cSJim Jagielski 669*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const ::rtl::OUString& PropertyName ) 670*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::beans::UnknownPropertyException, 671*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 672*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 673*b1cdbd2cSJim Jagielski 674*b1cdbd2cSJim Jagielski virtual void SAL_CALL addPropertyChangeListener( 675*b1cdbd2cSJim Jagielski const ::rtl::OUString& aPropertyName, 676*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& xListener ) 677*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::beans::UnknownPropertyException, 678*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 679*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 680*b1cdbd2cSJim Jagielski 681*b1cdbd2cSJim Jagielski virtual void SAL_CALL removePropertyChangeListener( 682*b1cdbd2cSJim Jagielski const ::rtl::OUString& aPropertyName, 683*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& aListener ) 684*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::beans::UnknownPropertyException, 685*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 686*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 687*b1cdbd2cSJim Jagielski 688*b1cdbd2cSJim Jagielski virtual void SAL_CALL addVetoableChangeListener( 689*b1cdbd2cSJim Jagielski const ::rtl::OUString& PropertyName, 690*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 691*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::beans::UnknownPropertyException, 692*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 693*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 694*b1cdbd2cSJim Jagielski 695*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeVetoableChangeListener( const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& aListener ) 696*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::beans::UnknownPropertyException, 697*b1cdbd2cSJim Jagielski ::com::sun::star::lang::WrappedTargetException, 698*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 699*b1cdbd2cSJim Jagielski 700*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 701*b1cdbd2cSJim Jagielski // XOptimizedStorage 702*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 703*b1cdbd2cSJim Jagielski virtual void SAL_CALL insertRawNonEncrStreamElementDirect( const ::rtl::OUString& sStreamName, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xInStream ) 704*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 705*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 706*b1cdbd2cSJim Jagielski ::com::sun::star::packages::NoRawFormatException, 707*b1cdbd2cSJim Jagielski ::com::sun::star::container::ElementExistException, 708*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 709*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 710*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 711*b1cdbd2cSJim Jagielski 712*b1cdbd2cSJim Jagielski virtual void SAL_CALL insertStreamElementDirect( const ::rtl::OUString& sStreamName, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xInStream, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aProps ) 713*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 714*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 715*b1cdbd2cSJim Jagielski ::com::sun::star::container::ElementExistException, 716*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 717*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 718*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 719*b1cdbd2cSJim Jagielski 720*b1cdbd2cSJim Jagielski virtual void SAL_CALL copyElementDirectlyTo( const ::rtl::OUString& sSourceName, const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XOptimizedStorage >& xTargetStorage, const ::rtl::OUString& sTargetName ) 721*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 722*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 723*b1cdbd2cSJim Jagielski ::com::sun::star::container::NoSuchElementException, 724*b1cdbd2cSJim Jagielski ::com::sun::star::container::ElementExistException, 725*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 726*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 727*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 728*b1cdbd2cSJim Jagielski 729*b1cdbd2cSJim Jagielski virtual void SAL_CALL writeAndAttachToStream( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xStream ) 730*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 731*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 732*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 733*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 734*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 735*b1cdbd2cSJim Jagielski 736*b1cdbd2cSJim Jagielski virtual void SAL_CALL attachToURL( const ::rtl::OUString& sURL, sal_Bool bReadOnly ) 737*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 738*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 739*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 740*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 741*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 742*b1cdbd2cSJim Jagielski 743*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getElementPropertyValue( const ::rtl::OUString& sElementName, const ::rtl::OUString& sPropertyName ) 744*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 745*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 746*b1cdbd2cSJim Jagielski ::com::sun::star::container::NoSuchElementException, 747*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 748*b1cdbd2cSJim Jagielski ::com::sun::star::beans::UnknownPropertyException, 749*b1cdbd2cSJim Jagielski ::com::sun::star::beans::PropertyVetoException, 750*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 751*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 752*b1cdbd2cSJim Jagielski 753*b1cdbd2cSJim Jagielski virtual void SAL_CALL copyStreamElementData( const ::rtl::OUString& sStreamName, const ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xTargetStream ) 754*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 755*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 756*b1cdbd2cSJim Jagielski ::com::sun::star::packages::WrongPasswordException, 757*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 758*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 759*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 760*b1cdbd2cSJim Jagielski 761*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 762*b1cdbd2cSJim Jagielski // XRelationshipAccess 763*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 764*b1cdbd2cSJim Jagielski 765*b1cdbd2cSJim Jagielski virtual ::sal_Bool SAL_CALL hasByID( const ::rtl::OUString& sID ) 766*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::io::IOException, 767*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 768*b1cdbd2cSJim Jagielski 769*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getTargetByID( const ::rtl::OUString& sID ) 770*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::container::NoSuchElementException, 771*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 772*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 773*b1cdbd2cSJim Jagielski 774*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getTypeByID( const ::rtl::OUString& sID ) 775*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::container::NoSuchElementException, 776*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 777*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 778*b1cdbd2cSJim Jagielski 779*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair > SAL_CALL getRelationshipByID( const ::rtl::OUString& sID ) 780*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::container::NoSuchElementException, 781*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 782*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 783*b1cdbd2cSJim Jagielski 784*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair > > SAL_CALL getRelationshipsByType( const ::rtl::OUString& sType ) 785*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::io::IOException, 786*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 787*b1cdbd2cSJim Jagielski 788*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair > > SAL_CALL getAllRelationships( ) 789*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::io::IOException, 790*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 791*b1cdbd2cSJim Jagielski 792*b1cdbd2cSJim Jagielski virtual void SAL_CALL insertRelationshipByID( const ::rtl::OUString& sID, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair >& aEntry, ::sal_Bool bReplace ) 793*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::container::ElementExistException, 794*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 795*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 796*b1cdbd2cSJim Jagielski 797*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeRelationshipByID( const ::rtl::OUString& sID ) 798*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::container::NoSuchElementException, 799*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 800*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 801*b1cdbd2cSJim Jagielski 802*b1cdbd2cSJim Jagielski virtual void SAL_CALL insertRelationships( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::StringPair > >& aEntries, ::sal_Bool bReplace ) 803*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::container::ElementExistException, 804*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 805*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 806*b1cdbd2cSJim Jagielski 807*b1cdbd2cSJim Jagielski virtual void SAL_CALL clearRelationships( ) 808*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::io::IOException, 809*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 810*b1cdbd2cSJim Jagielski 811*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 812*b1cdbd2cSJim Jagielski // XHierarchicalStorageAccess 813*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 814*b1cdbd2cSJim Jagielski 815*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XExtendedStorageStream > SAL_CALL openStreamElementByHierarchicalName( const ::rtl::OUString& sStreamPath, ::sal_Int32 nOpenMode ) 816*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 817*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 818*b1cdbd2cSJim Jagielski ::com::sun::star::packages::WrongPasswordException, 819*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 820*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 821*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 822*b1cdbd2cSJim Jagielski 823*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XExtendedStorageStream > SAL_CALL openEncryptedStreamElementByHierarchicalName( const ::rtl::OUString& sStreamName, ::sal_Int32 nOpenMode, const ::rtl::OUString& sPassword ) 824*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 825*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 826*b1cdbd2cSJim Jagielski ::com::sun::star::packages::NoEncryptionException, 827*b1cdbd2cSJim Jagielski ::com::sun::star::packages::WrongPasswordException, 828*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 829*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 830*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 831*b1cdbd2cSJim Jagielski 832*b1cdbd2cSJim Jagielski virtual void SAL_CALL removeStreamElementByHierarchicalName( const ::rtl::OUString& sElementPath ) 833*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 834*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 835*b1cdbd2cSJim Jagielski ::com::sun::star::container::NoSuchElementException, 836*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 837*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 838*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 839*b1cdbd2cSJim Jagielski 840*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 841*b1cdbd2cSJim Jagielski // XHierarchicalStorageAccess2 842*b1cdbd2cSJim Jagielski //____________________________________________________________________________________________________ 843*b1cdbd2cSJim Jagielski 844*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::embed::XExtendedStorageStream > SAL_CALL openEncryptedStreamByHierarchicalName( const ::rtl::OUString& sStreamName, ::sal_Int32 nOpenMode, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aEncryptionData ) 845*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::embed::InvalidStorageException, 846*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IllegalArgumentException, 847*b1cdbd2cSJim Jagielski ::com::sun::star::packages::NoEncryptionException, 848*b1cdbd2cSJim Jagielski ::com::sun::star::packages::WrongPasswordException, 849*b1cdbd2cSJim Jagielski ::com::sun::star::io::IOException, 850*b1cdbd2cSJim Jagielski ::com::sun::star::embed::StorageWrappedTargetException, 851*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 852*b1cdbd2cSJim Jagielski }; 853*b1cdbd2cSJim Jagielski 854*b1cdbd2cSJim Jagielski 855*b1cdbd2cSJim Jagielski #endif 856*b1cdbd2cSJim Jagielski 857