-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathweather.idl
84 lines (78 loc) · 2.16 KB
/
weather.idl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
forecast = record {
latitude: f64;
longitude: f64;
timezone: string;
offset: i32;
currently: dataPoint;
minutely: dataBlock;
hourly: dataBlock;
daily: dataBlock;
alerts: list<alert>;
flags: flags;
}
dataPoint = record {
time: i64;
summary: string;
icon: string;
sunriseTime: optional<i64>;
sunsetTime: optional<i64>;
moonPhase: optional<f64>;
nearestStormDistance: optional<f64>;
nearestStormBearing: optional<f64>;
precipIntensity: f64;
precipIntensityMax: optional<f64>;
precipIntensityMaxTime: optional<i64>;
precipProbability: f64;
precipType: string;
precipAccumulation: optional<f64>;
temperature: optional<f64>;
temperatureMin: optional<f64>;
temperatureMinTime: optional<i64>;
temperatureMax: optional<f64>;
temperatureMaxTime: optional<i64>;
apparentTemperature: optional<f64>;
apparentTemperatureMax: optional<f64>;
apparentTemperatureMaxTime: optional<i64>;
apparentTemperatureMin: optional<f64>;
apparentTemperatureMinTime: optional<i64>;
dewPoint: f64;
windSpeed: f64;
windBearing: f64;
cloudCover: f64;
humidity: f64;
pressure: f64;
visibility: f64;
ozone: f64;
}
dataBlock = record {
summary: string;
icon: string;
data: list<dataPoint>;
}
alert = record {
title: string;
expires: i64;
alert_description: string;
uri: string;
}
flags = record {
darksky_unavailable: optional<string>;
darksky_stations: optional<list<string>>;
datapoint_stations: optional<list<string>>;
isd_stations: optional<list<string>>;
lamp_stations: optional<list<string>>;
metar_stations: optional<list<string>>;
metno_license: optional<string>;
sources: optional<list<string>>;
units: optional<string>;
}
weatherController = interface +c {
forecast(latitude: f64, longitude: f64);
static create_with_network_controller(controller: network_controller): weatherController;
receiveData(data: binary);
}
network_controller = interface +j +o {
get(URI: string, controller:weatherController);
post(URI: string, body: binary): binary;
callbackNative(result: forecast);
}