2 // Copyright (c) 2013 Samsung Electronics Co., Ltd.
4 // Licensed under the Apache License, Version 2.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://www.apache.org/licenses/LICENSE-2.0
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @brief This is the header file for the %FileLock class.
20 * This header file contains the declarations of the %FileLock class.
23 #ifndef _FIO_FILE_LOCK_H_
24 #define _FIO_FILE_LOCK_H_
26 #include <FBaseObject.h>
28 namespace Tizen { namespace Io
34 * Defines the file lock types.
40 FILE_LOCK_SHARED, /**< More than one process can hold a shared file lock on a file region @n
41 A shared lock prevents any other process from setting an exclusive lock on the file
43 FILE_LOCK_EXCLUSIVE /**< Only one process can hold an exclusive lock on a file region @n
44 An exclusive lock prevents any other process from setting both shared and exclusive
45 lock on the file region. */
50 * @brief This class provides methods to check %FileLock type and release it.
54 * @final This class is not intended for extension.
56 * The %FileLock class provides methods to check %FileLock type and release it.
58 * @see Tizen::Io::File
59 * @see Tizen::Io::Registry
61 class _OSP_EXPORT_ FileLock
62 : public Tizen::Base::Object
67 * This destructor releases the file lock on the current opened file if acquired.
71 virtual ~FileLock(void);
74 * Checks whether the file lock is shared.
78 * @return @c true if the file lock is shared, @n
81 bool IsShared(void) const;
84 * Checks whether the file lock is exclusive.
88 * @return @c true if the file lock is exclusive, @n
91 bool IsExclusive(void) const;
94 * Checks whether the file lock is valid. @n
95 * The lock is valid unless the associated file has been closed.
99 * @return @c true if the file lock is valid, @n
102 bool IsValid(void) const;
106 // This default constructor is intentionally declared as private so that only the platform can create an instance.
113 // The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
117 FileLock(const FileLock& rhs);
120 // The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
124 FileLock& operator =(const FileLock& rhs);
126 class _FileLockImpl* __pFileLockImpl;
128 friend class _FileLockImpl;
134 #endif // _FIO_FILE_LOCK_H_