diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2010-10-16 03:20:00 -0500 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2010-10-25 19:55:38 -0500 |
commit | d88b292704957818eff9a348a524b5c90b40031b (patch) | |
tree | eabf039491304b2c13f3bd77ca0b6d58c3dba1b8 /vos/inc | |
parent | 98b2c08dff4d00b3e7a2e001c326ebe27dae4549 (diff) |
merge vosremoval-mutex.diff
In practice the changeset is 'inspired' by vosremoval-mutex.diff
but was essentially redone manually
Diffstat (limited to 'vos/inc')
-rw-r--r-- | vos/inc/vos/mutex.hxx | 185 | ||||
-rw-r--r-- | vos/inc/vos/process.hxx | 2 |
2 files changed, 1 insertions, 186 deletions
diff --git a/vos/inc/vos/mutex.hxx b/vos/inc/vos/mutex.hxx deleted file mode 100644 index f91547d73cf8..000000000000 --- a/vos/inc/vos/mutex.hxx +++ /dev/null @@ -1,185 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * 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 _VOS_MUTEX_HXX_ -#define _VOS_MUTEX_HXX_ - -# include <vos/types.hxx> -# include <vos/object.hxx> -# include <osl/mutex.h> - -namespace vos -{ - - -/** IMutex interface - - @author Bernd Hofner - @version 1.0 -*/ - -class IMutex -{ -public: - - /// Blocks if Mutex is already in use - virtual void SAL_CALL acquire()= 0; - - // Tries to get the mutex without blocking. - virtual sal_Bool SAL_CALL tryToAcquire()= 0; - - /// releases the mutex. - virtual void SAL_CALL release()= 0; - -protected: - IMutex() { } - virtual ~IMutex() { } - -}; - -// ---------------------------------------------------------- - -/** OMutex - - @author Bernd Hofner - @version 1.0 -*/ - -class OMutex : public OObject, public IMutex -{ - VOS_DECLARE_CLASSINFO(VOS_NAMESPACE(OMutex, vos)); - -public: - static IMutex& SAL_CALL getGlobalMutex(); - - /// Creates mutex - OMutex(); - /// Implicitly destroys mutex - virtual ~OMutex(); - - /// 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_Impl; - -private: - // disable copy/assignment - OMutex(const OMutex&); - OMutex& SAL_CALL operator= (const OMutex&); -}; - -// ********************************************************************************* - -/** OGuard - - @author Bernd Hofner - @version 1.0 -*/ - -class OGuard -{ - OGuard( const OGuard& ); - const OGuard& operator = ( const OGuard& ); -public: - /** Acquires mutex - @param pMutex pointer to mutex which is to be acquired */ - OGuard(IMutex* pMutex) - : m_rMutex( *pMutex ) - { // only for compatible reasons - m_rMutex.acquire(); - } - OGuard(IMutex & rMutex) - : m_rMutex( rMutex ) - { - m_rMutex.acquire(); - } - - /** Releases mutex. */ - virtual ~OGuard() - { - m_rMutex.release(); - } - -protected: - IMutex& m_rMutex; -}; - -/** A guard that can release the mutex with the clear method. - - @author Bernd Hofner - @version 1.0 -*/ -class OClearableGuard -{ - OClearableGuard( const OClearableGuard& ); - const OClearableGuard& operator = ( const OClearableGuard& ); -public: - /** Acquires mutex - @param pMutex pointer to mutex which is to be acquired */ - OClearableGuard(IMutex & rMutex) - : m_pMutex( &rMutex ) - { - m_pMutex->acquire(); - } - - /** Releases mutex. */ - virtual ~OClearableGuard() - { - if( m_pMutex ) - m_pMutex->release(); - } - - /** Releases mutex. */ - void SAL_CALL clear() - { - if( m_pMutex ) - { - m_pMutex->release(); - m_pMutex = NULL; - } - } -protected: - IMutex* m_pMutex; -}; - -} - - -#endif //_VOS_MUTEX_HXX_ - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vos/inc/vos/process.hxx b/vos/inc/vos/process.hxx index 1cf6d0fa2ecb..ddc1c918fac2 100644 --- a/vos/inc/vos/process.hxx +++ b/vos/inc/vos/process.hxx @@ -30,7 +30,7 @@ #define _VOS_PROCESS_HXX_ # include <rtl/ustring.hxx> -# include <vos/mutex.hxx> +#include <osl/mutex.hxx> #include <osl/security.hxx> # include <vos/object.hxx> #include <osl/process.h> |