diff options
Diffstat (limited to 'zenserver/upstream/upstreamapply.h')
| -rw-r--r-- | zenserver/upstream/upstreamapply.h | 47 |
1 files changed, 32 insertions, 15 deletions
diff --git a/zenserver/upstream/upstreamapply.h b/zenserver/upstream/upstreamapply.h index 63fd771da..9cea88c56 100644 --- a/zenserver/upstream/upstreamapply.h +++ b/zenserver/upstream/upstreamapply.h @@ -12,20 +12,22 @@ # include <atomic> # include <chrono> +# include <map> # include <memory> # include <unordered_map> # include <unordered_set> namespace zen { -class CbObjectWriter; +class AuthMgr; class CasStore; +class CbObjectWriter; class CidStore; +class CloudCacheTokenProvider; +class WorkerThreadPool; class ZenCacheStore; struct CloudCacheClientOptions; -class CloudCacheTokenProvider; struct UpstreamAuthConfig; -class AuthMgr; enum class UpstreamApplyState : int32_t { @@ -34,10 +36,17 @@ enum class UpstreamApplyState : int32_t Complete = 2, }; +enum class UpstreamApplyType +{ + Simple = 0, + Asset = 1, +}; + struct UpstreamApplyRecord { - CbObject WorkerDescriptor; - CbObject Action; + CbObject WorkerDescriptor; + CbObject Action; + UpstreamApplyType Type; }; struct UpstreamApplyOptions @@ -66,14 +75,22 @@ struct PostUpstreamApplyResult struct GetUpstreamApplyResult { - CbPackage OutputPackage{}; - int64_t TotalAttachmentBytes{}; - int64_t TotalRawAttachmentBytes{}; + // UpstreamApplyType::Simple + std::map<std::filesystem::path, IoHash> OutputFiles; + std::map<IoHash, IoBuffer> FileData; + + // UpstreamApplyType::Asset + CbPackage OutputPackage{}; + int64_t TotalAttachmentBytes{}; + int64_t TotalRawAttachmentBytes{}; + UpstreamApplyError Error{}; int64_t Bytes{}; double ElapsedSeconds{}; std::string StdOut{}; std::string StdErr{}; + std::string Agent{}; + std::string Detail{}; bool Success = false; }; @@ -121,13 +138,13 @@ class UpstreamApplyEndpoint public: virtual ~UpstreamApplyEndpoint() = default; - virtual UpstreamEndpointHealth Initialize() = 0; - virtual bool IsHealthy() const = 0; - virtual UpstreamEndpointHealth CheckHealth() = 0; - virtual std::string_view DisplayName() const = 0; - virtual PostUpstreamApplyResult PostApply(const UpstreamApplyRecord& ApplyRecord) = 0; - virtual GetUpstreamApplyUpdatesResult GetUpdates() = 0; - virtual UpstreamApplyEndpointStats& Stats() = 0; + virtual UpstreamEndpointHealth Initialize() = 0; + virtual bool IsHealthy() const = 0; + virtual UpstreamEndpointHealth CheckHealth() = 0; + virtual std::string_view DisplayName() const = 0; + virtual PostUpstreamApplyResult PostApply(UpstreamApplyRecord ApplyRecord) = 0; + virtual GetUpstreamApplyUpdatesResult GetUpdates(WorkerThreadPool& ThreadPool) = 0; + virtual UpstreamApplyEndpointStats& Stats() = 0; static std::unique_ptr<UpstreamApplyEndpoint> CreateHordeEndpoint(const CloudCacheClientOptions& ComputeOptions, const UpstreamAuthConfig& ComputeAuthConfig, |