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 /******************************************************************************* 18 * AUTOGENERATED - DO NOT EDIT 19 ******************************************************************************* 20 * This file has been generated from the protobuf message 21 * perfetto/config/power/android_power_config.proto 22 * by 23 * ../../tools/proto_to_cpp/proto_to_cpp.cc. 24 * If you need to make changes here, change the .proto file and then run 25 * ./tools/gen_tracing_cpp_headers_from_protos 26 */ 27 28 #include "perfetto/tracing/core/android_power_config.h" 29 30 #include "perfetto/config/power/android_power_config.pb.h" 31 32 namespace perfetto { 33 34 AndroidPowerConfig::AndroidPowerConfig() = default; 35 AndroidPowerConfig::~AndroidPowerConfig() = default; 36 AndroidPowerConfig::AndroidPowerConfig(const AndroidPowerConfig&) = default; 37 AndroidPowerConfig& AndroidPowerConfig::operator=(const AndroidPowerConfig&) = 38 default; 39 AndroidPowerConfig::AndroidPowerConfig(AndroidPowerConfig&&) noexcept = default; 40 AndroidPowerConfig& AndroidPowerConfig::operator=(AndroidPowerConfig&&) = 41 default; 42 43 #pragma GCC diagnostic push 44 #pragma GCC diagnostic ignored "-Wfloat-equal" 45 bool AndroidPowerConfig::operator==(const AndroidPowerConfig& other) const { 46 return (battery_poll_ms_ == other.battery_poll_ms_) && 47 (battery_counters_ == other.battery_counters_) && 48 (collect_power_rails_ == other.collect_power_rails_); 49 } 50 #pragma GCC diagnostic pop 51 52 void AndroidPowerConfig::FromProto( 53 const perfetto::protos::AndroidPowerConfig& proto) { 54 static_assert(sizeof(battery_poll_ms_) == sizeof(proto.battery_poll_ms()), 55 "size mismatch"); 56 battery_poll_ms_ = 57 static_cast<decltype(battery_poll_ms_)>(proto.battery_poll_ms()); 58 59 battery_counters_.clear(); 60 for (const auto& field : proto.battery_counters()) { 61 battery_counters_.emplace_back(); 62 static_assert( 63 sizeof(battery_counters_.back()) == sizeof(proto.battery_counters(0)), 64 "size mismatch"); 65 battery_counters_.back() = 66 static_cast<decltype(battery_counters_)::value_type>(field); 67 } 68 69 static_assert( 70 sizeof(collect_power_rails_) == sizeof(proto.collect_power_rails()), 71 "size mismatch"); 72 collect_power_rails_ = 73 static_cast<decltype(collect_power_rails_)>(proto.collect_power_rails()); 74 unknown_fields_ = proto.unknown_fields(); 75 } 76 77 void AndroidPowerConfig::ToProto( 78 perfetto::protos::AndroidPowerConfig* proto) const { 79 proto->Clear(); 80 81 static_assert(sizeof(battery_poll_ms_) == sizeof(proto->battery_poll_ms()), 82 "size mismatch"); 83 proto->set_battery_poll_ms( 84 static_cast<decltype(proto->battery_poll_ms())>(battery_poll_ms_)); 85 86 for (const auto& it : battery_counters_) { 87 proto->add_battery_counters( 88 static_cast<decltype(proto->battery_counters(0))>(it)); 89 static_assert(sizeof(it) == sizeof(proto->battery_counters(0)), 90 "size mismatch"); 91 } 92 93 static_assert( 94 sizeof(collect_power_rails_) == sizeof(proto->collect_power_rails()), 95 "size mismatch"); 96 proto->set_collect_power_rails( 97 static_cast<decltype(proto->collect_power_rails())>( 98 collect_power_rails_)); 99 *(proto->mutable_unknown_fields()) = unknown_fields_; 100 } 101 102 } // namespace perfetto 103