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
KDE Home | KDE Accessibility Home | Description of Access Keys