14 #ifndef OR_TOOLS_MATH_OPT_SOLVERS_GSCIP_SOLVER_CALLBACK_H_ 15 #define OR_TOOLS_MATH_OPT_SOLVERS_GSCIP_SOLVER_CALLBACK_H_ 20 #include "absl/base/thread_annotations.h" 21 #include "absl/status/status.h" 22 #include "absl/strings/string_view.h" 23 #include "absl/synchronization/mutex.h" 24 #include "absl/time/time.h" 25 #include "scip/type_scip.h" 27 #include "ortools/math_opt/callback.pb.h" 51 const CallbackRegistrationProto& callback_registration,
67 absl::Time solve_start, SCIP* scip);
83 absl::optional<CallbackResultProto> CallUserCallback(
84 const CallbackDataProto& callback_data)
85 ABSL_LOCKS_EXCLUDED(callback_mutex_);
91 const absl::Time solve_start_;
97 absl::Mutex callback_mutex_;
100 absl::Status status_ ABSL_GUARDED_BY(callback_mutex_);
104 absl::Mutex message_mutex_;
113 #endif // OR_TOOLS_MATH_OPT_SOLVERS_GSCIP_SOLVER_CALLBACK_H_
GScipSolverCallbackHandler & operator=(const GScipSolverCallbackHandler &)=delete
static std::unique_ptr< GScipSolverCallbackHandler > RegisterIfNeeded(const CallbackRegistrationProto &callback_registration, SolverInterface::Callback callback, absl::Time solve_start, SCIP *scip)
GScipSolverCallbackHandler(const GScipSolverCallbackHandler &)=delete
GScipMessageHandler MessageHandler()
std::function< absl::StatusOr< CallbackResultProto >(const CallbackDataProto &)> Callback
Collection of objects used to extend the Constraint Solver library.
std::function< void(GScipMessageType type, absl::string_view message)> GScipMessageHandler