1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #ifndef cmFileLock_h
- #define cmFileLock_h
- #include "cmConfigure.h"
- #include <string>
- #if defined(_WIN32)
- #include <windows.h> // HANDLE
- #endif
- class cmFileLockResult;
- class cmFileLock
- {
- CM_DISABLE_COPY(cmFileLock)
- public:
- cmFileLock();
- ~cmFileLock();
-
- cmFileLockResult Lock(const std::string& filename, unsigned long timeoutSec);
-
- cmFileLockResult Release();
-
- bool IsLocked(const std::string& filename) const;
- private:
- cmFileLockResult OpenFile();
- cmFileLockResult LockWithoutTimeout();
- cmFileLockResult LockWithTimeout(unsigned long timeoutSec);
- #if defined(_WIN32)
- typedef HANDLE FileId;
- BOOL LockFile(DWORD flags);
- #else
- typedef int FileId;
- int LockFile(int cmd, int type);
- #endif
- FileId File;
- std::string Filename;
- };
- #endif
|