18#include "absl/log/log.h"
38 if (!is_model_proto && !is_request_proto) {
39 LOG(ERROR) <<
"Failed to parse '" << input_file_path
40 <<
"' as an MPModelProto or an MPModelRequest.";
43 if (is_model_proto && is_request_proto) {
44 LOG(ERROR) << input_file_path
45 <<
" is parsing as both MPModelProto and MPModelRequest";
48 if (is_request_proto) {
49 VLOG(1) <<
"Read input proto as an MPModelRequest.";
52 VLOG(1) <<
"Read input proto as an MPModelProto.";
55 model->
Swap(&model_proto);
int variable_size() const
repeated .operations_research.MPVariableProto variable = 3;
void Swap(MPModelProto *PROTOBUF_NONNULL other)
::operations_research::MPModelProto *PROTOBUF_NONNULL mutable_model()
const ::operations_research::MPModelProto & model() const
bool LoadMPModelProtoFromModelOrRequest(const std::string &input_file_path, MPModelProto *model)
bool LoadLinearProgramFromModelOrRequest(const std::string &input_file_path, LinearProgram *linear_program)
void MPModelProtoToLinearProgram(const MPModelProto &input, LinearProgram *output)
Converts a MPModelProto to a LinearProgram.
In SWIG mode, we don't want anything besides these top-level includes.
absl::Status ReadFileToProto(absl::string_view filename, google::protobuf::Message *proto, bool allow_partial)