/* * Copyright (C) 2015, 2016 "IoT.bzh" * Author "Manuel Bachmann" * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #define _GNU_SOURCE #include #include const struct afb_binding_interface *interface; static void ping (struct afb_req request) { static int pingcount = 0; json_object *query = afb_req_json(request); afb_req_success_f(request, NULL, "Ping Binder Daemon count=%d query=%s", ++pingcount, json_object_to_json_string(query)); } // NOTE: this sample does not use session to keep test a basic as possible // in real application most APIs should be protected with AFB_SESSION_CHECK static const struct afb_verb_desc_v1 verbs[]= { {"ping" , AFB_SESSION_NONE, ping , "Ping the binder"}, {NULL} }; static const struct afb_binding plugin_desc = { .type = AFB_BINDING_VERSION_1, .v1 = { .info = "xxxxxx hybrid service", .prefix = "xxxxxx", .verbs = verbs } }; const struct afb_binding *afbBindingV1Register (const struct afb_binding_interface *itf) { interface = itf; return &plugin_desc; }