5#ifndef IDOL_MOSEKCALLBACKI_H
6#define IDOL_MOSEKCALLBACKI_H
11#include "idol/mixed-integer/optimizers/callbacks/Callback.h"
14 namespace Optimizers {
20class idol::MosekCallbackI :
public CallbackI {
22 Optimizers::Mosek& m_parent;
23 std::list<std::unique_ptr<Callback>> m_callbacks;
26 const double *m_double_info =
nullptr;
27 const int32_t *m_int32_info =
nullptr;
28 const int64_t *m_int64_info =
nullptr;
31 explicit MosekCallbackI(Optimizers::Mosek& t_parent);
33 void add_callback(Callback* t_callback);
35 void callback(MSKcallbackcodee t_caller,
const double * t_double_info,
const int32_t* t_int32_info,
const int64_t* t_int64_info);
37 void call(CallbackEvent t_event);
39 const Model &original_model()
const override;
41 void add_user_cut(
const TempCtr &t_cut)
override;
43 void add_lazy_cut(
const TempCtr &t_cut)
override;
45 void submit_heuristic_solution(PrimalPoint t_solution)
override;
47 PrimalPoint primal_solution()
const override;
49 const Timer &time()
const override;
51 double best_obj()
const override;
53 double best_bound()
const override;
55 void terminate()
override;