csharp/EPAM.Deltix.DFP/NativeImplLoader.cs (31 lines of code) (raw):

using EPAM.Deltix.Utilities; using System; namespace EPAM.Deltix.DFP { internal static class NativeImplLoader { internal static bool isLoaded = false; internal static object isLoadedLock = new object(); internal static void Load() { if (isLoaded) return; lock (isLoadedLock) { if (isLoaded) return; var varMapper = new VariablesMapper(typeof(NativeImplLoader)); var unpackEnvVarName = varMapper.PackageLast.ToUpperInvariant() + "_UNPACK_ROOT"; var unpackPath = Environment.GetEnvironmentVariable(unpackEnvVarName); if (unpackPath == null) unpackPath = "$(TEMP)/$(PACKAGE)/$(VERSION)/$(ARCH)"; var loader = ResourceLoader .From("$(PACKAGE).$(OS).$(ARCH).*") .To(varMapper.Substitute(unpackPath)) .TryRandomFallbackSubDirectory(true) .Load(); isLoaded = true; } } } }