21 #include "absl/strings/string_view.h"
22 #include "absl/synchronization/mutex.h"
32 : message_callback_(std::move(message_callback)) {}
35 const absl::MutexLock lock(&message_mutex_);
36 const std::vector<std::string> lines = message_callback_data_.Flush();
38 message_callback_(lines);
43 return std::bind(&GScipSolverMessageCallbackHandler::MessageCallback,
this,
44 std::placeholders::_1, std::placeholders::_2);
47 void GScipSolverMessageCallbackHandler::MessageCallback(
49 const absl::MutexLock lock(&message_mutex_);
50 const std::vector<std::string> lines = message_callback_data_.Parse(
message);
52 message_callback_(lines);
GScipMessageHandler MessageHandler()
GScipSolverMessageCallbackHandler(SolverInterface::MessageCallback message_callback)
~GScipSolverMessageCallbackHandler()
std::function< void(const std::vector< std::string > &)> MessageCallback
Collection of objects used to extend the Constraint Solver library.
std::function< void(GScipMessageType type, absl::string_view message)> GScipMessageHandler