Chromium Code Reviews| Index: device/gamepad/gamepad_shared_buffer.h |
| diff --git a/device/gamepad/gamepad_shared_buffer.h b/device/gamepad/gamepad_shared_buffer.h |
| index 04cb911df969e107bbeb82ef6831e3abaa6ba2ee..b98e9616b9269ae809b6e71d8314658e102b24d6 100644 |
| --- a/device/gamepad/gamepad_shared_buffer.h |
| +++ b/device/gamepad/gamepad_shared_buffer.h |
| @@ -6,20 +6,42 @@ |
| #define DEVICE_GAMEPAD_SHARED_BUFFER_H_ |
| #include "base/memory/shared_memory.h" |
| +#include "device/base/synchronization/shared_memory_seqlock_buffer.h" |
| #include "device/gamepad/gamepad_export.h" |
| #include "third_party/WebKit/public/platform/WebGamepads.h" |
| namespace device { |
| +/* |
| + |
| + GamepadHardwareBuffer is stored in shared memory that's shared between the |
|
ke.he
2016/12/09 07:44:55
copied from /content/common/gamepad_hardware_buffe
|
| + browser which does the hardware polling, and the various consumers of the |
| + gamepad state (renderers and NaCl plugins). The performance characteristics are |
| + that we want low latency (so would like to avoid explicit communication via IPC |
| + between producer and consumer) and relatively large data size. |
| + |
| + Writer and reader operate on the same buffer assuming contention is low, and |
| + contention is detected by using the associated SeqLock. |
| + |
| +*/ |
| + |
| +typedef SharedMemorySeqLockBuffer<blink::WebGamepads> GamepadHardwareBuffer; |
| + |
| class DEVICE_GAMEPAD_EXPORT GamepadSharedBuffer { |
| public: |
| - virtual ~GamepadSharedBuffer() {} |
| + GamepadSharedBuffer(); |
| + ~GamepadSharedBuffer(); |
| + |
| + base::SharedMemory* shared_memory(); |
| + blink::WebGamepads* buffer(); |
| + GamepadHardwareBuffer* hardware_buffer(); |
| - virtual base::SharedMemory* shared_memory() = 0; |
| - virtual blink::WebGamepads* buffer() = 0; |
| + void WriteBegin(); |
| + void WriteEnd(); |
| - virtual void WriteBegin() = 0; |
| - virtual void WriteEnd() = 0; |
| + private: |
| + base::SharedMemory shared_memory_; |
| + GamepadHardwareBuffer* hardware_buffer_; |
| }; |
| } // namespace device |