Google OR-Tools: ortools/base/status_builder.h Source File
14#ifndef ORTOOLS_BASE_STATUS_BUILDER_H_
15#define ORTOOLS_BASE_STATUS_BUILDER_H_
22#include "absl/status/status.h"
23#include "absl/strings/str_cat.h"
25namespace util {
33 : base_status_(std::move(status)) {}
36 : base_status_(other.base_status_),
37 ss_(other.ss_.str(), std::ios_base::app) {}
39 base_status_ = other.base_status_;
40 ss_ = std::ostringstream(other.ss_.str(), std::ios_base::app);
45 : base_status_(std::exchange(other.base_status_, absl::OkStatus())),
46 ss_(std::move(other.ss_)) {}
48 base_status_ = std::exchange(other.base_status_, absl::OkStatus());
53 operator absl::Status() const {
54 const std::string annotation = ss_.str();
58 if (base_status_.message().empty()) {
59 return absl::Status(base_status_.code(), annotation);
61 const std::string annotated_message =
62 absl::StrCat(base_status_.message(), "; ", annotation);
63 return absl::Status(base_status_.code(), annotated_message);
96 return StatusBuilder(absl::StatusCode::kDeadlineExceeded);
100 return StatusBuilder(absl::StatusCode::kFailedPrecondition);
108 return StatusBuilder(absl::StatusCode::kInvalidArgument);
120 return StatusBuilder(absl::StatusCode::kPermissionDenied);
124 return StatusBuilder(absl::StatusCode::kUnauthenticated);
128 return StatusBuilder(absl::StatusCode::kResourceExhausted);
Definition status_builder.h:27
StatusBuilder(const absl::Status status)
Definition status_builder.h:32
StatusBuilder & operator<<(const T &t)
Definition status_builder.h:67
StatusBuilder & operator=(StatusBuilder &&other)
Definition status_builder.h:47
StatusBuilder(const StatusBuilder &other)
Definition status_builder.h:35
StatusBuilder & SetAppend()
Definition status_builder.h:72
StatusBuilder & operator=(const StatusBuilder &other)
Definition status_builder.h:38
StatusBuilder(const absl::StatusCode code)
Definition status_builder.h:29
StatusBuilder(StatusBuilder &&other)
Definition status_builder.h:44
StatusBuilder ResourceExhaustedErrorBuilder()
Definition status_builder.h:127
StatusBuilder UnknownErrorBuilder()
Definition status_builder.h:139
StatusBuilder InternalErrorBuilder()
Definition status_builder.h:103
StatusBuilder UnimplementedErrorBuilder()
Definition status_builder.h:135
StatusBuilder UnavailableErrorBuilder()
Definition status_builder.h:131
StatusBuilder DataLossErrorBuilder()
Definition status_builder.h:91
StatusBuilder UnauthenticatedErrorBuilder()
Definition status_builder.h:123
StatusBuilder AbortedErrorBuilder()
Definition status_builder.h:79
StatusBuilder AlreadyExistsErrorBuilder()
Definition status_builder.h:83
StatusBuilder OutOfRangeErrorBuilder()
Definition status_builder.h:115
StatusBuilder CancelledErrorBuilder()
Definition status_builder.h:87
StatusBuilder PermissionDeniedErrorBuilder()
Definition status_builder.h:119
StatusBuilder InvalidArgumentErrorBuilder()
Definition status_builder.h:107
StatusBuilder DeadlineExceededErrorBuilder()
Definition status_builder.h:95
StatusBuilder FailedPreconditionErrorBuilder()
Definition status_builder.h:99
StatusBuilder NotFoundErrorBuilder()
Definition status_builder.h:111