69#ifndef ORTOOLS_MATH_OPT_CPP_CALLBACK_H_
70#define ORTOOLS_MATH_OPT_CPP_CALLBACK_H_
77#include "absl/container/flat_hash_set.h"
78#include "absl/status/status.h"
79#include "absl/status/statusor.h"
80#include "absl/time/time.h"
152 static absl::StatusOr<CallbackRegistration>
FromProto(
172 absl::flat_hash_set<CallbackEvent>
events;
212 absl::StatusOr<CallbackDataProto>
Proto()
const;
274 static absl::StatusOr<CallbackResult>
FromProto(
CallbackDataProto_SimplexStats SimplexStats
CallbackDataProto_BarrierStats BarrierStats
CallbackDataProto_MipStats MipStats
CallbackDataProto_PresolveStats PresolveStats
#define MATH_OPT_DEFINE_ENUM(CppEnum, proto_unspecified_value)
const ModelStorage *absl_nonnull ModelStorageCPtr
std::function< CallbackResult(const CallbackData &)> Callback
@ CALLBACK_EVENT_PRESOLVE
@ CALLBACK_EVENT_UNSPECIFIED
@ CALLBACK_EVENT_MIP_NODE
@ CALLBACK_EVENT_MIP_SOLUTION
const ModelStorage *absl_nullable NullableModelStorageCPtr
CallbackDataProto::PresolveStats presolve_stats
absl::Status CheckModelStorage(ModelStorageCPtr expected_storage) const
CallbackDataProto::SimplexStats simplex_stats
CallbackDataProto::BarrierStats barrier_stats
std::optional< VariableMap< double > > solution
CallbackDataProto::MipStats mip_stats
absl::StatusOr< CallbackDataProto > Proto() const
CallbackData(CallbackEvent event, absl::Duration runtime)
absl::flat_hash_set< CallbackEvent > events
static absl::StatusOr< CallbackRegistration > FromProto(const Model &model, const CallbackRegistrationProto ®istration_proto)
MapFilter< Variable > mip_node_filter
bool add_lazy_constraints
absl::Status CheckModelStorage(ModelStorageCPtr expected_storage) const
MapFilter< Variable > mip_solution_filter
CallbackRegistrationProto Proto() const
NullableModelStorageCPtr storage() const
BoundedLinearExpression linear_constraint
std::vector< GeneratedLinearConstraint > new_constraints
CallbackResultProto Proto() const
static absl::StatusOr< CallbackResult > FromProto(const Model &model, const CallbackResultProto &result_proto)
void AddLazyConstraint(BoundedLinearExpression linear_constraint)
std::vector< VariableMap< double > > suggested_solutions
absl::Status CheckModelStorage(ModelStorageCPtr expected_storage) const
void AddUserCut(BoundedLinearExpression linear_constraint)