#include "third_party/blink/public/common/media/watch_time_component.h"
#include "base/time/time.h"
#include "third_party/blink/public/common/common_export.h"
#include "third_party/blink/public/common/media/display_type.h"
namespace blink {
template <typename T>
WatchTimeComponent<T>::WatchTimeComponent(
T initial_value,
std::vector<media::WatchTimeKey> keys_to_finalize,
ValueToKeyCB value_to_key_cb,
GetMediaTimeCB get_media_time_cb,
media::mojom::WatchTimeRecorder* recorder)
: … { … }
template <typename T>
WatchTimeComponent<T>::~WatchTimeComponent() = default;
template <typename T>
void WatchTimeComponent<T>::OnReportingStarted(
base::TimeDelta start_timestamp) { … }
template <typename T>
void WatchTimeComponent<T>::SetPendingValue(T new_value) { … }
template <typename T>
void WatchTimeComponent<T>::SetCurrentValue(T new_value) { … }
template <typename T>
void WatchTimeComponent<T>::RecordWatchTime(base::TimeDelta current_timestamp) { … }
template <typename T>
void WatchTimeComponent<T>::Finalize(
std::vector<media::WatchTimeKey>* keys_to_finalize) { … }
template <typename T>
bool WatchTimeComponent<T>::NeedsFinalize() const { … }
template class BLINK_COMMON_EXPORT WatchTimeComponent<bool>;
template class BLINK_COMMON_EXPORT WatchTimeComponent<DisplayType>;
}