1
1
/*
2
- * Copyright (C) 2009 Apple Inc. All Rights Reserved.
2
+ * Copyright (C) 2009-2017 Apple Inc. All Rights Reserved.
3
3
*
4
4
* Redistribution and use in source and binary forms, with or without
5
5
* modification, are permitted provided that the following conditions
25
25
26
26
#pragma once
27
27
28
+ #include " GeolocationPosition.h"
28
29
#include < wtf/Optional.h>
29
30
#include < wtf/Ref.h>
30
31
#include < wtf/RefCounted.h>
@@ -33,49 +34,28 @@ namespace WebCore {
33
34
34
35
class Coordinates : public RefCounted <Coordinates> {
35
36
public:
36
- static Ref<Coordinates> create (double latitude, double longitude, bool providesAltitude, double altitude, double accuracy, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed) { return adoptRef (*new Coordinates (latitude, longitude, providesAltitude, altitude, accuracy, providesAltitudeAccuracy, altitudeAccuracy, providesHeading, heading, providesSpeed, speed)); }
37
+ static Ref<Coordinates> create (GeolocationPosition&& position)
38
+ {
39
+ return adoptRef (*new Coordinates (WTFMove (position)));
40
+ }
37
41
38
42
Ref<Coordinates> isolatedCopy () const
39
43
{
40
- return Coordinates::create (m_latitude, m_longitude, m_canProvideAltitude, m_altitude, m_accuracy, m_canProvideAltitudeAccuracy, m_altitudeAccuracy, m_canProvideHeading, m_heading, m_canProvideSpeed, m_speed );
44
+ return Coordinates::create ( GeolocationPosition { m_position } );
41
45
}
42
46
43
- double latitude () const { return m_latitude ; }
44
- double longitude () const { return m_longitude ; }
45
- std::optional<double > altitude () const ;
46
- double accuracy () const { return m_accuracy ; }
47
- std::optional<double > altitudeAccuracy () const ;
48
- std::optional<double > heading () const ;
49
- std::optional<double > speed () const ;
47
+ double latitude () const { return m_position. latitude ; }
48
+ double longitude () const { return m_position. longitude ; }
49
+ std::optional<double > altitude () const { return m_position. altitude ; }
50
+ double accuracy () const { return m_position. accuracy ; }
51
+ std::optional<double > altitudeAccuracy () const { return m_position. altitudeAccuracy ; }
52
+ std::optional<double > heading () const { return m_position. heading ; }
53
+ std::optional<double > speed () const { return m_position. speed ; }
50
54
51
55
private:
52
- Coordinates (double latitude, double longitude, bool providesAltitude, double altitude, double accuracy, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed)
53
- : m_latitude(latitude)
54
- , m_longitude(longitude)
55
- , m_altitude(altitude)
56
- , m_accuracy(accuracy)
57
- , m_altitudeAccuracy(altitudeAccuracy)
58
- , m_heading(heading)
59
- , m_speed(speed)
60
- , m_canProvideAltitude(providesAltitude)
61
- , m_canProvideAltitudeAccuracy(providesAltitudeAccuracy)
62
- , m_canProvideHeading(providesHeading)
63
- , m_canProvideSpeed(providesSpeed)
64
- {
65
- }
56
+ explicit Coordinates (GeolocationPosition&&);
66
57
67
- double m_latitude;
68
- double m_longitude;
69
- double m_altitude;
70
- double m_accuracy;
71
- double m_altitudeAccuracy;
72
- double m_heading;
73
- double m_speed;
74
-
75
- bool m_canProvideAltitude;
76
- bool m_canProvideAltitudeAccuracy;
77
- bool m_canProvideHeading;
78
- bool m_canProvideSpeed;
58
+ GeolocationPosition m_position;
79
59
};
80
60
81
61
} // namespace WebCore
0 commit comments