From bdddd9d2d4ccf3df0c3f0168a741fabf599d5db8 Mon Sep 17 00:00:00 2001 From: "lperron@google.com" Date: Mon, 27 Aug 2012 16:01:37 +0000 Subject: [PATCH] add export model api with decision builder. --- src/constraint_solver/constraint_solver.h | 5 +++++ src/constraint_solver/io.cc | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/constraint_solver/constraint_solver.h b/src/constraint_solver/constraint_solver.h index ab9db85516..1f7537d24a 100644 --- a/src/constraint_solver/constraint_solver.h +++ b/src/constraint_solver/constraint_solver.h @@ -1065,6 +1065,11 @@ class Solver { // the objective and limits to the protobuf. void ExportModel(const std::vector& monitors, CPModelProto* const proto) const; + // Exports the model to protobuf. Search monitors are useful to pass + // the objective and limits to the protobuf. + void ExportModel(const std::vector& monitors, + CPModelProto* const proto, + DecisionBuilder* const db) const; // Loads the model into the solver, and returns true upon success. bool LoadModel(const CPModelProto& proto); // Loads the model into the solver, appends search monitors to monitors, diff --git a/src/constraint_solver/io.cc b/src/constraint_solver/io.cc index ba5044de75..695f6cff7f 100644 --- a/src/constraint_solver/io.cc +++ b/src/constraint_solver/io.cc @@ -2606,6 +2606,16 @@ bool CPModelLoader::ScanOneArgument(int type_index, // ----- Solver API ----- +void Solver::ExportModel(const std::vector& monitors, + CPModelProto* const model_proto, + DecisionBuilder* const db) const { + CHECK_NOTNULL(model_proto); + FirstPassVisitor first_pass; + Accept(&first_pass, monitors, db); + SecondPassVisitor second_pass(first_pass, model_proto); + Accept(&second_pass, monitors, db); +} + void Solver::ExportModel(const std::vector& monitors, CPModelProto* const model_proto) const { CHECK_NOTNULL(model_proto);