diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-02-15 10:55:14 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2023-02-15 10:03:24 +0000 |
commit | bfbbdab13f16adf66f1afb9e2a2a103162927ba3 (patch) | |
tree | 666df4476917cf0a87427ebb4a215cca56bc3aa0 /include | |
parent | ddf4f82443254d88d9b984c68ed05fa16bb4607a (diff) |
osl::Mutex->std::mutex in LockFileCommon
Change-Id: I729b7ecf8280c67e4698b174a6151d1eda41be60
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147040
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'include')
-rw-r--r-- | include/svl/documentlockfile.hxx | 12 | ||||
-rw-r--r-- | include/svl/lockfilecommon.hxx | 4 | ||||
-rw-r--r-- | include/svl/msodocumentlockfile.hxx | 9 | ||||
-rw-r--r-- | include/svl/sharecontrolfile.hxx | 5 |
4 files changed, 18 insertions, 12 deletions
diff --git a/include/svl/documentlockfile.hxx b/include/svl/documentlockfile.hxx index b4f731db7fc8..d5dee52561cb 100644 --- a/include/svl/documentlockfile.hxx +++ b/include/svl/documentlockfile.hxx @@ -43,23 +43,25 @@ public: /// Only delete lockfile, disregarding ownership void RemoveFileDirectly(); - virtual LockFileEntry GetLockData() = 0; + LockFileEntry GetLockData(); protected: - virtual void WriteEntryToStream( const LockFileEntry& aEntry, const css::uno::Reference< css::io::XOutputStream >& xStream ) = 0; - virtual css::uno::Reference< css::io::XInputStream > OpenStream(); + virtual LockFileEntry GetLockDataImpl(std::unique_lock<std::mutex>& rGuard) = 0; + virtual void WriteEntryToStream( std::unique_lock<std::mutex>& rGuard, const LockFileEntry& aEntry, const css::uno::Reference< css::io::XOutputStream >& xStream ) = 0; + virtual css::uno::Reference< css::io::XInputStream > OpenStream(std::unique_lock<std::mutex>& rGuard); }; /// Class implementing reading and writing LO lockfiles. class SVL_DLLPUBLIC DocumentLockFile final : public GenDocumentLockFile { - virtual void WriteEntryToStream( const LockFileEntry& aEntry, const css::uno::Reference< css::io::XOutputStream >& xStream ) override; + virtual void WriteEntryToStream( std::unique_lock<std::mutex>& rGuard, const LockFileEntry& aEntry, const css::uno::Reference< css::io::XOutputStream >& xStream ) override; public: DocumentLockFile( std::u16string_view aOrigURL ); virtual ~DocumentLockFile() override; - virtual LockFileEntry GetLockData() override; +protected: + virtual LockFileEntry GetLockDataImpl(std::unique_lock<std::mutex>& rGuard) override; }; } diff --git a/include/svl/lockfilecommon.hxx b/include/svl/lockfilecommon.hxx index d71cb8262e92..6a19681b6f7a 100644 --- a/include/svl/lockfilecommon.hxx +++ b/include/svl/lockfilecommon.hxx @@ -24,10 +24,10 @@ #include <com/sun/star/uno/Sequence.hxx> -#include <osl/mutex.hxx> #include <tools/urlobj.hxx> #include <o3tl/enumarray.hxx> +#include <mutex> #include <string_view> #include <vector> @@ -47,7 +47,7 @@ private: OUString m_aURL; protected: - ::osl::Mutex m_aMutex; + std::mutex m_aMutex; /// This method generates the URL of the lock file based on the document URL and the specified prefix. static OUString GenerateOwnLockFileURL(std::u16string_view aOrigURL, std::u16string_view aPrefix); diff --git a/include/svl/msodocumentlockfile.hxx b/include/svl/msodocumentlockfile.hxx index f91c7ccffe44..282f427b32aa 100644 --- a/include/svl/msodocumentlockfile.hxx +++ b/include/svl/msodocumentlockfile.hxx @@ -33,17 +33,18 @@ private: AppType m_eAppType; virtual void - WriteEntryToStream(const LockFileEntry& aEntry, + WriteEntryToStream(std::unique_lock<std::mutex>& rGuard, const LockFileEntry& aEntry, const css::uno::Reference<css::io::XOutputStream>& xStream) override; - virtual css::uno::Reference<css::io::XInputStream> OpenStream() override; + virtual css::uno::Reference<css::io::XInputStream> + OpenStream(std::unique_lock<std::mutex>& rGuard) override; + + virtual LockFileEntry GetLockDataImpl(std::unique_lock<std::mutex>& rGuard) override; public: MSODocumentLockFile(std::u16string_view aOrigURL); virtual ~MSODocumentLockFile() override; - virtual LockFileEntry GetLockData() override; - virtual void RemoveFile() override; static bool IsMSOSupportedFileFormat(std::u16string_view aURL); diff --git a/include/svl/sharecontrolfile.hxx b/include/svl/sharecontrolfile.hxx index fe717131262b..a7b9ac1db297 100644 --- a/include/svl/sharecontrolfile.hxx +++ b/include/svl/sharecontrolfile.hxx @@ -56,12 +56,15 @@ public: virtual ~ShareControlFile() override; std::vector< LockFileEntry > GetUsersData(); - void SetUsersDataAndStore( std::vector< LockFileEntry >&& aUserNames ); + void SetUsersDataAndStore( std::unique_lock<std::mutex>& rGuard, std::vector< LockFileEntry >&& aUserNames ); LockFileEntry InsertOwnEntry(); bool HasOwnEntry(); void RemoveEntry( const LockFileEntry& aOptionalSpecification ); void RemoveEntry(); void RemoveFile(); +private: + void RemoveFileImpl(std::unique_lock<std::mutex>& rGuard); + std::vector< LockFileEntry > GetUsersDataImpl(std::unique_lock<std::mutex>& rGuard); }; } |