summaryrefslogtreecommitdiff
path: root/package/inc/ZipPackage.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'package/inc/ZipPackage.hxx')
-rw-r--r--package/inc/ZipPackage.hxx50
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);