diff options
-rw-r--r-- | include/sot/storage.hxx | 26 | ||||
-rw-r--r-- | sot/source/sdstor/storage.cxx | 24 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par.cxx | 2 |
3 files changed, 31 insertions, 21 deletions
diff --git a/include/sot/storage.hxx b/include/sot/storage.hxx index 3376609632e3..e2d7e226b28e 100644 --- a/include/sot/storage.hxx +++ b/include/sot/storage.hxx @@ -25,6 +25,7 @@ #include <com/sun/star/io/XInputStream.hpp> #include <com/sun/star/embed/XStorage.hpp> +#include <o3tl/typed_flags_set.hxx> #include <sot/object.hxx> #include <sot/factory.hxx> #include <tools/stream.hxx> @@ -32,10 +33,19 @@ #include <sot/storinfo.hxx> #include <sot/sotdllapi.h> -#define STORAGE_TRANSACTED 0x04 -#define STORAGE_DISKSPANNED_MODE 0x80 -#define STORAGE_CREATE_UNPACKED 0x44 -typedef short StorageMode; +enum class StorageMode { + Default = 0, + Transacted = 0x04, + DiskspannedMode = 0x80, + CreateUnpacked = 0x44 +}; + +namespace o3tl { + +template<> struct typed_flags<StorageMode>: is_typed_flags<StorageMode, 0xC4> +{}; + +} class SvStorage; @@ -58,7 +68,7 @@ protected: public: SotStorageStream( const OUString &, StreamMode = STREAM_STD_READWRITE, - StorageMode = 0 ); + StorageMode = StorageMode::Default ); SotStorageStream( BaseStorageStream *pStm ); SotStorageStream(); @@ -113,10 +123,10 @@ protected: public: SotStorage( const OUString &, StreamMode = STREAM_STD_READWRITE, - StorageMode = 0 ); + StorageMode = StorageMode::Default ); SotStorage( bool bUCBStorage, const OUString &, StreamMode = STREAM_STD_READWRITE, - StorageMode = 0 ); + StorageMode = StorageMode::Default ); SotStorage( BaseStorage * ); SotStorage( SvStream & rStm ); SotStorage( bool bUCBStorage, SvStream & rStm ); @@ -181,7 +191,7 @@ public: // more or less a Parent-Child relationship SotStorageStream * OpenSotStream( const OUString & rEleName, StreamMode = STREAM_STD_READWRITE, - StorageMode = 0 ); + StorageMode = StorageMode::Default ); SotStorage * OpenSotStorage( const OUString & rEleName, StreamMode = STREAM_STD_READWRITE, bool transacted = true ); diff --git a/sot/source/sdstor/storage.cxx b/sot/source/sdstor/storage.cxx index f278cc7a967b..ae40b74dcd60 100644 --- a/sot/source/sdstor/storage.cxx +++ b/sot/source/sdstor/storage.cxx @@ -89,7 +89,7 @@ SotStorageStream::SotStorageStream( const OUString & rName, StreamMode nMode, else bIsWritable = false; - DBG_ASSERT( !nStorageMode,"StorageModes ignored" ); + DBG_ASSERT( nStorageMode == StorageMode::Default, "StorageModes ignored" ); } SotStorageStream::SotStorageStream( BaseStorageStream * pStm ) @@ -368,7 +368,7 @@ void SotStorage::CreateStorage( bool bForceUCBStorage, StreamMode nMode, Storage } // a new unpacked storage should be created - if ( nStorageMode == STORAGE_CREATE_UNPACKED ) + if ( nStorageMode == StorageMode::CreateUnpacked ) { // don't open stream readwrite, content provider may not support this ! OUString aURL = UCBStorage::CreateLinkFile( m_aName ); @@ -403,35 +403,35 @@ void SotStorage::CreateStorage( bool bForceUCBStorage, StreamMode nMode, Storage if ( !(UCBStorage::GetLinkedFile( *m_pStorStm ).isEmpty()) ) { // detect special unpacked storages - m_pOwnStg = new UCBStorage( *m_pStorStm, (nStorageMode & STORAGE_TRANSACTED) == 0 ); + m_pOwnStg = new UCBStorage( *m_pStorStm, !(nStorageMode & StorageMode::Transacted) ); m_bDelStm = true; } else { // detect special disk spanned storages if ( UCBStorage::IsDiskSpannedFile( m_pStorStm ) ) - nStorageMode |= STORAGE_DISKSPANNED_MODE; + nStorageMode |= StorageMode::DiskspannedMode; // UCBStorage always works directly on the UCB content, so discard the stream first DELETEZ( m_pStorStm ); - m_pOwnStg = new UCBStorage( m_aName, nMode, (nStorageMode & STORAGE_TRANSACTED) == 0 ); + m_pOwnStg = new UCBStorage( m_aName, nMode, !(nStorageMode & StorageMode::Transacted) ); } } else { // OLEStorage can be opened with a stream - m_pOwnStg = new Storage( *m_pStorStm, (nStorageMode & STORAGE_TRANSACTED) == 0 ); + m_pOwnStg = new Storage( *m_pStorStm, !(nStorageMode & StorageMode::Transacted) ); m_bDelStm = true; } } else if ( bForceUCBStorage ) { - m_pOwnStg = new UCBStorage( m_aName, nMode, (nStorageMode & STORAGE_TRANSACTED) == 0 ); + m_pOwnStg = new UCBStorage( m_aName, nMode, !(nStorageMode & StorageMode::Transacted) ); SetError( ERRCODE_IO_NOTSUPPORTED ); } else { - m_pOwnStg = new Storage( m_aName, nMode, (nStorageMode & STORAGE_TRANSACTED) == 0 ); + m_pOwnStg = new Storage( m_aName, nMode, !(nStorageMode & StorageMode::Transacted) ); SetError( ERRCODE_IO_NOTSUPPORTED ); } } @@ -440,9 +440,9 @@ void SotStorage::CreateStorage( bool bForceUCBStorage, StreamMode nMode, Storage { // temporary storage if ( bForceUCBStorage ) - m_pOwnStg = new UCBStorage( m_aName, nMode, (nStorageMode & STORAGE_TRANSACTED) == 0 ); + m_pOwnStg = new UCBStorage( m_aName, nMode, !(nStorageMode & StorageMode::Transacted) ); else - m_pOwnStg = new Storage( m_aName, nMode, (nStorageMode & STORAGE_TRANSACTED) == 0 ); + m_pOwnStg = new Storage( m_aName, nMode, !(nStorageMode & StorageMode::Transacted) ); m_aName = m_pOwnStg->GetName(); } @@ -691,7 +691,7 @@ SotStorageStream * SotStorage::OpenSotStream( const OUString & rEleName, StreamMode nMode, StorageMode nStorageMode ) { - DBG_ASSERT( !nStorageMode, "StorageModes ignored" ); + DBG_ASSERT( nStorageMode == StorageMode::Default, "StorageModes ignored" ); SotStorageStream * pStm = NULL; DBG_ASSERT( Owner(), "must be owner" ); if( m_pOwnStg ) @@ -701,7 +701,7 @@ SotStorageStream * SotStorage::OpenSotStream( const OUString & rEleName, nMode |= StreamMode::SHARE_DENYALL; ErrCode nE = m_pOwnStg->GetError(); BaseStorageStream * p = m_pOwnStg->OpenStream( rEleName, nMode, - (nStorageMode & STORAGE_TRANSACTED) == 0 ); + !(nStorageMode & StorageMode::Transacted) ); pStm = new SotStorageStream( p ); if( !nE ) diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index 5fb5ee5d957f..a29e78fb0319 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -4842,7 +4842,7 @@ bool SwWW8ImplReader::ReadGlobalTemplateSettings( const OUString& sCreatedFrom, if ( !aURL.endsWithIgnoreAsciiCase( ".dot" ) || ( !sCreatedFrom.isEmpty() && sCreatedFrom.equals( aURL ) ) ) continue; // don't try and read the same document as ourselves - SotStorageRef rRoot = new SotStorage( aURL, STREAM_STD_READWRITE, STORAGE_TRANSACTED ); + SotStorageRef rRoot = new SotStorage( aURL, STREAM_STD_READWRITE, StorageMode::Transacted ); BasicProjImportHelper aBasicImporter( *m_pDocShell ); // Import vba via oox filter |