Skip to content

Commit 522bf70

Browse files
authored
Add support for MOI.SolutionLimit (#581)
1 parent b172642 commit 522bf70

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee"
1111
[compat]
1212
Gurobi_jll = "~9.5, ~10.0, ~11.0"
1313
Libdl = "<0.0.1, 1.6"
14-
MathOptInterface = "1.12"
14+
MathOptInterface = "1.21"
1515
Random = "<0.0.1, 1.6"
1616
Test = "<0.0.1, 1.6"
1717
julia = "1.6"

src/MOI_wrapper/MOI_wrapper.jl

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -720,6 +720,25 @@ function MOI.get(model::Optimizer, ::MOI.TimeLimitSec)
720720
return limit == GRB_INFINITY ? nothing : limit
721721
end
722722

723+
### SolutionLimit
724+
725+
MOI.supports(::Optimizer, ::MOI.SolutionLimit) = true
726+
727+
function MOI.set(
728+
model::Optimizer,
729+
::MOI.SolutionLimit,
730+
limit::Union{Integer,Nothing},
731+
)
732+
int_limit = convert(Int64, something(limit, GRB_MAXINT))
733+
MOI.set(model, MOI.RawOptimizerAttribute("SolutionLimit"), int_limit)
734+
return
735+
end
736+
737+
function MOI.get(model::Optimizer, ::MOI.SolutionLimit)
738+
limit = MOI.get(model, MOI.RawOptimizerAttribute("SolutionLimit"))
739+
return limit == GRB_MAXINT ? nothing : limit
740+
end
741+
723742
MOI.supports_incremental_interface(::Optimizer) = true
724743

725744
function MOI.copy_to(dest::Optimizer, src::MOI.ModelLike)

0 commit comments

Comments
 (0)