//////////////////////////////////////////////////////////////////////////////// // Copyright 2017 Google LLC. // // This software is licensed under the terms defined in the Widevine Master // License Agreement. For a copy of this agreement, please contact // widevine-licensing@google.com. //////////////////////////////////////////////////////////////////////////////// #ifndef UTIL_PROTO_STATUS_H_ #define UTIL_PROTO_STATUS_H_ #include "google/protobuf/descriptor.h" #include "google/protobuf/generated_enum_reflection.h" #include "util/error_space.h" namespace widevine { namespace util { template class ProtoEnumErrorSpace : public util::ErrorSpaceImpl> { public: static std::string space_name() { return google::protobuf::GetEnumDescriptor()->full_name(); } static std::string code_to_string(int code) { const google::protobuf::EnumValueDescriptor* v = google::protobuf::GetEnumDescriptor()->FindValueByNumber(code); if (v) return v->name(); return std::to_string(code); } }; } // namespace util } // namespace widevine #endif // UTIL_PROTO_STATUS_H_