| #ifndef PRODUCTION_BORG_MGMT_NODE_PROXY_SAFEPOWER_SAFEPOWER_AGENT_FLIGHT_RECORD_H_ |
| #define PRODUCTION_BORG_MGMT_NODE_PROXY_SAFEPOWER_SAFEPOWER_AGENT_FLIGHT_RECORD_H_ |
| |
| #include <ostream> |
| #include <string> |
| #include <utility> |
| |
| #include "utils.pb.h" |
| #include "absl/hash/hash.h" |
| |
| namespace safepower_agent { |
| |
| class FlightRecordWrapper { |
| public: |
| explicit FlightRecordWrapper( |
| borg_mgmt::node_proxy::safepower::utils::FlightRecordRequest request); |
| |
| const std::string& flight_name() const; |
| const std::string& step_id() const; |
| const borg_mgmt::node_proxy::safepower::utils::FlightRecordRequest& request() |
| const; |
| |
| template <typename H> |
| friend H AbslHashValue(H h, const FlightRecordWrapper& r) { |
| return H::combine(std::move(h), r.flight_name(), r.step_id()); |
| } |
| |
| friend bool operator==(const FlightRecordWrapper& lhs, |
| const FlightRecordWrapper& rhs); |
| |
| template <typename Sink> |
| friend void AbslStringify(Sink& sink, const FlightRecordWrapper& r) { |
| sink.Append("("); |
| sink.Append(r.flight_name()); |
| sink.Append(", "); |
| sink.Append(r.step_id()); |
| sink.Append(")"); |
| } |
| |
| friend std::ostream& operator<<(std::ostream& os, |
| const FlightRecordWrapper& r); |
| |
| private: |
| borg_mgmt::node_proxy::safepower::utils::FlightRecordRequest request_; |
| }; |
| |
| } // namespace safepower_agent |
| |
| #endif // PRODUCTION_BORG_MGMT_NODE_PROXY_SAFEPOWER_SAFEPOWER_AGENT_FLIGHT_RECORD_H_ |