1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: threadhelpbase.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_
32 #define __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_
34 //_________________________________________________________________________________________________________________
36 //_________________________________________________________________________________________________________________
38 #include <threadhelp/lockhelper.hxx>
40 //_________________________________________________________________________________________________________________
42 //_________________________________________________________________________________________________________________
44 //_________________________________________________________________________________________________________________
46 //_________________________________________________________________________________________________________________
48 //_________________________________________________________________________________________________________________
50 //_________________________________________________________________________________________________________________
54 //_________________________________________________________________________________________________________________
56 //_________________________________________________________________________________________________________________
58 //_________________________________________________________________________________________________________________
60 //_________________________________________________________________________________________________________________
62 /*-************************************************************************************************************//**
63 @short "baseclass" to make own classes threadsafe
64 @descr Sometimes you must share your lock- or mutex member with any other baseclasses.
65 And baseclasses are initialized erlier then members! That's why you should use
66 this struct as first of your baseclasses!!!
67 Then you will get a public member "m_aLock" which can be used by special guard implementations
68 to make your code threadsafe.
70 @seealso class LockHelper
75 @devstatus ready to use
76 *//*-*************************************************************************************************************/
79 //-------------------------------------------------------------------------------------------------------------
81 //-------------------------------------------------------------------------------------------------------------
83 ThreadHelpBase( ::vos::IMutex
* pSolarMutex
= NULL
)
84 : m_aLock( pSolarMutex
)
88 //-------------------------------------------------------------------------------------------------------------
90 // Make it mutable for using in const functions!
91 //-------------------------------------------------------------------------------------------------------------
94 mutable LockHelper m_aLock
;
97 } // namespace framework
99 #endif // #ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_