aboutsummaryrefslogtreecommitdiff
path: root/zenserver/upstream/upstreamapply.h
diff options
context:
space:
mode:
Diffstat (limited to 'zenserver/upstream/upstreamapply.h')
-rw-r--r--zenserver/upstream/upstreamapply.h47
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,