Home | History | Annotate | Download | only in platform
      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