// Copyright Epic Games, Inc. All Rights Reserved. #pragma warning disable CA1027 // Use [Flags] attribute. #pragma warning disable CA1069 // Overlapping constants in enum. using System; using EpicGames.Horde.Storage.Bundles; namespace EpicGames.Horde.Compute { /// /// Version number for the compute protocol /// public enum ComputeProtocol { /// /// No version specified /// Unknown, /// /// Initial version number /// Initial, /// /// Set new env vars UE_HORDE_CPU_COUNT and UE_HORDE_CPU_MULTIPLIER /// NewCpuEnvVars, /// /// Constant for the latest protocol version /// Latest = (int)NewCpuEnvVars } /// /// Helper methods for compute protocol version numbers /// public static class ComputeProtocolUtilities { /// /// Gets the appropriate bundle options for a compute protocol version number /// public static BundleOptions GetBundleOptions(ComputeProtocol protocol) { if (protocol <= ComputeProtocol.Latest) { return new BundleOptions { MaxVersion = BundleVersion.PacketSequence }; } else { throw new NotSupportedException($"Unknown compute protocol version ('{(int)protocol}')"); } } } }