1/*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#ifndef PositionOptions_h
27#define PositionOptions_h
28
29#include <wtf/RefCounted.h>
30
31namespace WebCore {
32
33class PositionOptions : public RefCounted<PositionOptions> {
34public:
35 static Ref<PositionOptions> create() { return adoptRef(*new PositionOptions()); }
36
37 bool enableHighAccuracy() const { return m_highAccuracy; }
38 void setEnableHighAccuracy(bool enable) { m_highAccuracy = enable; }
39 bool hasTimeout() const { return m_hasTimeout; }
40 int timeout() const
41 {
42 ASSERT(hasTimeout());
43 return m_timeout;
44 }
45 void setTimeout(int timeout)
46 {
47 ASSERT(timeout >= 0);
48 m_hasTimeout = true;
49 m_timeout = timeout;
50 }
51 bool hasMaximumAge() const { return m_hasMaximumAge; }
52 int maximumAge() const
53 {
54 ASSERT(hasMaximumAge());
55 return m_maximumAge;
56 }
57 void clearMaximumAge() { m_hasMaximumAge = false; }
58 void setMaximumAge(int age)
59 {
60 ASSERT(age >= 0);
61 m_hasMaximumAge = true;
62 m_maximumAge = age;
63 }
64
65private:
66 PositionOptions()
67 : m_highAccuracy(false)
68 , m_hasTimeout(false)
69 {
70 setMaximumAge(0);
71 }
72
73 bool m_highAccuracy;
74 bool m_hasTimeout;
75 int m_timeout;
76 bool m_hasMaximumAge;
77 int m_maximumAge;
78};
79
80} // namespace WebCore
81
82#endif // PositionOptions_h
83