// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "localrunner.h" #if ZEN_WITH_COMPUTE_SERVICES && ZEN_PLATFORM_LINUX # include namespace zen::compute { /** Wine-based process runner for executing Windows worker executables on Linux. Subclasses LocalProcessRunner, reusing sandbox management, worker manifesting, input/output handling, and monitor thread infrastructure. Overrides only the platform-specific methods: process spawning, sweep, and cancellation. */ class WineProcessRunner : public LocalProcessRunner { public: WineProcessRunner(ChunkResolver& Resolver, const std::filesystem::path& BaseDir, DeferredDirectoryDeleter& Deleter, WorkerThreadPool& WorkerPool); [[nodiscard]] SubmitResult SubmitAction(Ref Action) override; void SweepRunningActions() override; void CancelRunningActions() override; private: std::string m_WinePath = "wine"; }; } // namespace zen::compute #endif