diff options
Diffstat (limited to 'binding/afm-weather-binding.c')
-rw-r--r-- | binding/afm-weather-binding.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/binding/afm-weather-binding.c b/binding/afm-weather-binding.c index 4c2418d..d089a71 100644 --- a/binding/afm-weather-binding.c +++ b/binding/afm-weather-binding.c @@ -28,7 +28,7 @@ #include <curl/curl.h> #include <json-c/json.h> -#define AFB_BINDING_VERSION 2 +#define AFB_BINDING_VERSION 3 #include <afb/afb-binding.h> #define OPENWEATHER_API_KEY "a860fa437924aec3d0360cc749e25f0e" @@ -41,7 +41,7 @@ struct { } data; static pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER; -static struct afb_event weather_event; +static afb_event_t weather_event; // Forward declaration gboolean update_weather_data(gpointer ptr); @@ -55,7 +55,7 @@ static void *weather_loop_thread(void *ptr) return NULL; } -static int init() +static int init(afb_api_t api) { pthread_t thread_id; json_object *response, *query; @@ -70,7 +70,7 @@ static int init() query = json_object_new_object(); json_object_object_add(query, "key", json_object_new_string("OPENWEATHERMAP_API_KEY")); - ret = afb_service_call_sync("persistence", "read", query, &response); + ret = afb_service_call_sync("persistence", "read", query, &response, NULL, NULL); if (ret < 0) { data.api_key = g_strdup(OPENWEATHER_API_KEY); @@ -97,7 +97,7 @@ static int init() query = json_object_new_object(); json_object_object_add(query, "value", json_object_new_string("location")); - ret = afb_service_call_sync("geoclue", "subscribe", query, &response); + ret = afb_service_call_sync("geoclue", "subscribe", query, &response, NULL, NULL); json_object_put(response); if (ret < 0) { @@ -164,7 +164,7 @@ gboolean update_weather_data(gpointer ptr) return TRUE; } -static void onevent(const char *event, struct json_object *object) +static void onevent(afb_api_t api, const char *event, struct json_object *object) { json_object *val = NULL; double latitude, longitude; @@ -201,7 +201,7 @@ static void onevent(const char *event, struct json_object *object) update_weather_data(NULL); } -static void current_weather(struct afb_req request) +static void current_weather(afb_req_t request) { json_object *jresp = NULL; @@ -232,7 +232,7 @@ static int validate_key(const char *value) return 0; } -static void api_key(struct afb_req request) +static void api_key(afb_req_t request) { const char *value = afb_req_value(request, "value"); json_object *jresp = NULL; @@ -254,7 +254,7 @@ static void api_key(struct afb_req request) json_object_object_add(jresp, "key", json_object_new_string("OPENWEATHERMAP_API_KEY")); json_object_object_add(jresp, "value", json_object_new_string(value)); - ret = afb_service_call_sync("persistence", "update", jresp, NULL); + ret = afb_service_call_sync("persistence", "update", jresp, NULL, NULL, NULL); if (ret < 0) { afb_req_fail(request, "failed", "Couldn't store API key"); return; @@ -268,7 +268,7 @@ static void api_key(struct afb_req request) afb_req_success(request, jresp, NULL); } -static void subscribe(struct afb_req request) +static void subscribe(afb_req_t request) { const char *value = afb_req_value(request, "value"); @@ -289,7 +289,7 @@ static void subscribe(struct afb_req request) afb_req_fail(request, "failed", "Invalid event"); } -static void unsubscribe(struct afb_req request) +static void unsubscribe(afb_req_t request) { const char *value = afb_req_value(request, "value"); @@ -302,7 +302,7 @@ static void unsubscribe(struct afb_req request) afb_req_fail(request, "failed", "Invalid event"); } -static const struct afb_verb_v2 binding_verbs[] = { +static const struct afb_verb_v3 binding_verbs[] = { { .verb = "current_weather", .callback = current_weather, .info = "Current weather data" }, { .verb = "api_key", .callback = api_key, .info = "Get/set OpenWeatherMap API key" }, { .verb = "subscribe", .callback = subscribe, .info = "Subscribe to weather events" }, @@ -313,7 +313,7 @@ static const struct afb_verb_v2 binding_verbs[] = { /* * binder API description */ -const struct afb_binding_v2 afbBindingV2 = { +const struct afb_binding_v3 afbBindingV3 = { .api = "weather", .specification = "Weather service API", .verbs = binding_verbs, |