kfilelock.h
00001 /* 00002 This file is part of the KDE games library 00003 Copyright (C) 2003 Nicolas Hadacek <hadacek@kde.org> 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License version 2 as published by the Free Software Foundation. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 Boston, MA 02110-1301, USA. 00018 */ 00019 #ifndef KFILELOCK_H 00020 #define KFILELOCK_H 00021 00022 00023 class KFileLock 00024 { 00025 public: 00026 KFileLock(int fd); 00027 00029 ~KFileLock(); 00030 00032 int fd() const { return _fd; } 00033 00034 /* 00035 * Lock the file. 00036 * @return 0 on success, -1 on failure (no permission) and -2 if another 00037 * process is currently locking the file. 00038 */ 00039 int lock(); 00040 00042 void unlock(); 00043 00045 bool isLocked() const { return _locked; } 00046 00047 private: 00048 int _fd; 00049 bool _locked; 00050 }; 00051 00052 00053 #endif