14#ifndef OR_TOOLS_MATH_OPT_CORE_NON_STREAMABLE_SOLVER_INIT_ARGUMENTS_H_
15#define OR_TOOLS_MATH_OPT_CORE_NON_STREAMABLE_SOLVER_INIT_ARGUMENTS_H_
19#include "ortools/math_opt/parameters.pb.h"
24struct NonStreamableCpSatInitArguments;
25struct NonStreamableGScipInitArguments;
26struct NonStreamableGlopInitArguments;
27struct NonStreamableGlpkInitArguments;
28struct NonStreamableGurobiInitArguments;
29struct NonStreamablePdlpInitArguments;
56 virtual const NonStreamableCpSatInitArguments*
63 virtual const NonStreamableGScipInitArguments*
70 virtual const NonStreamableGlopInitArguments*
77 virtual const NonStreamableGlpkInitArguments*
91 virtual const NonStreamablePdlpInitArguments*
100 virtual std::unique_ptr<const NonStreamableSolverInitArguments>
Clone()
124template <
typename Implementation, SolverTypeProto impl_solver_type>
127 SolverTypeProto
solver_type()
const final {
return impl_solver_type; }
129 std::unique_ptr<const NonStreamableSolverInitArguments>
Clone() const final {
130 return std::make_unique<Implementation>(
131 *
static_cast<const Implementation*
>(
this));
141class NonStreamableSolverInitArgumentsValue {
168 return non_streamable_.get();
173 std::unique_ptr<const NonStreamableSolverInitArguments> non_streamable_;
NonStreamableSolverInitArgumentsValue & operator=(const NonStreamableSolverInitArgumentsValue &other)
Clones other.get() if not nullptr.
NonStreamableSolverInitArgumentsValue()=default
Initializes with no value.
const NonStreamableSolverInitArguments * get() const
Return a pointer on the value; nullptr if unset (default value).
In SWIG mode, we don't want anything besides these top-level includes.
std::unique_ptr< const NonStreamableSolverInitArguments > Clone() const final
SolverTypeProto solver_type() const final
Returns the type of solver that the implementation is for.
virtual const NonStreamableGlpkInitArguments * ToNonStreamableGlpkInitArguments() const
virtual const NonStreamableGurobiInitArguments * ToNonStreamableGurobiInitArguments() const
virtual const NonStreamableGlopInitArguments * ToNonStreamableGlopInitArguments() const
virtual ~NonStreamableSolverInitArguments()=default
virtual const NonStreamablePdlpInitArguments * ToNonStreamablePdlpInitArguments() const
virtual std::unique_ptr< const NonStreamableSolverInitArguments > Clone() const =0
virtual const NonStreamableCpSatInitArguments * ToNonStreamableCpSatInitArguments() const
virtual SolverTypeProto solver_type() const =0
Returns the type of solver that the implementation is for.
virtual const NonStreamableGScipInitArguments * ToNonStreamableGScipInitArguments() const