xref: /aoo41x/main/offapi/com/sun/star/util/XLockable.idl (revision cdf0e10c)
1/*************************************************************************
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3 *
4 * Copyright 2000, 2010 Oracle and/or its affiliates.
5 *
6 * OpenOffice.org - a multi-platform office productivity suite
7 *
8 * This file is part of OpenOffice.org.
9 *
10 * OpenOffice.org is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU Lesser General Public License version 3
12 * only, as published by the Free Software Foundation.
13 *
14 * OpenOffice.org is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU Lesser General Public License version 3 for more details
18 * (a copy is included in the LICENSE file that accompanied this code).
19 *
20 * You should have received a copy of the GNU Lesser General Public License
21 * version 3 along with OpenOffice.org.  If not, see
22 * <http://www.openoffice.org/license.html>
23 * for a copy of the LGPLv3 License.
24 *
25 ************************************************************************/
26
27#ifndef __com_sun_star_util_XLockable_idl__
28#define __com_sun_star_util_XLockable_idl__
29
30#include <com/sun/star/util/NotLockedException.idl>
31
32//==================================================================================================================
33
34module com { module sun { module star { module util {
35
36//==================================================================================================================
37
38/** allows locking a component
39
40    <p><code>lock</code> and <code>unlock</code> calls can be nested. However, they must be in
41    pairs. As long as there has been one more call to <code>lock</code> than to <code>unlock</code>, the
42    component is considered locked, which is reflected by <member>isLocked</member> returning <TRUE/>.</p>
43 */
44published interface XLockable
45{
46    /** locks</a> the component
47
48        @see unlock
49        @see isLocked
50    */
51    void    lock();
52
53    /** unlocks the component
54
55        @throws NotLockedException
56            if the component is not currently locked.
57
58        @see lock
59        @see isLocked
60    */
61    void    unlock()
62        raises  (   NotLockedException
63                );
64
65    /** determines whether the component is currently locked.
66
67        @see lock
68        @see unlock
69    */
70    boolean isLocked();
71};
72
73//==================================================================================================================
74
75}; }; }; };
76
77//==================================================================================================================
78
79#endif
80