21 #include "ortools/linear_solver/linear_solver.pb.h"
29 MPModelProto*
model) {
31 MPModelRequest request_proto;
37 const bool is_model_proto =
model_proto.variable_size() > 0;
38 const bool is_request_proto = request_proto.model().variable_size() > 0;
39 if (!is_model_proto && !is_request_proto) {
40 LOG(ERROR) <<
"Failed to parse '" << input_file_path
41 <<
"' as an MPModelProto or an MPModelRequest.";
44 if (is_model_proto && is_request_proto) {
45 LOG(ERROR) << input_file_path
46 <<
" is parsing as both MPModelProto and MPModelRequest";
49 if (is_request_proto) {
50 VLOG(1) <<
"Read input proto as an MPModelRequest.";
53 VLOG(1) <<
"Read input proto as an MPModelProto.";
CpModelProto const * model_proto
void MPModelProtoToLinearProgram(const MPModelProto &input, LinearProgram *output)
bool LoadMPModelProtoFromModelOrRequest(const std::string &input_file_path, MPModelProto *model)
bool LoadLinearProgramFromModelOrRequest(const std::string &input_file_path, LinearProgram *linear_program)
Collection of objects used to extend the Constraint Solver library.
bool ReadFileToProto(absl::string_view filename, google::protobuf::Message *proto)
#define VLOG(verboselevel)