diff options
Diffstat (limited to 'package/source/xstor/xstorage.hxx')
-rw-r--r-- | package/source/xstor/xstorage.hxx | 66 |
1 files changed, 56 insertions, 10 deletions
diff --git a/package/source/xstor/xstorage.hxx b/package/source/xstor/xstorage.hxx index f1c50e4d67bd..a49de3af6f3a 100644 --- a/package/source/xstor/xstorage.hxx +++ b/package/source/xstor/xstorage.hxx @@ -29,14 +29,14 @@ #define __XSTORAGE_HXX_ #include <com/sun/star/uno/Sequence.hxx> -#include <com/sun/star/embed/XStorage.hpp> +#include <com/sun/star/embed/XStorage2.hpp> #include <com/sun/star/embed/XOptimizedStorage.hpp> -#include <com/sun/star/embed/XHierarchicalStorageAccess.hpp> +#include <com/sun/star/embed/XHierarchicalStorageAccess2.hpp> #include <com/sun/star/embed/XStorageRawAccess.hpp> #include <com/sun/star/embed/XTransactedObject.hpp> #include <com/sun/star/embed/XTransactionBroadcaster.hpp> #include <com/sun/star/embed/XClassifiedObject.hpp> -#include <com/sun/star/embed/XEncryptionProtectedSource.hpp> +#include <com/sun/star/embed/XEncryptionProtectedSource2.hpp> #include <com/sun/star/embed/XRelationshipAccess.hpp> #include <com/sun/star/util/XModifiable.hpp> #include <com/sun/star/container/XNameAccess.hpp> @@ -52,8 +52,10 @@ #include <com/sun/star/lang/XComponent.hpp> #include <com/sun/star/packages/NoEncryptionException.hpp> #include <com/sun/star/logging/XSimpleLogRing.hpp> + #include <cppuhelper/weak.hxx> #include <cppuhelper/interfacecontainer.h> +#include <comphelper/sequenceashashmap.hxx> #include "mutexholder.hxx" @@ -157,8 +159,8 @@ struct OStorage_Impl ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > m_xInputStream; // ??? may be stored in properties ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream > m_xStream; // ??? may be stored in properties ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > m_xProperties; - sal_Bool m_bHasCommonPassword; - ::rtl::OUString m_aCommonPassword; + sal_Bool m_bHasCommonEncryptionData; + ::comphelper::SequenceAsHashMap m_aCommonEncryptionData; // must be empty in case of root storage OStorage_Impl* m_pParent; @@ -231,7 +233,7 @@ struct OStorage_Impl void Commit(); void Revert(); - ::rtl::OUString GetCommonRootPass() throw ( ::com::sun::star::packages::NoEncryptionException ); + ::comphelper::SequenceAsHashMap GetCommonRootEncryptionData() throw ( ::com::sun::star::packages::NoEncryptionException ); void CopyToStorage( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xDest, sal_Bool bDirect ); @@ -264,7 +266,7 @@ struct OStorage_Impl void CloneStreamElement( const ::rtl::OUString& aStreamName, sal_Bool bPassProvided, - const ::rtl::OUString& aPass, + const ::comphelper::SequenceAsHashMap& aEncryptionData, ::com::sun::star::uno::Reference< ::com::sun::star::io::XStream >& xTargetStream ) throw ( ::com::sun::star::embed::InvalidStorageException, ::com::sun::star::lang::IllegalArgumentException, @@ -289,18 +291,18 @@ struct OStorage_Impl class OStorage : public ::com::sun::star::lang::XTypeProvider - , public ::com::sun::star::embed::XStorage + , public ::com::sun::star::embed::XStorage2 , public ::com::sun::star::embed::XStorageRawAccess , public ::com::sun::star::embed::XTransactedObject , public ::com::sun::star::embed::XTransactionBroadcaster , public ::com::sun::star::util::XModifiable // , public ::com::sun::star::container::XNameAccess // , public ::com::sun::star::lang::XComponent - , public ::com::sun::star::embed::XEncryptionProtectedSource + , public ::com::sun::star::embed::XEncryptionProtectedSource2 , public ::com::sun::star::beans::XPropertySet , public ::com::sun::star::embed::XOptimizedStorage , public ::com::sun::star::embed::XRelationshipAccess - , public ::com::sun::star::embed::XHierarchicalStorageAccess + , public ::com::sun::star::embed::XHierarchicalStorageAccess2 , public ::cppu::OWeakObject { OStorage_Impl* m_pImpl; @@ -490,6 +492,28 @@ public: ::com::sun::star::uno::RuntimeException ); //____________________________________________________________________________________________________ + // XStorage2 + //____________________________________________________________________________________________________ + + 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 ) + throw ( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoEncryptionException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + 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 ) + throw ( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoEncryptionException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException, + ::com::sun::star::uno::RuntimeException); + + //____________________________________________________________________________________________________ // XStorageRawAccess //____________________________________________________________________________________________________ @@ -616,6 +640,16 @@ public: ::com::sun::star::io::IOException ); //____________________________________________________________________________________________________ + // XEncryptionProtectedSource2 + //____________________________________________________________________________________________________ + + virtual void SAL_CALL setEncryptionData( + const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::NamedValue >& aEncryptionData ) + throw ( ::com::sun::star::io::IOException, + ::com::sun::star::uno::RuntimeException ); + + + //____________________________________________________________________________________________________ // XPropertySet //____________________________________________________________________________________________________ @@ -800,6 +834,18 @@ public: ::com::sun::star::embed::StorageWrappedTargetException, ::com::sun::star::uno::RuntimeException); + //____________________________________________________________________________________________________ + // XHierarchicalStorageAccess2 + //____________________________________________________________________________________________________ + + 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 ) + throw ( ::com::sun::star::embed::InvalidStorageException, + ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::packages::NoEncryptionException, + ::com::sun::star::packages::WrongPasswordException, + ::com::sun::star::io::IOException, + ::com::sun::star::embed::StorageWrappedTargetException, + ::com::sun::star::uno::RuntimeException ); }; |