Update ooo320-m1
[ooovba.git] / framework / inc / threadhelp / threadhelpbase.hxx
blobad19031f9a7c7d9d7e6706999450f76c05de0635
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: threadhelpbase.hxx,v $
10 * $Revision: 1.3 $
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 //_________________________________________________________________________________________________________________
35 // my own includes
36 //_________________________________________________________________________________________________________________
38 #include <threadhelp/lockhelper.hxx>
40 //_________________________________________________________________________________________________________________
41 // interface includes
42 //_________________________________________________________________________________________________________________
44 //_________________________________________________________________________________________________________________
45 // other includes
46 //_________________________________________________________________________________________________________________
48 //_________________________________________________________________________________________________________________
49 // namespace
50 //_________________________________________________________________________________________________________________
52 namespace framework{
54 //_________________________________________________________________________________________________________________
55 // const
56 //_________________________________________________________________________________________________________________
58 //_________________________________________________________________________________________________________________
59 // declarations
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
72 @implements -
73 @base -
75 @devstatus ready to use
76 *//*-*************************************************************************************************************/
77 struct ThreadHelpBase
79 //-------------------------------------------------------------------------------------------------------------
80 // public methods
81 //-------------------------------------------------------------------------------------------------------------
82 public:
83 ThreadHelpBase( ::vos::IMutex* pSolarMutex = NULL )
84 : m_aLock( pSolarMutex )
88 //-------------------------------------------------------------------------------------------------------------
89 // public member
90 // Make it mutable for using in const functions!
91 //-------------------------------------------------------------------------------------------------------------
92 public:
94 mutable LockHelper m_aLock;
97 } // namespace framework
99 #endif // #ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_