1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_RENDERER_DEVICE_SENSORS_DEVICE_MOTION_EVENT_PUMP_H_ 6 #define CONTENT_RENDERER_DEVICE_SENSORS_DEVICE_MOTION_EVENT_PUMP_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "content/renderer/device_sensors/device_sensor_event_pump.h" 10 #include "content/renderer/shared_memory_seqlock_reader.h" 11 #include "third_party/WebKit/public/platform/WebDeviceMotionData.h" 12 13 namespace blink { 14 class WebDeviceMotionListener; 15 } 16 17 namespace content { 18 19 typedef SharedMemorySeqLockReader<blink::WebDeviceMotionData> 20 DeviceMotionSharedMemoryReader; 21 22 class CONTENT_EXPORT DeviceMotionEventPump 23 : public DeviceSensorEventPump<blink::WebDeviceMotionListener> { 24 public: 25 explicit DeviceMotionEventPump(RenderThread* thread); 26 virtual ~DeviceMotionEventPump(); 27 28 // // PlatformEventObserver. 29 virtual bool OnControlMessageReceived(const IPC::Message& message) OVERRIDE; 30 virtual void SendFakeDataForTesting(void* fake_data) OVERRIDE; 31 32 protected: 33 virtual void FireEvent() OVERRIDE; 34 virtual bool InitializeReader(base::SharedMemoryHandle handle) OVERRIDE; 35 36 // PlatformEventObserver. 37 virtual void SendStartMessage() OVERRIDE; 38 virtual void SendStopMessage() OVERRIDE; 39 40 scoped_ptr<DeviceMotionSharedMemoryReader> reader_; 41 42 DISALLOW_COPY_AND_ASSIGN(DeviceMotionEventPump); 43 }; 44 45 } // namespace content 46 47 #endif // CONTENT_RENDERER_DEVICE_SENSORS_DEVICE_MOTION_EVENT_PUMP_H_ 48