Files
UnrealEngine/Engine/Plugins/Experimental/LearningAgents/Source/Learning/Private/LearningProgress.cpp
2025-05-18 13:04:45 +08:00

80 lines
1.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "LearningProgress.h"
namespace UE::Learning
{
int32 FProgress::GetProgress() const
{
return Progress;
}
void FProgress::GetMessage(FText& OutMessage)
{
Lock.ReadLock();
OutMessage = Message;
Lock.ReadUnlock();
}
void FProgress::SetProgress(const int32 InProgress)
{
Progress = InProgress;
}
void FProgress::SetMessage(const FText& InMessage)
{
Lock.WriteLock();
Message = InMessage;
Lock.WriteUnlock();
}
void FProgress::Decrement()
{
Progress--;
}
void FProgress::Decrement(const int32 Num)
{
Progress -= Num;
}
void FProgress::Done()
{
Progress = 0;
}
FScopeNullableReadLock::FScopeNullableReadLock(FRWLock* InLock) : Lock(InLock)
{
if (Lock)
{
Lock->ReadLock();
}
}
FScopeNullableReadLock::~FScopeNullableReadLock()
{
if (Lock)
{
Lock->ReadUnlock();
Lock = nullptr;
}
}
FScopeNullableWriteLock::FScopeNullableWriteLock(FRWLock* InLock) : Lock(InLock)
{
if (Lock)
{
Lock->WriteLock();
}
}
FScopeNullableWriteLock::~FScopeNullableWriteLock()
{
if (Lock)
{
Lock->WriteUnlock();
Lock = nullptr;
}
}
}