Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(367)

Side by Side Diff: third_party/WebKit/Source/modules/sensor/SensorProxy.h

Issue 2395853003: [Sensors] Improvements in shared buffer managing (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef SensorProxy_h 5 #ifndef SensorProxy_h
6 #define SensorProxy_h 6 #define SensorProxy_h
7 7
8 #include "device/base/synchronization/shared_memory_seqlock_buffer.h"
8 #include "device/generic_sensor/public/interfaces/sensor.mojom-blink.h" 9 #include "device/generic_sensor/public/interfaces/sensor.mojom-blink.h"
9 #include "device/generic_sensor/public/interfaces/sensor_provider.mojom-blink.h" 10 #include "device/generic_sensor/public/interfaces/sensor_provider.mojom-blink.h"
10 #include "mojo/public/cpp/bindings/binding.h" 11 #include "mojo/public/cpp/bindings/binding.h"
11 #include "platform/Supplementable.h" 12 #include "platform/Supplementable.h"
12 #include "platform/heap/Handle.h" 13 #include "platform/heap/Handle.h"
13 14
14 namespace blink { 15 namespace blink {
15 16
16 class SensorProviderProxy; 17 class SensorProviderProxy;
17 18
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 std::unique_ptr<Function<void(bool)>>); 51 std::unique_ptr<Function<void(bool)>>);
51 void removeConfiguration(device::mojom::blink::SensorConfigurationPtr, 52 void removeConfiguration(device::mojom::blink::SensorConfigurationPtr,
52 std::unique_ptr<Function<void(bool)>>); 53 std::unique_ptr<Function<void(bool)>>);
53 54
54 void suspend(); 55 void suspend();
55 void resume(); 56 void resume();
56 57
57 device::mojom::blink::SensorType type() const { return m_type; } 58 device::mojom::blink::SensorType type() const { return m_type; }
58 device::mojom::blink::ReportingMode reportingMode() const { return m_mode; } 59 device::mojom::blink::ReportingMode reportingMode() const { return m_mode; }
59 60
60 struct Reading { 61 using Reading = device::mojom::blink::SensorReading;
61 double timestamp;
62 double reading[3];
63 };
64 static_assert(sizeof(Reading) ==
65 device::mojom::blink::SensorInitParams::kReadBufferSize,
66 "Check reading size");
67 62
68 const Reading& reading() const { return m_reading; } 63 const Reading& reading() const { return m_reading; }
69 64
70 const device::mojom::blink::SensorConfiguration* defaultConfig() const; 65 const device::mojom::blink::SensorConfiguration* defaultConfig() const;
71 66
72 // Updates internal reading from shared buffer. 67 // Updates internal reading from shared buffer.
73 void updateInternalReading(); 68 void updateInternalReading();
74 69
75 DECLARE_VIRTUAL_TRACE(); 70 DECLARE_VIRTUAL_TRACE();
76 71
(...skipping 20 matching lines...) Expand all
97 device::mojom::blink::SensorPtr m_sensor; 92 device::mojom::blink::SensorPtr m_sensor;
98 device::mojom::blink::SensorConfigurationPtr m_defaultConfig; 93 device::mojom::blink::SensorConfigurationPtr m_defaultConfig;
99 mojo::Binding<device::mojom::blink::SensorClient> m_clientBinding; 94 mojo::Binding<device::mojom::blink::SensorClient> m_clientBinding;
100 95
101 enum State { Uninitialized, Initializing, Initialized }; 96 enum State { Uninitialized, Initializing, Initialized };
102 State m_state; 97 State m_state;
103 mojo::ScopedSharedBufferHandle m_sharedBufferHandle; 98 mojo::ScopedSharedBufferHandle m_sharedBufferHandle;
104 mojo::ScopedSharedBufferMapping m_sharedBuffer; 99 mojo::ScopedSharedBufferMapping m_sharedBuffer;
105 Reading m_reading; 100 Reading m_reading;
106 bool m_suspended; 101 bool m_suspended;
102 using ReadingBuffer = device::SharedMemorySeqLockBuffer<Reading>;
107 }; 103 };
108 104
109 } // namespace blink 105 } // namespace blink
110 106
111 #endif // SensorProxy_h 107 #endif // SensorProxy_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698