OR-Tools
8.1
status_builder.h
Go to the documentation of this file.
1
// Copyright 2010-2018 Google LLC
2
// Licensed under the Apache License, Version 2.0 (the "License");
3
// you may not use this file except in compliance with the License.
4
// You may obtain a copy of the License at
5
//
6
// http://www.apache.org/licenses/LICENSE-2.0
7
//
8
// Unless required by applicable law or agreed to in writing, software
9
// distributed under the License is distributed on an "AS IS" BASIS,
10
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
// See the License for the specific language governing permissions and
12
// limitations under the License.
13
14
#ifndef OR_TOOLS_BASE_STATUS_BUILDER_H_
15
#define OR_TOOLS_BASE_STATUS_BUILDER_H_
16
17
#include <sstream>
18
19
#include "absl/status/status.h"
20
21
namespace
util
{
22
23
class
StatusBuilder
{
24
public
:
25
explicit
StatusBuilder
(
const
absl::Status& status) : code_(status.code()) {
26
ss_ << std::string(status.message());
27
}
28
29
operator
absl::Status()
const
{
// NOLINT
30
return
absl::Status(code_, ss_.str());
31
}
32
33
template
<
class
T>
34
StatusBuilder
&
operator<<
(
const
T& t) {
35
ss_ << t;
36
return
*
this
;
37
}
38
39
StatusBuilder
&
SetAppend
() {
return
*
this
; }
40
41
private
:
42
const
absl::StatusCode code_;
43
std::ostringstream ss_;
44
};
45
46
}
// namespace util
47
48
#endif // OR_TOOLS_BASE_STATUS_BUILDER_H_
util::StatusBuilder::SetAppend
StatusBuilder & SetAppend()
Definition:
status_builder.h:39
util::StatusBuilder::StatusBuilder
StatusBuilder(const absl::Status &status)
Definition:
status_builder.h:25
util::StatusBuilder::operator<<
StatusBuilder & operator<<(const T &t)
Definition:
status_builder.h:34
util::StatusBuilder
Definition:
status_builder.h:23
util
Definition:
status_builder.h:21
ortools
base
status_builder.h
Generated by
1.8.20