aboutsummaryrefslogtreecommitdiff
path: root/src/zenhorde/hordeconfig.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2026-03-04 14:13:46 +0100
committerGitHub Enterprise <[email protected]>2026-03-04 14:13:46 +0100
commit0763d09a81e5a1d3df11763a7ec75e7860c9510a (patch)
tree074575ba6ea259044a179eab0bb396d37268fb09 /src/zenhorde/hordeconfig.cpp
parentnative xmake toolchain definition for UE-clang (#805) (diff)
downloadzen-0763d09a81e5a1d3df11763a7ec75e7860c9510a.tar.xz
zen-0763d09a81e5a1d3df11763a7ec75e7860c9510a.zip
compute orchestration (#763)
- Added local process runners for Linux/Wine, Mac with some sandboxing support - Horde & Nomad provisioning for development and testing - Client session queues with lifecycle management (active/draining/cancelled), automatic retry with configurable limits, and manual reschedule API - Improved web UI for orchestrator, compute, and hub dashboards with WebSocket push updates - Some security hardening - Improved scalability and `zen exec` command Still experimental - compute support is disabled by default
Diffstat (limited to 'src/zenhorde/hordeconfig.cpp')
-rw-r--r--src/zenhorde/hordeconfig.cpp89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/zenhorde/hordeconfig.cpp b/src/zenhorde/hordeconfig.cpp
new file mode 100644
index 000000000..2dca228d9
--- /dev/null
+++ b/src/zenhorde/hordeconfig.cpp
@@ -0,0 +1,89 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#include <zenhorde/hordeconfig.h>
+
+namespace zen::horde {
+
+bool
+HordeConfig::Validate() const
+{
+ if (ServerUrl.empty())
+ {
+ return false;
+ }
+
+ // Relay mode implies AES encryption
+ if (Mode == ConnectionMode::Relay && EncryptionMode != Encryption::AES)
+ {
+ return false;
+ }
+
+ return true;
+}
+
+const char*
+ToString(ConnectionMode Mode)
+{
+ switch (Mode)
+ {
+ case ConnectionMode::Direct:
+ return "direct";
+ case ConnectionMode::Tunnel:
+ return "tunnel";
+ case ConnectionMode::Relay:
+ return "relay";
+ }
+ return "direct";
+}
+
+const char*
+ToString(Encryption Enc)
+{
+ switch (Enc)
+ {
+ case Encryption::None:
+ return "none";
+ case Encryption::AES:
+ return "aes";
+ }
+ return "none";
+}
+
+bool
+FromString(ConnectionMode& OutMode, std::string_view Str)
+{
+ if (Str == "direct")
+ {
+ OutMode = ConnectionMode::Direct;
+ return true;
+ }
+ if (Str == "tunnel")
+ {
+ OutMode = ConnectionMode::Tunnel;
+ return true;
+ }
+ if (Str == "relay")
+ {
+ OutMode = ConnectionMode::Relay;
+ return true;
+ }
+ return false;
+}
+
+bool
+FromString(Encryption& OutEnc, std::string_view Str)
+{
+ if (Str == "none")
+ {
+ OutEnc = Encryption::None;
+ return true;
+ }
+ if (Str == "aes")
+ {
+ OutEnc = Encryption::AES;
+ return true;
+ }
+ return false;
+}
+
+} // namespace zen::horde