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 DeviceEventDispatcherBase_h 6 #define DeviceEventDispatcherBase_h 7 8 #include "wtf/Vector.h" 9 10 namespace WebCore { 11 class DeviceEventControllerBase; 12 13 class DeviceEventDispatcherBase { 14 public: 15 void addController(DeviceEventControllerBase*); 16 void removeController(DeviceEventControllerBase*); 17 18 protected: 19 DeviceEventDispatcherBase(); 20 virtual ~DeviceEventDispatcherBase(); 21 22 void notifyControllers(); 23 24 virtual void startListening() = 0; 25 virtual void stopListening() = 0; 26 27 private: 28 void purgeControllers(); 29 30 Vector<DeviceEventControllerBase*> m_controllers; 31 bool m_needsPurge; 32 bool m_isDispatching; 33 }; 34 35 } // namespace WebCore 36 37 #endif // DeviceEventDispatcherBase_h 38