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"
24 struct NonStreamableCpSatInitArguments;
25 struct NonStreamableGScipInitArguments;
26 struct NonStreamableGlopInitArguments;
27 struct NonStreamableGlpkInitArguments;
28 struct NonStreamableGurobiInitArguments;
29 struct 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()
124 template <
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));
Collection of objects used to extend the Constraint Solver library.
SolverTypeProto solver_type() const final
std::unique_ptr< const NonStreamableSolverInitArguments > Clone() const final
virtual const NonStreamableGurobiInitArguments * ToNonStreamableGurobiInitArguments() const
virtual const NonStreamablePdlpInitArguments * ToNonStreamablePdlpInitArguments() const
virtual const NonStreamableCpSatInitArguments * ToNonStreamableCpSatInitArguments() const
virtual const NonStreamableGScipInitArguments * ToNonStreamableGScipInitArguments() const
virtual SolverTypeProto solver_type() const =0
virtual const NonStreamableGlopInitArguments * ToNonStreamableGlopInitArguments() const
virtual ~NonStreamableSolverInitArguments()=default
virtual const NonStreamableGlpkInitArguments * ToNonStreamableGlpkInitArguments() const
virtual std::unique_ptr< const NonStreamableSolverInitArguments > Clone() const =0