summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/svtools/imap.hxx8
-rw-r--r--include/tools/stream.hxx51
-rw-r--r--include/tools/vcompat.hxx5
3 files changed, 35 insertions, 29 deletions
diff --git a/include/svtools/imap.hxx b/include/svtools/imap.hxx
index 140aadc6b670..4b2a4074c4d2 100644
--- a/include/svtools/imap.hxx
+++ b/include/svtools/imap.hxx
@@ -126,9 +126,9 @@ public:
class IMapCompat
{
SvStream* pRWStm;
- sal_uLong nCompatPos;
- sal_uLong nTotalSize;
- sal_uInt16 nStmMode;
+ sal_uLong nCompatPos;
+ sal_uLong nTotalSize;
+ StreamMode nStmMode;
IMapCompat() {}
IMapCompat( const IMapCompat& ) {}
@@ -137,7 +137,7 @@ class IMapCompat
public:
- IMapCompat( SvStream& rStm, const sal_uInt16 nStreamMode );
+ IMapCompat( SvStream& rStm, const StreamMode nStreamMode );
~IMapCompat();
};
diff --git a/include/tools/stream.hxx b/include/tools/stream.hxx
index dd830ae37f6e..e80d0978e845 100644
--- a/include/tools/stream.hxx
+++ b/include/tools/stream.hxx
@@ -27,6 +27,7 @@
#include <tools/ref.hxx>
#include <tools/rtti.hxx>
#include <rtl/string.hxx>
+#include <o3tl/typed_flags_set.hxx>
class StreamData;
@@ -40,34 +41,38 @@ inline rtl_TextEncoding GetStoreCharSet( rtl_TextEncoding eEncoding )
// StreamTypes
-typedef sal_uInt16 StreamMode;
-
// read, write, create,... options
-#define STREAM_READ 0x0001 ///< allow read accesses
-#define STREAM_WRITE 0x0002 ///< allow write accesses
+enum class StreamMode {
+ NONE = 0x0000,
+ READ = 0x0001, ///< allow read accesses
+ WRITE = 0x0002, ///< allow write accesses
// file i/o
-#define STREAM_NOCREATE 0x0004 ///< 1 == Dont create file
-#define STREAM_TRUNC 0x0008 ///< Truncate _existing_ file to zero length
-#define STREAM_COPY_ON_SYMLINK 0x0010 ///< copy-on-write for symlinks (Unix)
-
-#define STREAM_READWRITEBITS (STREAM_READ | STREAM_WRITE | \
- STREAM_NOCREATE | STREAM_TRUNC)
-
+ NOCREATE = 0x0004, ///< 1 == Dont create file
+ TRUNC = 0x0008, ///< Truncate _existing_ file to zero length
+ COPY_ON_SYMLINK = 0x0010, ///< copy-on-write for symlinks (Unix)
// sharing options
-#define STREAM_SHARE_DENYNONE 0x0100
-#define STREAM_SHARE_DENYREAD 0x0200 // overrides denynone
-#define STREAM_SHARE_DENYWRITE 0x0400 // overrides denynone
-#define STREAM_SHARE_DENYALL 0x0800 // overrides denyread,write,none
+ SHARE_DENYNONE = 0x0100,
+ SHARE_DENYREAD = 0x0200, // overrides denynone
+ SHARE_DENYWRITE = 0x0400, // overrides denynone
+ SHARE_DENYALL = 0x0800, // overrides denyread,write,none
+};
+namespace o3tl
+{
+ template<> struct typed_flags<StreamMode> : is_typed_flags<StreamMode, 0x003f> {};
+}
+
+#define STREAM_READWRITEBITS (StreamMode::READ | StreamMode::WRITE | \
+ StreamMode::NOCREATE | StreamMode::TRUNC)
-#define STREAM_SHAREBITS (STREAM_SHARE_DENYNONE | STREAM_SHARE_DENYREAD |\
- STREAM_SHARE_DENYWRITE | STREAM_SHARE_DENYALL)
+#define STREAM_SHAREBITS (StreamMode::SHARE_DENYNONE | StreamMode::SHARE_DENYREAD |\
+ StreamMode::SHARE_DENYWRITE | StreamMode::SHARE_DENYALL)
-#define STREAM_READWRITE (STREAM_READ | STREAM_WRITE)
-#define STREAM_SHARE_DENYREADWRITE (STREAM_SHARE_DENYREAD | STREAM_SHARE_DENYWRITE)
+#define STREAM_READWRITE (StreamMode::READ | StreamMode::WRITE)
+#define STREAM_SHARE_DENYREADWRITE (StreamMode::SHARE_DENYREAD | StreamMode::SHARE_DENYWRITE)
-#define STREAM_STD_READ (STREAM_READ | STREAM_SHARE_DENYNONE | STREAM_NOCREATE)
-#define STREAM_STD_WRITE (STREAM_WRITE | STREAM_SHARE_DENYALL)
-#define STREAM_STD_READWRITE (STREAM_READWRITE | STREAM_SHARE_DENYALL)
+#define STREAM_STD_READ (StreamMode::READ | StreamMode::SHARE_DENYNONE | StreamMode::NOCREATE)
+#define STREAM_STD_WRITE (StreamMode::WRITE | StreamMode::SHARE_DENYALL)
+#define STREAM_STD_READWRITE (STREAM_READWRITE | StreamMode::SHARE_DENYALL)
#define STREAM_SEEK_TO_BEGIN 0L
#define STREAM_SEEK_TO_END SAL_MAX_UINT64
@@ -236,7 +241,7 @@ private:
protected:
sal_uInt64 m_nBufFilePos; ///< File position of pBuf[0]
- sal_uInt16 eStreamMode;
+ StreamMode eStreamMode;
bool bIsWritable;
virtual sal_Size GetData( void* pData, sal_Size nSize );
diff --git a/include/tools/vcompat.hxx b/include/tools/vcompat.hxx
index 2d0412fe6a86..b8dfe7fb8ef3 100644
--- a/include/tools/vcompat.hxx
+++ b/include/tools/vcompat.hxx
@@ -28,13 +28,14 @@
((sal_uInt32)(char)(char4))<<24UL))
class SvStream;
+enum class StreamMode;
class TOOLS_DLLPUBLIC VersionCompat
{
SvStream* mpRWStm;
sal_uInt32 mnCompatPos;
sal_uInt32 mnTotalSize;
- sal_uInt16 mnStmMode;
+ StreamMode mnStmMode;
sal_uInt16 mnVersion;
VersionCompat() {}
@@ -44,7 +45,7 @@ class TOOLS_DLLPUBLIC VersionCompat
public:
- VersionCompat( SvStream& rStm, sal_uInt16 nStreamMode, sal_uInt16 nVersion = 1 );
+ VersionCompat( SvStream& rStm, StreamMode nStreamMode, sal_uInt16 nVersion = 1 );
~VersionCompat();
sal_uInt16 GetVersion() const { return mnVersion; }