blob: d8c36cd290512edd421688324130fe74587e0bc2 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_SOURCE_PROFILER_METRICS_IOS_H_
#define FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_SOURCE_PROFILER_METRICS_IOS_H_
#include <mach/mach.h>
#include <cassert>
#include <optional>
#include "flutter/fml/logging.h"
#include "flutter/shell/profiling/sampling_profiler.h"
namespace flutter {
/**
* @brief Utility class that gathers profiling metrics used by
* `flutter::SamplingProfiler`.
*
* @see flutter::SamplingProfiler
*/
class ProfilerMetricsIOS {
public:
ProfilerMetricsIOS() = default;
ProfileSample GenerateSample();
private:
std::optional<CpuUsageInfo> CpuUsage();
FML_DISALLOW_COPY_AND_ASSIGN(ProfilerMetricsIOS);
};
} // namespace flutter
#endif // FLUTTER_SHELL_PLATFORM_DARWIN_IOS_FRAMEWORK_SOURCE_PROFILER_METRICS_IOS_H_