• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   * Copyright (C) 2017 The Android Open Source Project
3   *
4   * Licensed under the Apache License, Version 2.0 (the "License");
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   *
8   *      http://www.apache.org/licenses/LICENSE-2.0
9   *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  #include <sstream>
18  #include "netdutils/Status.h"
19  #include "android-base/stringprintf.h"
20  
21  namespace android {
22  namespace netdutils {
23  
expectOk(const Status &)24  void expectOk(const Status&) {
25      // TODO: put something here, for now this function serves solely as documentation.
26  }
27  
statusFromErrno(int err,const std::string & msg)28  Status statusFromErrno(int err, const std::string& msg) {
29      return Status(err, base::StringPrintf("[%s] : %s", strerror(err), msg.c_str()));
30  }
31  
equalToErrno(const Status & status,int err)32  bool equalToErrno(const Status& status, int err) {
33      return status.code() == err;
34  }
35  
asBinderStatus(const netdutils::Status & status)36  binder::Status asBinderStatus(const netdutils::Status& status) {
37      if (isOk(status)) {
38          return binder::Status::ok();
39      }
40      return binder::Status::fromServiceSpecificError(status.code(), status.msg().c_str());
41  }
42  
toString(const Status & status)43  std::string toString(const Status& status) {
44      std::stringstream ss;
45      ss << status;
46      return ss.str();
47  }
48  
operator <<(std::ostream & os,const Status & s)49  std::ostream& operator<<(std::ostream& os, const Status& s) {
50      return os << "Status[code: " << s.code() << ", msg: \"" << s.msg() << "\"]";
51  }
52  
53  }  // namespace netdutils
54  }  // namespace android
55