80 lines
1.1 KiB
C++
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;
|
|
}
|
|
}
|
|
|
|
} |