Files
Yuriy ODonnell 60599e72d0 unsync - Fix missing copyright boilerplate
#rb none
#preflight skip

[CL 25248491 by Yuriy ODonnell in ue5-main branch]
2023-04-28 20:53:50 -04:00

61 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "UnsyncCommon.h"
#include "UnsyncLog.h"
#include "UnsyncUtil.h"
#include <atomic>
#include <mutex>
namespace unsync {
// pretend that reading remote files is ~25x slower than local
static constexpr uint64 GLOBAL_PROGRESS_SOURCE_SCALE = 25;
static constexpr uint64 GLOBAL_PROGRESS_BASE_SCALE = 1;
extern std::atomic<uint64> GGlobalProgressCurrent;
extern std::atomic<uint64> GGlobalProgressTotal;
inline void
LogGlobalProgress()
{
LogProgress(nullptr, GGlobalProgressCurrent, GGlobalProgressTotal);
}
enum class EBlockListType {
Source,
Base
};
void AddGlobalProgress(uint64 Size, EBlockListType ListType);
enum class ELogProgressUnits {
Raw,
Bytes,
MB,
GB,
};
struct FLogProgressScope
{
UNSYNC_DISALLOW_COPY_ASSIGN(FLogProgressScope)
FLogProgressScope(uint64 InTotal, ELogProgressUnits InUnits = ELogProgressUnits::Raw, uint64 InPeriodMilliseconds = 500);
void Complete();
void Add(uint64 X, bool bForceComplete = false);
std::mutex Mutex;
std::atomic<uint64> Current;
const uint64 Total;
const uint64 PeriodMilliseconds;
const ELogProgressUnits Units;
FTimePoint NextProgressLogTime;
std::atomic<bool> bEnabled;
};
} // namespace unsync