#nullable enable using IPA.Config; using IPA.Logging; namespace IPA.AntiMalware { /// /// Provides a way to access BSIPA's Anti-Malware engine. /// /// /// public static class AntiMalwareEngine { /// /// Gets the current Anti-Malware engine. /// public static IAntiMalware Engine { get; } = InitializeEngine(); private static IAntiMalware InitializeEngine() { IAntiMalware? engine = null; if (SelfConfig.AntiMalware_.UseIfAvailable_) { #if !NET35 engine = WindowsCOMAntiMalware.TryInitialize(); #endif engine ??= WindowsWin32AntiMalware.TryInitialize(); } engine ??= new NoopAntiMalware(); Logger.AntiMalware.Debug($"Antimalware engine initialized with {engine.GetType()}"); return engine; } } }