swh:1:snp:3cba5856b0ddc3feab6c3c2d096d614b02c883ec
Tip revision: 650c630a663b2d0663e6ef6acda2a5fb94e5a621 authored by Brad King on 16 September 2015, 15:46:31 UTC
CMake 3.3.2
CMake 3.3.2
Tip revision: 650c630
cmFileLockResult.h
/*============================================================================
CMake - Cross Platform Makefile Generator
Copyright 2014 Ruslan Baratov
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#ifndef cmFileLockResult_h
#define cmFileLockResult_h
#include "cmStandardIncludes.h"
#if defined(_WIN32)
# include <windows.h> // DWORD
#endif
/**
* @brief Result of the locking/unlocking file.
* @note See @c cmFileLock
*/
class cmFileLockResult
{
public:
#if defined(_WIN32)
typedef DWORD Error;
#else
typedef int Error;
#endif
/**
* @brief Successful lock/unlock.
*/
static cmFileLockResult MakeOk();
/**
* @brief Lock/Unlock failed. Read error/GetLastError.
*/
static cmFileLockResult MakeSystem();
/**
* @brief Lock/Unlock failed. Timeout reached.
*/
static cmFileLockResult MakeTimeout();
/**
* @brief File already locked.
*/
static cmFileLockResult MakeAlreadyLocked();
/**
* @brief Internal error.
*/
static cmFileLockResult MakeInternal();
/**
* @brief Try to lock with function guard outside of the function
*/
static cmFileLockResult MakeNoFunction();
bool IsOk() const;
std::string GetOutputMessage() const;
private:
enum ErrorType
{
OK,
SYSTEM,
TIMEOUT,
ALREADY_LOCKED,
INTERNAL,
NO_FUNCTION
};
cmFileLockResult(ErrorType type, Error errorValue);
ErrorType Type;
Error ErrorValue;
};
#endif // cmFileLockResult_h