You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

status.h 1.9 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * Copyright 2020 Huawei Technologies Co., Ltd
  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. #ifndef MINDSPORE_INCLUDE_API_STATUS_H
  17. #define MINDSPORE_INCLUDE_API_STATUS_H
  18. #include <string>
  19. namespace mindspore {
  20. namespace api {
  21. enum StatusCode {
  22. SUCCESS = 0,
  23. FAILED,
  24. INVALID_INPUTS,
  25. // insert new status code here
  26. UNKNOWN = 0xFFFFFFFF
  27. };
  28. class Status {
  29. public:
  30. Status() : status_code_(FAILED) {}
  31. Status(enum StatusCode status_code, const std::string &status_msg = "") // NOLINT(runtime/explicit)
  32. : status_code_(status_code), status_msg_(status_msg) {}
  33. ~Status() = default;
  34. bool IsSuccess() const { return status_code_ == SUCCESS; }
  35. enum StatusCode StatusCode() const { return status_code_; }
  36. std::string StatusMessage() const { return status_msg_; }
  37. bool operator==(const Status &other) const { return status_code_ == other.status_code_; }
  38. bool operator==(enum StatusCode other_code) const { return status_code_ == other_code; }
  39. bool operator!=(const Status &other) const { return status_code_ != other.status_code_; }
  40. bool operator!=(enum StatusCode other_code) const { return status_code_ != other_code; }
  41. operator bool() const = delete;
  42. private:
  43. enum StatusCode status_code_;
  44. std::string status_msg_;
  45. };
  46. } // namespace api
  47. } // namespace mindspore
  48. #endif // MINDSPORE_INCLUDE_API_STATUS_H