| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
This directory contains an idiomatic C++ client library for the Cloud Optimization API, a service that provides a portfolio of solvers to address common optimization use cases.
While this library is GA, please note that the Google Cloud C++ client libraries do not follow Semantic Versioning.
The quickstart/ directory contains a minimal environment to get started using this client library in a larger project. The following "Hello World" program is used in this quickstart, and should give you a taste of this library.
#include "google/cloud/optimization/fleet_routing_client.h"
#include "google/cloud/common_options.h"
#include "google/cloud/project.h"
#include <iostream>
#include <stdexcept>
int main(int argc, char* argv[]) try {
if (argc != 3) {
std::cerr << "Usage: " << argv[0] << " project-id destination\n"
<< " destination is a GCS bucket\n";
return 1;
}
// This quickstart loads an example model from a known GCS bucket. The service
// solves the model, and writes the solution to the destination GCS bucket.
std::string const source =
"gs://cloud-samples-data/optimization-ai/async_request_model.json";
auto const destination =
std::string{"gs://"} + argv[2] + "/optimization_quickstart_solution.json";
namespace gc = ::google::cloud;
namespace optimization = ::google::cloud::optimization;
auto options = gc::Options{}.set<gc::UserProjectOption>(argv[1]);
auto client = optimization::FleetRoutingClient(
optimization::MakeFleetRoutingConnection(options));
google::cloud::optimization::v1::BatchOptimizeToursRequest req;
req.set_parent(gc::Project(argv[1]).FullName());
auto& config = *req.add_model_configs();
auto& input = *config.mutable_input_config();
input.mutable_gcs_source()->set_uri(source);
input.set_data_format(google::cloud::optimization::v1::JSON);
auto& output = *config.mutable_output_config();
output.mutable_gcs_destination()->set_uri(destination);
output.set_data_format(google::cloud::optimization::v1::JSON);
auto fut = client.BatchOptimizeTours(req);
std::cout << "Request sent to the service...\n";
auto resp = fut.get();
if (!resp) throw std::runtime_error(resp.status().message());
std::cout << "Solution written to: " << destination << "\n";
return 0;
} catch (std::exception const& ex) {
std::cerr << "Standard exception raised: " << ex.what() << "\n";
return 1;
}See CONTRIBUTING.md for details on how to contribute to this project, including how to build and test your changes as well as how to properly format your code.
Apache 2.0; see LICENSE for details.
| Back | FazBrowse Home | New Git URL |