21 #include "absl/status/statusor.h" 24 #include "scip/pub_message.h" 25 #include "scip/type_message.h" 46 SCIP_RETCODE SCIPMessageHandlerFree(SCIP_MESSAGEHDLR*
const handler) {
49 CHECK_EQ(SCIPmessagehdlrSetData(handler,
nullptr), SCIP_OKAY);
55 SCIP_MESSAGEHDLR*
const handler,
89 void SCIPMessageHandlerInfo(SCIP_MESSAGEHDLR*
const handler, FILE*,
95 void SCIPMessageHandlerDialog(SCIP_MESSAGEHDLR*
const handler, FILE*,
101 void SCIPMessageHandlerWarning(SCIP_MESSAGEHDLR*
const handler, FILE*,
110 if (handler !=
nullptr) {
111 CHECK_EQ(SCIPmessagehdlrRelease(&handler), SCIP_OKAY);
116 if (handler !=
nullptr) {
117 SCIPmessagehdlrCapture(handler);
126 auto data = std::make_unique<SCIP_MessagehdlrData>(gscip_message_handler);
127 SCIP_MESSAGEHDLR* message_handler =
nullptr;
129 SCIPmessagehdlrCreate(&message_handler,
133 SCIPMessageHandlerWarning,
134 SCIPMessageHandlerDialog,
135 SCIPMessageHandlerInfo,
136 SCIPMessageHandlerFree,
151 if (handler_ !=
nullptr) {
MessageHandlerPtr CaptureMessageHandlerPtr(SCIP_MESSAGEHDLR *const handler)
void operator()(SCIP_MESSAGEHDLR *handler) const
SCIP_MessagehdlrData(const operations_research::GScipMessageHandler gscip_message_handler)
absl::StatusOr< MessageHandlerPtr > MakeSCIPMessageHandler(const GScipMessageHandler gscip_message_handler)
const operations_research::GScipMessageHandler gscip_message_handler
ScopedSCIPMessageHandlerDisabler(const MessageHandlerPtr &handler)
#define CHECK_EQ(val1, val2)
#define RETURN_IF_SCIP_ERROR(x)
~ScopedSCIPMessageHandlerDisabler()
std::unique_ptr< SCIP_MESSAGEHDLR, ReleaseSCIPMessageHandler > MessageHandlerPtr
std::atomic< bool > disabled
Collection of objects used to extend the Constraint Solver library.
std::function< void(GScipMessageType type, absl::string_view message)> GScipMessageHandler