mirror of
https://github.com/reactos/CMake.git
synced 2024-12-12 13:56:00 +00:00
a1ddf2d0ba
Automate the conversion with perl -i -0pe 's/typedef ([^;]*) ([^ ]+);/using $2 = $1;/g' then manually fix a few places.
78 lines
1.4 KiB
C++
78 lines
1.4 KiB
C++
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
|
#ifndef cmFileLockResult_h
|
|
#define cmFileLockResult_h
|
|
|
|
#include "cmConfigure.h" // IWYU pragma: keep
|
|
|
|
#include <string>
|
|
|
|
#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)
|
|
using Error = DWORD;
|
|
#else
|
|
using Error = int;
|
|
#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
|