19 private readonly IReadOnlyList<SolverAvailabilityInfo>
20 _availabilityInformation;
43 IEnumerable<SolverAvailabilityInfo> availabilityInformation)
45 ArgumentNullException.ThrowIfNull(
48 ArgumentNullException.ThrowIfNull(
49 availabilityInformation);
52 availabilityInformation.ToArray();
58 throw new InvalidOperationException(
59 "The solver availability collection cannot " +
60 "contain a null entry.");
66 _availabilityInformation =
83 public IReadOnlyList<SolverAvailabilityInfo>
85 _availabilityInformation;
92 AdapterRegistry.Count > 0;
99 _availabilityInformation.Any(
101 availability.IsUsable);
111 _availabilityInformation.Any(
113 availability.SolverKind ==
114 adapter.SolverKind &&
115 availability.IsUsable));
131 return _availabilityInformation
134 availability.SolverKind ==
bool HasLoadedAdapter
Gets a value indicating whether at least one loaded adapter is available.
SolverAdapterRegistry AdapterRegistry
Gets the registry containing all solver adapters loaded successfully for the current runtime.
IReadOnlyList< SolverAvailabilityInfo > AvailabilityInformation
Gets the normalized availability information for the detected native solvers.
SolverRuntimeContext(SolverAdapterRegistry adapterRegistry, IEnumerable< SolverAvailabilityInfo > availabilityInformation)
Initializes a solver runtime context.
bool CanSolve
Gets a value indicating whether the runtime contains at least one loaded adapter whose solver is repo...
SolverAvailabilityInfo? FindAvailability(SolverKind solverKind)
Finds the availability information for a solver kind.
bool HasUsableSolver
Gets a value indicating whether at least one detected native solver is currently reported as usable.