Index: chromeos/accelerometer/accelerometer_reader.h |
diff --git a/chromeos/accelerometer/accelerometer_reader.h b/chromeos/accelerometer/accelerometer_reader.h |
index 3cf473f72cf44346c83714a3a9f2fdea6f0e4861..ff1e5adc1b556cd540d8b7e6ddd70f129b6aa4d4 100644 |
--- a/chromeos/accelerometer/accelerometer_reader.h |
+++ b/chromeos/accelerometer/accelerometer_reader.h |
@@ -45,18 +45,24 @@ class CHROMEOS_EXPORT AccelerometerReader { |
typedef base::RefCountedData<char[12]> Reading; |
// An interface to receive data from the AccelerometerReader. |
- class Delegate { |
+ class Observer { |
public: |
- virtual ~Delegate() {} |
- |
- virtual void HandleAccelerometerUpdate( |
+ virtual void OnAccelerometerUpdated( |
const ui::AccelerometerUpdate& update) = 0; |
+ |
+ protected: |
+ virtual ~Observer() {} |
}; |
- AccelerometerReader(scoped_refptr<base::TaskRunner> blocking_task_runner, |
- Delegate* delegate); |
+ AccelerometerReader(); |
~AccelerometerReader(); |
+ void Initialize(scoped_refptr<base::TaskRunner> blocking_task_runner); |
+ |
+ // Add/Remove observers. |
+ void AddObserver(Observer* observer); |
+ void RemoveObserver(Observer* observer); |
+ |
private: |
// Dispatched when initialization is complete. If |success|, |configuration| |
// provides the details of the detected accelerometer. |
@@ -74,15 +80,14 @@ class CHROMEOS_EXPORT AccelerometerReader { |
// The task runner to use for blocking tasks. |
scoped_refptr<base::TaskRunner> task_runner_; |
- // A weak pointer to the delegate to send accelerometer readings to. |
- Delegate* delegate_; |
- |
// The last seen accelerometer data. |
ui::AccelerometerUpdate update_; |
// The accelerometer configuration. |
scoped_refptr<Configuration> configuration_; |
+ ObserverList<Observer, true> observers_; |
+ |
base::WeakPtrFactory<AccelerometerReader> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(AccelerometerReader); |