@@ -34,8 +34,11 @@ mutable struct Optimizer{T} <: MOI.AbstractOptimizer
3434 inner:: Model{T}
3535 has_solution:: Bool
3636 primal_solution:: Dict{MOI.VariableIndex,T}
37+ options:: Dict{String,Any}
3738 function Optimizer {T} (solver:: String ) where {T}
38- return new (solver, Model {T} (), false , Dict {MOI.VariableIndex,T} ())
39+ primal_solution = Dict {MOI.VariableIndex,T} ()
40+ options = Dict {String,Any} (" model_filename" => " " )
41+ return new (solver, Model {T} (), false , primal_solution, options)
3942 end
4043end
4144
6164
6265function _run_minizinc (dest:: Optimizer )
6366 dir = mktempdir ()
64- filename = joinpath (dir, " model.mzn" )
67+ filename = dest. options[" model_filename" ]
68+ if isempty (filename)
69+ filename = joinpath (dir, " model.mzn" )
70+ end
6571 output = joinpath (dir, " model.ozn" )
6672 open (filename, " w" ) do io
6773 return write (io, dest. inner)
@@ -86,6 +92,19 @@ function MOI.empty!(model::Optimizer)
8692 return
8793end
8894
95+ function MOI. supports (model:: Optimizer , attr:: MOI.RawOptimizerAttribute )
96+ return haskey (model. options, attr. name)
97+ end
98+
99+ function MOI. get (model:: Optimizer , attr:: MOI.RawOptimizerAttribute )
100+ return get (model. options, attr. name, nothing )
101+ end
102+
103+ function MOI. set (model:: Optimizer , attr:: MOI.RawOptimizerAttribute , value)
104+ model. options[attr. name] = value
105+ return
106+ end
107+
89108function MOI. supports_constraint (
90109 model:: Optimizer ,
91110 :: Type{F} ,
0 commit comments