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/data_source_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/data_source_config.h" 29 30 #include "perfetto/config/android/android_log_config.pb.h" 31 #include "perfetto/config/android/packages_list_config.pb.h" 32 #include "perfetto/config/chrome/chrome_config.pb.h" 33 #include "perfetto/config/data_source_config.pb.h" 34 #include "perfetto/config/ftrace/ftrace_config.pb.h" 35 #include "perfetto/config/inode_file/inode_file_config.pb.h" 36 #include "perfetto/config/power/android_power_config.pb.h" 37 #include "perfetto/config/process_stats/process_stats_config.pb.h" 38 #include "perfetto/config/profiling/heapprofd_config.pb.h" 39 #include "perfetto/config/sys_stats/sys_stats_config.pb.h" 40 #include "perfetto/config/test_config.pb.h" 41 42 namespace perfetto { 43 44 DataSourceConfig::DataSourceConfig() = default; 45 DataSourceConfig::~DataSourceConfig() = default; 46 DataSourceConfig::DataSourceConfig(const DataSourceConfig&) = default; 47 DataSourceConfig& DataSourceConfig::operator=(const DataSourceConfig&) = 48 default; 49 DataSourceConfig::DataSourceConfig(DataSourceConfig&&) noexcept = default; 50 DataSourceConfig& DataSourceConfig::operator=(DataSourceConfig&&) = default; 51 52 #pragma GCC diagnostic push 53 #pragma GCC diagnostic ignored "-Wfloat-equal" 54 bool DataSourceConfig::operator==(const DataSourceConfig& other) const { 55 return (name_ == other.name_) && (target_buffer_ == other.target_buffer_) && 56 (trace_duration_ms_ == other.trace_duration_ms_) && 57 (enable_extra_guardrails_ == other.enable_extra_guardrails_) && 58 (tracing_session_id_ == other.tracing_session_id_) && 59 (ftrace_config_ == other.ftrace_config_) && 60 (chrome_config_ == other.chrome_config_) && 61 (inode_file_config_ == other.inode_file_config_) && 62 (process_stats_config_ == other.process_stats_config_) && 63 (sys_stats_config_ == other.sys_stats_config_) && 64 (heapprofd_config_ == other.heapprofd_config_) && 65 (android_power_config_ == other.android_power_config_) && 66 (android_log_config_ == other.android_log_config_) && 67 (packages_list_config_ == other.packages_list_config_) && 68 (legacy_config_ == other.legacy_config_) && 69 (for_testing_ == other.for_testing_); 70 } 71 #pragma GCC diagnostic pop 72 73 void DataSourceConfig::FromProto( 74 const perfetto::protos::DataSourceConfig& proto) { 75 static_assert(sizeof(name_) == sizeof(proto.name()), "size mismatch"); 76 name_ = static_cast<decltype(name_)>(proto.name()); 77 78 static_assert(sizeof(target_buffer_) == sizeof(proto.target_buffer()), 79 "size mismatch"); 80 target_buffer_ = static_cast<decltype(target_buffer_)>(proto.target_buffer()); 81 82 static_assert(sizeof(trace_duration_ms_) == sizeof(proto.trace_duration_ms()), 83 "size mismatch"); 84 trace_duration_ms_ = 85 static_cast<decltype(trace_duration_ms_)>(proto.trace_duration_ms()); 86 87 static_assert(sizeof(enable_extra_guardrails_) == 88 sizeof(proto.enable_extra_guardrails()), 89 "size mismatch"); 90 enable_extra_guardrails_ = static_cast<decltype(enable_extra_guardrails_)>( 91 proto.enable_extra_guardrails()); 92 93 static_assert( 94 sizeof(tracing_session_id_) == sizeof(proto.tracing_session_id()), 95 "size mismatch"); 96 tracing_session_id_ = 97 static_cast<decltype(tracing_session_id_)>(proto.tracing_session_id()); 98 99 ftrace_config_.FromProto(proto.ftrace_config()); 100 101 chrome_config_.FromProto(proto.chrome_config()); 102 103 inode_file_config_.FromProto(proto.inode_file_config()); 104 105 process_stats_config_.FromProto(proto.process_stats_config()); 106 107 sys_stats_config_.FromProto(proto.sys_stats_config()); 108 109 heapprofd_config_.FromProto(proto.heapprofd_config()); 110 111 android_power_config_.FromProto(proto.android_power_config()); 112 113 android_log_config_.FromProto(proto.android_log_config()); 114 115 packages_list_config_.FromProto(proto.packages_list_config()); 116 117 static_assert(sizeof(legacy_config_) == sizeof(proto.legacy_config()), 118 "size mismatch"); 119 legacy_config_ = static_cast<decltype(legacy_config_)>(proto.legacy_config()); 120 121 for_testing_.FromProto(proto.for_testing()); 122 unknown_fields_ = proto.unknown_fields(); 123 } 124 125 void DataSourceConfig::ToProto( 126 perfetto::protos::DataSourceConfig* proto) const { 127 proto->Clear(); 128 129 static_assert(sizeof(name_) == sizeof(proto->name()), "size mismatch"); 130 proto->set_name(static_cast<decltype(proto->name())>(name_)); 131 132 static_assert(sizeof(target_buffer_) == sizeof(proto->target_buffer()), 133 "size mismatch"); 134 proto->set_target_buffer( 135 static_cast<decltype(proto->target_buffer())>(target_buffer_)); 136 137 static_assert( 138 sizeof(trace_duration_ms_) == sizeof(proto->trace_duration_ms()), 139 "size mismatch"); 140 proto->set_trace_duration_ms( 141 static_cast<decltype(proto->trace_duration_ms())>(trace_duration_ms_)); 142 143 static_assert(sizeof(enable_extra_guardrails_) == 144 sizeof(proto->enable_extra_guardrails()), 145 "size mismatch"); 146 proto->set_enable_extra_guardrails( 147 static_cast<decltype(proto->enable_extra_guardrails())>( 148 enable_extra_guardrails_)); 149 150 static_assert( 151 sizeof(tracing_session_id_) == sizeof(proto->tracing_session_id()), 152 "size mismatch"); 153 proto->set_tracing_session_id( 154 static_cast<decltype(proto->tracing_session_id())>(tracing_session_id_)); 155 156 ftrace_config_.ToProto(proto->mutable_ftrace_config()); 157 158 chrome_config_.ToProto(proto->mutable_chrome_config()); 159 160 inode_file_config_.ToProto(proto->mutable_inode_file_config()); 161 162 process_stats_config_.ToProto(proto->mutable_process_stats_config()); 163 164 sys_stats_config_.ToProto(proto->mutable_sys_stats_config()); 165 166 heapprofd_config_.ToProto(proto->mutable_heapprofd_config()); 167 168 android_power_config_.ToProto(proto->mutable_android_power_config()); 169 170 android_log_config_.ToProto(proto->mutable_android_log_config()); 171 172 packages_list_config_.ToProto(proto->mutable_packages_list_config()); 173 174 static_assert(sizeof(legacy_config_) == sizeof(proto->legacy_config()), 175 "size mismatch"); 176 proto->set_legacy_config( 177 static_cast<decltype(proto->legacy_config())>(legacy_config_)); 178 179 for_testing_.ToProto(proto->mutable_for_testing()); 180 *(proto->mutable_unknown_fields()) = unknown_fields_; 181 } 182 183 } // namespace perfetto 184