OLD | NEW |
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 Loading... |
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 Loading... |
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_ |
OLD | NEW |