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 11namespace blink { 12 13struct WebCircularGeofencingRegion; 14struct WebGeofencingError; 15struct WebGeofencingRegistration; 16class WebString; 17 18typedef WebCallbacks<void, WebGeofencingError> WebGeofencingCallbacks; 19typedef WebCallbacks<WebVector<WebGeofencingRegistration>, WebGeofencingError> WebGeofencingRegionsCallbacks; 20 21class WebGeofencingProvider { 22public: 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