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 Geofencing_h
6#define Geofencing_h
7
8#include "bindings/core/v8/ScriptWrappable.h"
9#include "platform/heap/Handle.h"
10#include "wtf/text/WTFString.h"
11
12namespace blink {
13
14class ExecutionContext;
15class GeofencingRegion;
16class ScriptPromise;
17class ScriptState;
18
19class Geofencing FINAL : public GarbageCollected<Geofencing>, public ScriptWrappable {
20    DEFINE_WRAPPERTYPEINFO();
21public:
22    static Geofencing* create()
23    {
24        return new Geofencing();
25    }
26
27    ScriptPromise registerRegion(ScriptState*, GeofencingRegion*);
28    ScriptPromise unregisterRegion(ScriptState*, const String& regionId);
29    ScriptPromise getRegisteredRegions(ScriptState*) const;
30
31    virtual void trace(Visitor*) { }
32
33private:
34    Geofencing();
35};
36
37} // namespace blink
38
39#endif // Geofencing_h
40