1 ///###//////////////////////////////////////////////////////////////////////// 2 // 3 // Burton Computer Corporation 4 // http://www.burton-computer.com 5 // http://www.cooldevtools.com 6 // $Id: LockFile.h 272 2007-01-06 19:37:27Z brian $ 7 // 8 // Copyright (C) 2007 Burton Computer Corporation 9 // ALL RIGHTS RESERVED 10 // 11 // This program is open source software; you can redistribute it 12 // and/or modify it under the terms of the Q Public License (QPL) 13 // version 1.0. Use of this software in whole or in part, including 14 // linking it (modified or unmodified) into other programs is 15 // subject to the terms of the QPL. 16 // 17 // This program is distributed in the hope that it will be useful, 18 // but WITHOUT ANY WARRANTY; without even the implied warranty of 19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 // Q Public License for more details. 21 // 22 // You should have received a copy of the Q Public License 23 // along with this program; see the file LICENSE.txt. If not, visit 24 // the Burton Computer Corporation or CoolDevTools web site 25 // QPL pages at: 26 // 27 // http://www.burton-computer.com/qpl.html 28 // http://www.cooldevtools.com/qpl.html 29 // 30 31 #ifndef _LockFile_h 32 #define _LockFile_h 33 34 #include "File.h" 35 #include "LockFD.h" 36 37 class LockFile 38 { 39 public: 40 LockFile(const File &file); 41 ~LockFile(); 42 43 typedef LockFD::LockType_t LockType_t; 44 45 void lock(LockType_t lock_type, 46 int lock_mode = 0600); 47 void release(); 48 49 private: 50 /// Not implemented. 51 LockFile(const LockFile &); 52 53 /// Not implemented. 54 LockFile& operator=(const LockFile &); 55 56 private: 57 File m_file; 58 Ptr<LockFD> m_lock; 59 }; 60 61 #endif // _LockFile_h 62