summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/sot/storage.hxx26
-rw-r--r--sot/source/sdstor/storage.cxx24
-rw-r--r--sw/source/filter/ww8/ww8par.cxx2
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