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 WebGeofencingProvider_h 6 #define WebGeofencingProvider_h 7 8 #include "public/platform/WebCallbacks.h" 9 #include "public/platform/WebVector.h" 10 11 namespace blink { 12 13 struct WebCircularGeofencingRegion; 14 struct WebGeofencingError; 15 struct WebGeofencingRegistration; 16 class WebString; 17 18 typedef WebCallbacks<void, WebGeofencingError> WebGeofencingCallbacks; 19 typedef WebCallbacks<WebVector<WebGeofencingRegistration>, WebGeofencingError> WebGeofencingRegionsCallbacks; 20 21 class WebGeofencingProvider { 22 public: 23 virtual ~WebGeofencingProvider() { } 24 25 // Registers a region. 26 // Ownership of the WebGeofencingCallbacks is transferred to the client. 27 virtual void registerRegion(const WebString& regionId, const WebCircularGeofencingRegion&, WebGeofencingCallbacks*) = 0; 28 29 // Unregisters a region. 30 // Ownership of the WebGeofencingCallbacks is transferred to the client. 31 virtual void unregisterRegion(const WebString& regionId, WebGeofencingCallbacks*) = 0; 32 33 // Returns all the currently registered regions. 34 // Ownership of the WebGeofencingRegionsCallbacks is transferred to the client. 35 virtual void getRegisteredRegions(WebGeofencingRegionsCallbacks*) = 0; 36 }; 37 38 } // namespace blink 39 40 #endif // WebGeofencingProvider_h 41