diff options
| author | Dan Engelbrecht <[email protected]> | 2025-10-03 09:59:41 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-10-03 09:59:41 +0200 |
| commit | 1f27c826bd36cd065e0fdd160f60c1f887138f33 (patch) | |
| tree | 000528b3f672d0126ca92438378d9007bfdcd0d8 /src/zenutil/include | |
| parent | move remoteproject to remotestorelib (#542) (diff) | |
| download | zen-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.h | 68 | ||||
| -rw-r--r-- | src/zenutil/include/zenutil/buildstoragecache.h | 69 | ||||
| -rw-r--r-- | src/zenutil/include/zenutil/filebuildstorage.h | 16 | ||||
| -rw-r--r-- | src/zenutil/include/zenutil/jupiter/jupiterbuildstorage.h | 25 |
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 |