diff options
Diffstat (limited to 'package/inc/ZipPackage.hxx')
-rw-r--r-- | package/inc/ZipPackage.hxx | 50 |
1 files changed, 32 insertions, 18 deletions
diff --git a/package/inc/ZipPackage.hxx b/package/inc/ZipPackage.hxx index 93d7b83c95ff..0549c06b6bb7 100644 --- a/package/inc/ZipPackage.hxx +++ b/package/inc/ZipPackage.hxx @@ -37,12 +37,15 @@ #include <com/sun/star/util/XChangesBatch.hpp> #include <com/sun/star/lang/XUnoTunnel.hpp> #include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/beans/PropertyValue.hpp> #ifndef _COM_SUN_STAR_LANG_XPSERVICEINFO_HPP_ #include <com/sun/star/lang/XServiceInfo.hpp> #endif #include <HashMaps.hxx> #include <com/sun/star/lang/IllegalArgumentException.hpp> #include <osl/file.h> +#include <mutexholder.hxx> + class ZipOutputStream; class ZipPackageFolder; class ZipFile; @@ -81,44 +84,55 @@ class ZipPackage : public cppu::WeakImplHelper7 > { protected: - ::com::sun::star::uno::Sequence < sal_Int8 > aEncryptionKey; - FolderHash aRecent; - ::rtl::OUString sURL; - sal_Bool bHasEncryptedEntries; - sal_Bool bUseManifest; - sal_Bool bForceRecovery; + SotMutexHolderRef m_aMutexHolder; + + ::com::sun::star::uno::Sequence < sal_Int8 > m_aEncryptionKey; + FolderHash m_aRecent; + ::rtl::OUString m_aURL; + sal_Bool m_bHasEncryptedEntries; + sal_Bool m_bHasNonEncryptedEntries; + sal_Bool m_bUseManifest; + sal_Bool m_bForceRecovery; sal_Bool m_bMediaTypeFallbackUsed; sal_Int16 m_nFormat; sal_Bool m_bAllowRemoveOnInsert; - InitialisationMode eMode; + InitialisationMode m_eMode; - ::com::sun::star::uno::Reference < com::sun::star::container::XNameContainer > xRootFolder; - ::com::sun::star::uno::Reference < com::sun::star::io::XStream > xStream; - ::com::sun::star::uno::Reference < com::sun::star::io::XInputStream > xContentStream; - ::com::sun::star::uno::Reference < com::sun::star::io::XSeekable > xContentSeek; - const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > xFactory; + ::com::sun::star::uno::Reference < com::sun::star::container::XNameContainer > m_xRootFolder; + ::com::sun::star::uno::Reference < com::sun::star::io::XStream > m_xStream; + ::com::sun::star::uno::Reference < com::sun::star::io::XInputStream > m_xContentStream; + ::com::sun::star::uno::Reference < com::sun::star::io::XSeekable > m_xContentSeek; + const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > m_xFactory; - ZipPackageFolder *pRootFolder; - ZipFile *pZipFile; + ZipPackageFolder *m_pRootFolder; + ZipFile *m_pZipFile; void parseManifest(); void parseContentType(); void getZipFileContents(); - sal_Bool writeFileIsTemp(); - ::com::sun::star::uno::Reference < ::com::sun::star::io::XActiveDataStreamer > openOriginalForOutput(); + void WriteMimetypeMagicFile( ZipOutputStream& aZipOut ); + void WriteManifest( ZipOutputStream& aZipOut, const ::std::vector< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& aManList ); + void WriteContentTypes( ZipOutputStream& aZipOut, const ::std::vector< ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > >& aManList ); + + ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > writeTempFile(); + ::com::sun::star::uno::Reference < ::com::sun::star::io::XActiveDataStreamer > openOriginalForOutput(); void DisconnectFromTargetAndThrowException_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xTempStream ); public: ZipPackage (const ::com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > &xNewFactory); virtual ~ZipPackage( void ); - ZipFile& getZipFile() { return *pZipFile;} - const com::sun::star::uno::Sequence < sal_Int8 > & getEncryptionKey ( ) {return aEncryptionKey;} + ZipFile& getZipFile() { return *m_pZipFile;} + const com::sun::star::uno::Sequence < sal_Int8 > & getEncryptionKey ( ) {return m_aEncryptionKey;} sal_Int16 getFormat() const { return m_nFormat; } + SotMutexHolderRef GetSharedMutexRef() { return m_aMutexHolder; } + + void ConnectTo( const ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >& xInStream ); + // XInitialization virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw(::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException); |