blob: be9ac9c47f2dfc2320134c66962b0602ce36e87b [file] [log] [blame]
// Copyright 2016 The Chromium 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 SensorReadingUpdater_h
#define SensorReadingUpdater_h
#include "device/generic_sensor/public/interfaces/sensor_provider.mojom-blink.h"
#include "platform/heap/Handle.h"
namespace blink {
class Document;
class SensorProxy;
// This class encapsulates sensor reading update notification logic.
class SensorReadingUpdater : public GarbageCollected<SensorReadingUpdater> {
public:
static SensorReadingUpdater* Create(SensorProxy*,
device::mojom::blink::ReportingMode);
virtual void Start();
DECLARE_VIRTUAL_TRACE();
protected:
explicit SensorReadingUpdater(SensorProxy*);
void EnqueueAnimationFrameTask();
virtual void OnAnimationFrameInternal() = 0;
Member<SensorProxy> sensor_proxy_;
WeakMember<Document> document_;
bool has_pending_animation_frame_task_;
private:
void OnAnimationFrame();
};
} // namespace blink
#endif // SensorReadingUpdater_h