WebCore/page/GeolocationController.h
changeset 2 303757a437d3
parent 0 4f2f89ce4247
equal deleted inserted replaced
0:4f2f89ce4247 2:303757a437d3
    43 class GeolocationController : public Noncopyable {
    43 class GeolocationController : public Noncopyable {
    44 public:
    44 public:
    45     GeolocationController(Page*, GeolocationControllerClient*);
    45     GeolocationController(Page*, GeolocationControllerClient*);
    46     ~GeolocationController();
    46     ~GeolocationController();
    47 
    47 
    48     void addObserver(Geolocation*);
    48     void addObserver(Geolocation*, bool enableHighAccuracy);
    49     void removeObserver(Geolocation*);
    49     void removeObserver(Geolocation*);
    50 
    50 
    51     void positionChanged(GeolocationPosition*);
    51     void positionChanged(GeolocationPosition*);
    52     void errorOccurred(GeolocationError*);
    52     void errorOccurred(GeolocationError*);
    53 
    53 
    56 private:
    56 private:
    57     Page* m_page;
    57     Page* m_page;
    58     GeolocationControllerClient* m_client;
    58     GeolocationControllerClient* m_client;
    59 
    59 
    60     RefPtr<GeolocationPosition> m_lastPosition;
    60     RefPtr<GeolocationPosition> m_lastPosition;
    61     HashSet<RefPtr<Geolocation> > m_observers;
    61     typedef HashSet<RefPtr<Geolocation> > ObserversSet;
       
    62     // All observers; both those requesting high accuracy and those not.
       
    63     ObserversSet m_observers;
       
    64     ObserversSet m_highAccuracyObservers;
    62 };
    65 };
    63 
    66 
    64 } // namespace WebCore
    67 } // namespace WebCore
    65 
    68 
    66 #endif // ENABLE(CLIENT_BASED_GEOLOCATION)
    69 #endif // ENABLE(CLIENT_BASED_GEOLOCATION)