aboutsummaryrefslogtreecommitdiff
path: root/src/zenutil/include
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2025-10-03 09:59:41 +0200
committerGitHub Enterprise <[email protected]>2025-10-03 09:59:41 +0200
commit1f27c826bd36cd065e0fdd160f60c1f887138f33 (patch)
tree000528b3f672d0126ca92438378d9007bfdcd0d8 /src/zenutil/include
parentmove remoteproject to remotestorelib (#542) (diff)
downloadzen-1f27c826bd36cd065e0fdd160f60c1f887138f33.tar.xz
zen-1f27c826bd36cd065e0fdd160f60c1f887138f33.zip
move zenutil builds code to zenremotestore (#543)
* move buildstorage implementations to zenremotestore lib * move builds storage to zenremotelib
Diffstat (limited to 'src/zenutil/include')
-rw-r--r--src/zenutil/include/zenutil/buildstorage.h68
-rw-r--r--src/zenutil/include/zenutil/buildstoragecache.h69
-rw-r--r--src/zenutil/include/zenutil/filebuildstorage.h16
-rw-r--r--src/zenutil/include/zenutil/jupiter/jupiterbuildstorage.h25
4 files changed, 0 insertions, 178 deletions
diff --git a/src/zenutil/include/zenutil/buildstorage.h b/src/zenutil/include/zenutil/buildstorage.h
deleted file mode 100644
index 46ecd0a11..000000000
--- a/src/zenutil/include/zenutil/buildstorage.h
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#pragma once
-
-#include <zencore/compactbinary.h>
-#include <zenutil/chunkblock.h>
-
-ZEN_THIRD_PARTY_INCLUDES_START
-#include <tsl/robin_map.h>
-ZEN_THIRD_PARTY_INCLUDES_END
-
-namespace zen {
-
-class BuildStorage
-{
-public:
- struct Statistics
- {
- std::atomic<uint64_t> TotalBytesRead = 0;
- std::atomic<uint64_t> TotalBytesWritten = 0;
- std::atomic<uint64_t> TotalRequestCount = 0;
- std::atomic<uint64_t> TotalRequestTimeUs = 0;
- std::atomic<uint64_t> TotalExecutionTimeUs = 0;
- std::atomic<uint64_t> PeakSentBytes = 0;
- std::atomic<uint64_t> PeakReceivedBytes = 0;
- std::atomic<uint64_t> PeakBytesPerSec = 0;
- };
-
- virtual ~BuildStorage() {}
-
- virtual CbObject ListNamespaces(bool bRecursive = false) = 0;
- virtual CbObject ListBuilds(CbObject Query) = 0;
- virtual CbObject PutBuild(const Oid& BuildId, const CbObject& MetaData) = 0;
- virtual CbObject GetBuild(const Oid& BuildId) = 0;
- virtual void FinalizeBuild(const Oid& BuildId) = 0;
-
- virtual std::pair<IoHash, std::vector<IoHash>> PutBuildPart(const Oid& BuildId,
- const Oid& BuildPartId,
- std::string_view PartName,
- const CbObject& MetaData) = 0;
- virtual CbObject GetBuildPart(const Oid& BuildId, const Oid& BuildPartId) = 0;
- virtual std::vector<IoHash> FinalizeBuildPart(const Oid& BuildId, const Oid& BuildPartId, const IoHash& PartHash) = 0;
- virtual void PutBuildBlob(const Oid& BuildId, const IoHash& RawHash, ZenContentType ContentType, const CompositeBuffer& Payload) = 0;
- virtual std::vector<std::function<void()>> PutLargeBuildBlob(const Oid& BuildId,
- const IoHash& RawHash,
- ZenContentType ContentType,
- uint64_t PayloadSize,
- std::function<IoBuffer(uint64_t Offset, uint64_t Size)>&& Transmitter,
- std::function<void(uint64_t, bool)>&& OnSentBytes) = 0;
-
- virtual IoBuffer GetBuildBlob(const Oid& BuildId,
- const IoHash& RawHash,
- uint64_t RangeOffset = 0,
- uint64_t RangeBytes = (uint64_t)-1) = 0;
- virtual std::vector<std::function<void()>> GetLargeBuildBlob(const Oid& BuildId,
- const IoHash& RawHash,
- uint64_t ChunkSize,
- std::function<void(uint64_t Offset, const IoBuffer& Chunk)>&& OnReceive,
- std::function<void()>&& OnComplete) = 0;
-
- [[nodiscard]] virtual bool PutBlockMetadata(const Oid& BuildId, const IoHash& BlockRawHash, const CbObject& MetaData) = 0;
- virtual CbObject FindBlocks(const Oid& BuildId, uint64_t MaxBlockCount) = 0;
- virtual CbObject GetBlockMetadatas(const Oid& BuildId, std::span<const IoHash> BlockHashes) = 0;
-
- virtual void PutBuildPartStats(const Oid& BuildId, const Oid& BuildPartId, const tsl::robin_map<std::string, double>& FloatStats) = 0;
-};
-
-} // namespace zen
diff --git a/src/zenutil/include/zenutil/buildstoragecache.h b/src/zenutil/include/zenutil/buildstoragecache.h
deleted file mode 100644
index e6ca2c5e4..000000000
--- a/src/zenutil/include/zenutil/buildstoragecache.h
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#pragma once
-
-#include <zencore/logging.h>
-
-#include <zencore/compactbinary.h>
-#include <zencore/compositebuffer.h>
-#include <zenutil/chunkblock.h>
-
-namespace zen {
-
-class HttpClient;
-
-class BuildStorageCache
-{
-public:
- struct Statistics
- {
- std::atomic<uint64_t> TotalBytesRead = 0;
- std::atomic<uint64_t> TotalBytesWritten = 0;
- std::atomic<uint64_t> TotalRequestCount = 0;
- std::atomic<uint64_t> TotalRequestTimeUs = 0;
- std::atomic<uint64_t> TotalExecutionTimeUs = 0;
- std::atomic<uint64_t> PeakSentBytes = 0;
- std::atomic<uint64_t> PeakReceivedBytes = 0;
- std::atomic<uint64_t> PeakBytesPerSec = 0;
- };
-
- virtual ~BuildStorageCache() {}
-
- virtual void PutBuildBlob(const Oid& BuildId, const IoHash& RawHash, ZenContentType ContentType, const CompositeBuffer& Payload) = 0;
- virtual IoBuffer GetBuildBlob(const Oid& BuildId,
- const IoHash& RawHash,
- uint64_t RangeOffset = 0,
- uint64_t RangeBytes = (uint64_t)-1) = 0;
-
- virtual void PutBlobMetadatas(const Oid& BuildId, std::span<const IoHash> BlobHashes, std::span<const CbObject> MetaDatas) = 0;
- virtual std::vector<CbObject> GetBlobMetadatas(const Oid& BuildId, std::span<const IoHash> BlobHashes) = 0;
-
- struct BlobExistsResult
- {
- bool HasBody = 0;
- bool HasMetadata = 0;
- };
-
- virtual std::vector<BlobExistsResult> BlobsExists(const Oid& BuildId, std::span<const IoHash> BlobHashes) = 0;
-
- virtual void Flush(
- int32_t UpdateIntervalMS,
- std::function<bool(intptr_t Remaining)>&& UpdateCallback = [](intptr_t) { return true; }) = 0;
-};
-
-std::unique_ptr<BuildStorageCache> CreateZenBuildStorageCache(HttpClient& HttpClient,
- BuildStorageCache::Statistics& Stats,
- std::string_view Namespace,
- std::string_view Bucket,
- const std::filesystem::path& TempFolderPath,
- bool BoostBackgroundThreadCount);
-
-struct ZenCacheEndpointTestResult
-{
- bool Success = false;
- std::string FailureReason;
-};
-
-ZenCacheEndpointTestResult TestZenCacheEndpoint(std::string_view BaseUrl, const bool AssumeHttp2);
-
-} // namespace zen
diff --git a/src/zenutil/include/zenutil/filebuildstorage.h b/src/zenutil/include/zenutil/filebuildstorage.h
deleted file mode 100644
index c95fb32e6..000000000
--- a/src/zenutil/include/zenutil/filebuildstorage.h
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#pragma once
-
-#include <zencore/logging.h>
-#include <zenutil/buildstorage.h>
-
-namespace zen {
-class HttpClient;
-
-std::unique_ptr<BuildStorage> CreateFileBuildStorage(const std::filesystem::path& StoragePath,
- BuildStorage::Statistics& Stats,
- bool EnableJsonOutput,
- double LatencySec = 0.0,
- double DelayPerKBSec = 0.0);
-} // namespace zen
diff --git a/src/zenutil/include/zenutil/jupiter/jupiterbuildstorage.h b/src/zenutil/include/zenutil/jupiter/jupiterbuildstorage.h
deleted file mode 100644
index f25d8933b..000000000
--- a/src/zenutil/include/zenutil/jupiter/jupiterbuildstorage.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#pragma once
-
-#include <zencore/logging.h>
-#include <zenutil/buildstorage.h>
-
-namespace zen {
-class HttpClient;
-
-std::unique_ptr<BuildStorage> CreateJupiterBuildStorage(LoggerRef InLog,
- HttpClient& InHttpClient,
- BuildStorage::Statistics& Stats,
- std::string_view Namespace,
- std::string_view Bucket,
- bool AllowRedirect,
- const std::filesystem::path& TempFolderPath);
-
-bool ParseBuildStorageUrl(std::string_view InUrl,
- std::string& OutHost,
- std::string& OutNamespace,
- std::string& OutBucket,
- std::string& OutBuildId);
-
-} // namespace zen