Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1246)

Side by Side Diff: components/metrics/public/cpp/call_stack_profile_struct_traits.h

Issue 2927593002: Make stack sampling profiler sample beyond startup. (Closed)
Patch Set: Remove debug log statements. Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Defines StructTraits specializations for translating between mojo types and 5 // Defines StructTraits specializations for translating between mojo types and
6 // base::StackSamplingProfiler types, with data validity checks. 6 // base::StackSamplingProfiler types, with data validity checks.
7 7
8 #ifndef COMPONENTS_METRICS_CALL_STACK_PROFILE_STRUCT_TRAITS_H_ 8 #ifndef COMPONENTS_METRICS_PUBLIC_CPP_CALL_STACK_PROFILE_STRUCT_TRAITS_H_
9 #define COMPONENTS_METRICS_CALL_STACK_PROFILE_STRUCT_TRAITS_H_ 9 #define COMPONENTS_METRICS_PUBLIC_CPP_CALL_STACK_PROFILE_STRUCT_TRAITS_H_
10 10
11 #include <string>
12 #include <utility>
11 #include <vector> 13 #include <vector>
12 14
13 #include "base/files/file_path.h" 15 #include "base/files/file_path.h"
14 #include "base/profiler/stack_sampling_profiler.h" 16 #include "base/profiler/stack_sampling_profiler.h"
15 #include "components/metrics/public/interfaces/call_stack_profile_collector.mojo m.h" 17 #include "components/metrics/public/interfaces/call_stack_profile_collector.mojo m.h"
16 18
17 namespace mojo { 19 namespace mojo {
18 20
19 template <> 21 template <>
20 struct StructTraits<metrics::mojom::CallStackModuleDataView, 22 struct StructTraits<metrics::mojom::CallStackModuleDataView,
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 metrics::CallStackProfileParams::Trigger trigger) { 302 metrics::CallStackProfileParams::Trigger trigger) {
301 switch (trigger) { 303 switch (trigger) {
302 case metrics::CallStackProfileParams::Trigger::UNKNOWN: 304 case metrics::CallStackProfileParams::Trigger::UNKNOWN:
303 return metrics::mojom::Trigger::UNKNOWN; 305 return metrics::mojom::Trigger::UNKNOWN;
304 case metrics::CallStackProfileParams::Trigger::PROCESS_STARTUP: 306 case metrics::CallStackProfileParams::Trigger::PROCESS_STARTUP:
305 return metrics::mojom::Trigger::PROCESS_STARTUP; 307 return metrics::mojom::Trigger::PROCESS_STARTUP;
306 case metrics::CallStackProfileParams::Trigger::JANKY_TASK: 308 case metrics::CallStackProfileParams::Trigger::JANKY_TASK:
307 return metrics::mojom::Trigger::JANKY_TASK; 309 return metrics::mojom::Trigger::JANKY_TASK;
308 case metrics::CallStackProfileParams::Trigger::THREAD_HUNG: 310 case metrics::CallStackProfileParams::Trigger::THREAD_HUNG:
309 return metrics::mojom::Trigger::THREAD_HUNG; 311 return metrics::mojom::Trigger::THREAD_HUNG;
312 case metrics::CallStackProfileParams::Trigger::PERIODIC_COLLECTION:
313 return metrics::mojom::Trigger::PERIODIC_COLLECTION;
310 } 314 }
311 NOTREACHED(); 315 NOTREACHED();
312 return metrics::mojom::Trigger::UNKNOWN; 316 return metrics::mojom::Trigger::UNKNOWN;
313 } 317 }
314 318
315 static bool FromMojom(metrics::mojom::Trigger trigger, 319 static bool FromMojom(metrics::mojom::Trigger trigger,
316 metrics::CallStackProfileParams::Trigger* out) { 320 metrics::CallStackProfileParams::Trigger* out) {
317 switch (trigger) { 321 switch (trigger) {
318 case metrics::mojom::Trigger::UNKNOWN: 322 case metrics::mojom::Trigger::UNKNOWN:
319 *out = metrics::CallStackProfileParams::Trigger::UNKNOWN; 323 *out = metrics::CallStackProfileParams::Trigger::UNKNOWN;
320 return true; 324 return true;
321 case metrics::mojom::Trigger::PROCESS_STARTUP: 325 case metrics::mojom::Trigger::PROCESS_STARTUP:
322 *out = metrics::CallStackProfileParams::Trigger::PROCESS_STARTUP; 326 *out = metrics::CallStackProfileParams::Trigger::PROCESS_STARTUP;
323 return true; 327 return true;
324 case metrics::mojom::Trigger::JANKY_TASK: 328 case metrics::mojom::Trigger::JANKY_TASK:
325 *out = metrics::CallStackProfileParams::Trigger::JANKY_TASK; 329 *out = metrics::CallStackProfileParams::Trigger::JANKY_TASK;
326 return true; 330 return true;
327 case metrics::mojom::Trigger::THREAD_HUNG: 331 case metrics::mojom::Trigger::THREAD_HUNG:
328 *out = metrics::CallStackProfileParams::Trigger::THREAD_HUNG; 332 *out = metrics::CallStackProfileParams::Trigger::THREAD_HUNG;
329 return true; 333 return true;
334 case metrics::mojom::Trigger::PERIODIC_COLLECTION:
335 *out = metrics::CallStackProfileParams::Trigger::PERIODIC_COLLECTION;
336 return true;
330 } 337 }
331 return false; 338 return false;
332 } 339 }
333 }; 340 };
334 341
335 template <> 342 template <>
336 struct StructTraits<metrics::mojom::CallStackProfileParamsDataView, 343 struct StructTraits<metrics::mojom::CallStackProfileParamsDataView,
337 metrics::CallStackProfileParams> { 344 metrics::CallStackProfileParams> {
338 static metrics::CallStackProfileParams::Process process( 345 static metrics::CallStackProfileParams::Process process(
339 const metrics::CallStackProfileParams& params) { 346 const metrics::CallStackProfileParams& params) {
(...skipping 24 matching lines...) Expand all
364 } 371 }
365 *out = metrics::CallStackProfileParams(process, thread, trigger, 372 *out = metrics::CallStackProfileParams(process, thread, trigger,
366 ordering_spec); 373 ordering_spec);
367 return true; 374 return true;
368 } 375 }
369 }; 376 };
370 377
371 template <> 378 template <>
372 struct EnumTraits<metrics::mojom::SampleOrderingSpec, 379 struct EnumTraits<metrics::mojom::SampleOrderingSpec,
373 metrics::CallStackProfileParams::SampleOrderingSpec> { 380 metrics::CallStackProfileParams::SampleOrderingSpec> {
374
375 static metrics::mojom::SampleOrderingSpec ToMojom( 381 static metrics::mojom::SampleOrderingSpec ToMojom(
376 metrics::CallStackProfileParams::SampleOrderingSpec spec) { 382 metrics::CallStackProfileParams::SampleOrderingSpec spec) {
377 switch (spec) { 383 switch (spec) {
378 case metrics::CallStackProfileParams::SampleOrderingSpec::MAY_SHUFFLE: 384 case metrics::CallStackProfileParams::SampleOrderingSpec::MAY_SHUFFLE:
379 return metrics::mojom::SampleOrderingSpec::MAY_SHUFFLE; 385 return metrics::mojom::SampleOrderingSpec::MAY_SHUFFLE;
380 case metrics::CallStackProfileParams::SampleOrderingSpec::PRESERVE_ORDER: 386 case metrics::CallStackProfileParams::SampleOrderingSpec::PRESERVE_ORDER:
381 return metrics::mojom::SampleOrderingSpec::PRESERVE_ORDER; 387 return metrics::mojom::SampleOrderingSpec::PRESERVE_ORDER;
382 } 388 }
383 NOTREACHED(); 389 NOTREACHED();
384 return metrics::mojom::SampleOrderingSpec::MAY_SHUFFLE; 390 return metrics::mojom::SampleOrderingSpec::MAY_SHUFFLE;
385 } 391 }
386 392
387 static bool FromMojom( 393 static bool FromMojom(
388 metrics::mojom::SampleOrderingSpec spec, 394 metrics::mojom::SampleOrderingSpec spec,
389 metrics::CallStackProfileParams::SampleOrderingSpec* out) { 395 metrics::CallStackProfileParams::SampleOrderingSpec* out) {
390 switch (spec) { 396 switch (spec) {
391 case metrics::mojom::SampleOrderingSpec::MAY_SHUFFLE: 397 case metrics::mojom::SampleOrderingSpec::MAY_SHUFFLE:
392 *out = metrics::CallStackProfileParams::SampleOrderingSpec::MAY_SHUFFLE; 398 *out = metrics::CallStackProfileParams::SampleOrderingSpec::MAY_SHUFFLE;
393 return true; 399 return true;
394 case metrics::mojom::SampleOrderingSpec::PRESERVE_ORDER: 400 case metrics::mojom::SampleOrderingSpec::PRESERVE_ORDER:
395 *out = 401 *out =
396 metrics::CallStackProfileParams::SampleOrderingSpec::PRESERVE_ORDER; 402 metrics::CallStackProfileParams::SampleOrderingSpec::PRESERVE_ORDER;
397 return true; 403 return true;
398 } 404 }
399 return false; 405 return false;
400 } 406 }
401 }; 407 };
402 408
403 } // mojo 409 } // namespace mojo
404 410
405 #endif // COMPONENTS_METRICS_CALL_STACK_PROFILE_STRUCT_TRAITS_H_ 411 #endif // COMPONENTS_METRICS_PUBLIC_CPP_CALL_STACK_PROFILE_STRUCT_TRAITS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698