You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.2 KiB
67 lines
1.2 KiB
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
|
#pragma once
|
|
|
|
#include "cmConfigure.h" // IWYU pragma: keep
|
|
|
|
#include <string>
|
|
|
|
/**
|
|
* @brief Result of the locking/unlocking file.
|
|
* @note See @c cmFileLock
|
|
*/
|
|
class cmFileLockResult
|
|
{
|
|
public:
|
|
using Error = int;
|
|
|
|
/**
|
|
* @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;
|
|
};
|