diff options
Diffstat (limited to 'vcl/inc')
-rw-r--r-- | vcl/inc/vcl/salinst.hxx | 4 | ||||
-rw-r--r-- | vcl/inc/vcl/solarmutex.hxx | 76 | ||||
-rw-r--r-- | vcl/inc/vcl/svapp.hxx | 8 |
3 files changed, 81 insertions, 7 deletions
diff --git a/vcl/inc/vcl/salinst.hxx b/vcl/inc/vcl/salinst.hxx index 5863fb824313..30187dde2108 100644 --- a/vcl/inc/vcl/salinst.hxx +++ b/vcl/inc/vcl/salinst.hxx @@ -62,8 +62,6 @@ class SalSession; struct SystemGraphicsData; struct SystemWindowData; -namespace vos { class IMutex; } - // --------------- // - SalInstance - // --------------- @@ -131,7 +129,7 @@ public: virtual SalBitmap* CreateSalBitmap() = 0; // YieldMutex - virtual vos::IMutex* GetYieldMutex() = 0; + virtual osl::SolarMutex* GetYieldMutex() = 0; virtual ULONG ReleaseYieldMutex() = 0; virtual void AcquireYieldMutex( ULONG nCount ) = 0; diff --git a/vcl/inc/vcl/solarmutex.hxx b/vcl/inc/vcl/solarmutex.hxx new file mode 100644 index 000000000000..c4fa5d6de2e6 --- /dev/null +++ b/vcl/inc/vcl/solarmutex.hxx @@ -0,0 +1,76 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _VCL_SOLARMUTEX_HXX_ +#define _VCL_SOLARMUTEX_HXX_ + +#include <osl/mutex.hxx> +#include <vcl/dllapi.h> + +namespace vcl +{ + +/** Implementation of the SolarMutex interface. + */ +class VCL_DLLPUBLIC SolarMutexObject : public osl::SolarMutex +{ +public: + //static SolarMutex& SAL_CALL getGlobalMutex(); + + /** Creates mutex + */ + SolarMutexObject(); + + /** Implicitly destroys mutex + */ + virtual ~SolarMutexObject(); + + /** Blocks if Mutex is already in use + */ + virtual void SAL_CALL acquire(); + + /** Tries to get the mutex without blocking. + @return True if mutex could be obtained, otherwise False + */ + virtual sal_Bool SAL_CALL tryToAcquire(); + + /** Releases the mutex. + */ + virtual void SAL_CALL release(); + +protected: + oslMutex m_solarMutex; + +private: + /* Disable copy/assignment + */ + SolarMutexObject( const SolarMutexObject& ); + SolarMutexObject& SAL_CALL operator=( const SolarMutexObject& ); +}; + +} + +#endif // _VCL_SOLARMUTEX_HXX_ diff --git a/vcl/inc/vcl/svapp.hxx b/vcl/inc/vcl/svapp.hxx index 55c424d050c2..e608b61d0b7f 100644 --- a/vcl/inc/vcl/svapp.hxx +++ b/vcl/inc/vcl/svapp.hxx @@ -30,7 +30,7 @@ #define _SV_SVAPP_HXX #include <osl/thread.hxx> -#include <vos/mutex.hxx> +#include <osl/mutex.hxx> #include <tools/string.hxx> #include <tools/link.hxx> #include <tools/unqid.hxx> @@ -279,7 +279,7 @@ public: static void Reschedule( bool bAllEvents = false ); static void Yield( bool bAllEvents = false ); static void EndYield(); - static vos::IMutex& GetSolarMutex(); + static osl::SolarMutex& GetSolarMutex(); static oslThreadIdentifier GetMainThreadIdentifier(); static ULONG ReleaseSolarMutex(); static void AcquireSolarMutex( ULONG nCount ); @@ -504,7 +504,7 @@ class VCL_DLLPUBLIC SolarMutexGuard private: SolarMutexGuard( const SolarMutexGuard& ); const SolarMutexGuard& operator = ( const SolarMutexGuard& ); - ::vos::IMutex& m_solarMutex; + ::osl::SolarMutex& m_solarMutex; public: @@ -557,7 +557,7 @@ public: } } protected: - vos::IMutex& m_solarMutex; + osl::SolarMutex& m_solarMutex; }; |