// 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_RUNTIME_DART_TIMESTAMP_PROVIDER_H_ #define FLUTTER_RUNTIME_DART_TIMESTAMP_PROVIDER_H_ #include "flutter/fml/time/timestamp_provider.h" #include "flutter/fml/macros.h" #include "flutter/fml/time/time_point.h" namespace flutter { fml::TimePoint DartTimelineTicksSinceEpoch(); /// TimestampProvider implementation that is backed by Dart_TimelineGetTicks class DartTimestampProvider : fml::TimestampProvider { public: static DartTimestampProvider& Instance() { static DartTimestampProvider instance; return instance; } ~DartTimestampProvider() override; fml::TimePoint Now() override; private: static constexpr int64_t kNanosPerSecond = 1000000000; int64_t ConvertToNanos(int64_t ticks, int64_t frequency); DartTimestampProvider(); FML_DISALLOW_COPY_AND_ASSIGN(DartTimestampProvider); }; } // namespace flutter #endif // FLUTTER_RUNTIME_DART_TIMESTAMP_PROVIDER_H_