api-v3: First draft
[src/app-framework-binder.git] / include / afb / afb-binding-predefs.h
diff --git a/include/afb/afb-binding-predefs.h b/include/afb/afb-binding-predefs.h
new file mode 100644 (file)
index 0000000..f1765ed
--- /dev/null
@@ -0,0 +1,372 @@
+/*
+ * Copyright (C) 2018 "IoT.bzh"
+ * Author: José Bollo <jose.bollo@iot.bzh>
+ *
+ * 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.
+ */
+
+#pragma once
+
+/******************************************************************************/
+
+#if AFB_BINDING_VERSION == 1 || AFB_BINDING_VERSION == 2
+
+#define afb_req                        afb_req_x1
+#define afb_req_is_valid               afb_req_x1_is_valid
+#define afb_req_get                    afb_req_x1_get
+#define afb_req_value                  afb_req_x1_value
+#define afb_req_path                   afb_req_x1_path
+#define afb_req_json                   afb_req_x1_json
+#define afb_req_reply                  afb_req_x1_reply
+#define afb_req_reply_f                        afb_req_x1_reply_f
+#define afb_req_reply_v                        afb_req_x1_reply_v
+#define afb_req_success(r,o,i)         afb_req_x1_reply(r,o,0,i)
+#define afb_req_success_f(r,o,...)     afb_req_x1_reply_f(r,o,0,__VA_ARGS__)
+#define afb_req_success_v(r,o,f,v)     afb_req_x1_reply_v(r,o,0,f,v)
+#define afb_req_fail(r,e,i)            afb_req_x1_reply(r,0,e,i)
+#define afb_req_fail_f(r,e,...)                afb_req_x1_reply_f(r,0,e,__VA_ARGS__)
+#define afb_req_fail_v(r,e,f,v)                afb_req_x1_reply_v(r,0,e,f,v)
+#define afb_req_context_get            afb_req_x1_context_get
+#define afb_req_context_set            afb_req_x1_context_set
+#define afb_req_context                        afb_req_x1_context
+#define afb_req_context_make           afb_req_x1_context_make
+#define afb_req_context_clear          afb_req_x1_context_clear
+#define afb_req_addref                 afb_req_x1_addref
+#define afb_req_unref                  afb_req_x1_unref
+#define afb_req_session_close          afb_req_x1_session_close
+#define afb_req_session_set_LOA                afb_req_x1_session_set_LOA
+#define afb_req_subscribe              afb_req_x1_subscribe
+#define afb_req_unsubscribe            afb_req_x1_unsubscribe
+#define afb_req_subcall                        afb_req_x1_subcall
+#define afb_req_subcall_req            afb_req_x1_subcall_req
+#define afb_req_subcall_sync           afb_req_x1_subcall_sync
+#define afb_req_verbose                        afb_req_x1_verbose
+#define afb_req_has_permission         afb_req_x1_has_permission
+#define afb_req_get_application_id     afb_req_x1_get_application_id
+#define afb_req_get_uid                        afb_req_x1_get_uid
+#define afb_req_get_client_info                afb_req_x1_get_client_info
+
+#define afb_event                      afb_event_x1
+#define afb_event_to_event_x2          afb_event_x1_to_event_x2
+#define afb_event_is_valid             afb_event_x1_is_valid
+#define afb_event_broadcast            afb_event_x1_broadcast
+#define afb_event_push                 afb_event_x1_push
+#define afb_event_drop                 afb_event_x1_unref
+#define afb_event_name                 afb_event_x1_name
+#define afb_event_unref                        afb_event_x1_unref
+#define afb_event_addref               afb_event_x1_addref
+
+#define afb_service                    afb_service_x1
+#define afb_daemon                     afb_daemon_x1
+
+#define _AFB_SYSLOG_LEVEL_EMERGENCY_   AFB_SYSLOG_LEVEL_EMERGENCY
+#define _AFB_SYSLOG_LEVEL_ALERT_       AFB_SYSLOG_LEVEL_ALERT
+#define _AFB_SYSLOG_LEVEL_CRITICAL_    AFB_SYSLOG_LEVEL_CRITICAL
+#define _AFB_SYSLOG_LEVEL_ERROR_       AFB_SYSLOG_LEVEL_ERROR
+#define _AFB_SYSLOG_LEVEL_WARNING_     AFB_SYSLOG_LEVEL_WARNING
+#define _AFB_SYSLOG_LEVEL_NOTICE_      AFB_SYSLOG_LEVEL_NOTICE
+#define _AFB_SYSLOG_LEVEL_INFO_                AFB_SYSLOG_LEVEL_INFO
+#define _AFB_SYSLOG_LEVEL_DEBUG_       AFB_SYSLOG_LEVEL_DEBUG
+
+#endif
+
+/******************************************************************************/
+#if AFB_BINDING_VERSION == 1
+
+#define afb_req_store                  afb_req_x1_store_v1
+#define afb_req_unstore                        afb_req_x1_unstore_v1
+
+#define afb_binding                    afb_binding_v1
+#define afb_binding_interface          afb_binding_interface_v1
+
+#define afb_daemon_get_event_loop      afb_daemon_get_event_loop_v1
+#define afb_daemon_get_user_bus                afb_daemon_get_user_bus_v1
+#define afb_daemon_get_system_bus      afb_daemon_get_system_bus_v1
+#define afb_daemon_broadcast_event     afb_daemon_broadcast_event_v1
+#define afb_daemon_make_event          afb_daemon_make_event_v1
+#define afb_daemon_verbose             afb_daemon_verbose_v1
+#define afb_daemon_rootdir_get_fd      afb_daemon_rootdir_get_fd_v1
+#define afb_daemon_rootdir_open_locale afb_daemon_rootdir_open_locale_v1
+#define afb_daemon_queue_job           afb_daemon_queue_job_v1
+#define afb_daemon_require_api         afb_daemon_require_api_v1
+#define afb_daemon_rename_api          afb_daemon_add_alias_v1
+
+#define afb_service_call               afb_service_call_v1
+#define afb_service_call_sync          afb_service_call_sync_v1
+
+# define AFB_ERROR                     AFB_ERROR_V1
+# define AFB_WARNING                   AFB_WARNING_V1
+# define AFB_NOTICE                    AFB_NOTICE_V1
+# define AFB_INFO                      AFB_INFO_V1
+# define AFB_DEBUG                     AFB_DEBUG_V1
+
+# define AFB_REQ_ERROR                 AFB_REQ_ERROR_V1
+# define AFB_REQ_WARNING               AFB_REQ_WARNING_V1
+# define AFB_REQ_NOTICE                        AFB_REQ_NOTICE_V1
+# define AFB_REQ_INFO                  AFB_REQ_INFO_V1
+# define AFB_REQ_DEBUG                 AFB_REQ_DEBUG_V1
+
+#define AFB_REQ_VERBOSE                        AFB_REQ_VERBOSE_V1
+
+# define AFB_SESSION_NONE              AFB_SESSION_NONE_X1
+# define AFB_SESSION_CREATE            AFB_SESSION_CREATE_X1
+# define AFB_SESSION_CLOSE             AFB_SESSION_CLOSE_X1
+# define AFB_SESSION_RENEW             AFB_SESSION_RENEW_X1
+# define AFB_SESSION_CHECK             AFB_SESSION_CHECK_X1
+
+# define AFB_SESSION_LOA_GE            AFB_SESSION_LOA_GE_X1
+# define AFB_SESSION_LOA_LE            AFB_SESSION_LOA_LE_X1
+# define AFB_SESSION_LOA_EQ            AFB_SESSION_LOA_EQ_X1
+
+# define AFB_SESSION_LOA_SHIFT         AFB_SESSION_LOA_SHIFT_X1
+# define AFB_SESSION_LOA_MASK          AFB_SESSION_LOA_MASK_X1
+
+# define AFB_SESSION_LOA_0             AFB_SESSION_LOA_0_X1
+# define AFB_SESSION_LOA_1             AFB_SESSION_LOA_1_X1
+# define AFB_SESSION_LOA_2             AFB_SESSION_LOA_2_X1
+# define AFB_SESSION_LOA_3             AFB_SESSION_LOA_3_X1
+# define AFB_SESSION_LOA_4             AFB_SESSION_LOA_4_X1
+
+# define AFB_SESSION_LOA_LE_0          AFB_SESSION_LOA_LE_0_X1
+# define AFB_SESSION_LOA_LE_1          AFB_SESSION_LOA_LE_1_X1
+# define AFB_SESSION_LOA_LE_2          AFB_SESSION_LOA_LE_2_X1
+# define AFB_SESSION_LOA_LE_3          AFB_SESSION_LOA_LE_3_X1
+
+# define AFB_SESSION_LOA_EQ_0          AFB_SESSION_LOA_EQ_0_X1
+# define AFB_SESSION_LOA_EQ_1          AFB_SESSION_LOA_EQ_1_X1
+# define AFB_SESSION_LOA_EQ_2          AFB_SESSION_LOA_EQ_2_X1
+# define AFB_SESSION_LOA_EQ_3          AFB_SESSION_LOA_EQ_3_X1
+
+# define AFB_SESSION_LOA_GE_0          AFB_SESSION_LOA_GE_0_X1
+# define AFB_SESSION_LOA_GE_1          AFB_SESSION_LOA_GE_1_X1
+# define AFB_SESSION_LOA_GE_2          AFB_SESSION_LOA_GE_2_X1
+# define AFB_SESSION_LOA_GE_3          AFB_SESSION_LOA_GE_3_X1
+
+#endif
+
+/******************************************************************************/
+#if AFB_BINDING_VERSION == 2
+
+#define afb_req_store                  afb_req_x1_store_v2
+#define afb_req_unstore                        afb_daemon_unstore_req_v2
+
+#define afb_binding                    afb_binding_v2
+
+#define afb_get_verbosity              afb_get_verbosity_v2
+#define afb_get_daemon                 afb_get_daemon_v2
+#define afb_get_service                        afb_get_service_v2
+
+#define afb_daemon_get_event_loop      afb_daemon_get_event_loop_v2
+#define afb_daemon_get_user_bus                afb_daemon_get_user_bus_v2
+#define afb_daemon_get_system_bus      afb_daemon_get_system_bus_v2
+#define afb_daemon_broadcast_event     afb_daemon_broadcast_event_v2
+#define afb_daemon_make_event          afb_daemon_make_event_v2
+#define afb_daemon_verbose             afb_daemon_verbose_v2
+#define afb_daemon_rootdir_get_fd      afb_daemon_rootdir_get_fd_v2
+#define afb_daemon_rootdir_open_locale afb_daemon_rootdir_open_locale_v2
+#define afb_daemon_queue_job           afb_daemon_queue_job_v2
+#define afb_daemon_unstore_req         afb_daemon_unstore_req_v2
+#define afb_daemon_require_api         afb_daemon_require_api_v2
+#define afb_daemon_rename_api(x)       afb_daemon_add_alias_v2(0,x)
+#define afb_daemon_add_alias           afb_daemon_add_alias_v2
+
+#define afb_service_call               afb_service_call_v2
+#define afb_service_call_sync          afb_service_call_sync_v2
+
+#define AFB_ERROR                      AFB_ERROR_V2
+#define AFB_WARNING                    AFB_WARNING_V2
+#define AFB_NOTICE                     AFB_NOTICE_V2
+#define AFB_INFO                       AFB_INFO_V2
+#define AFB_DEBUG                      AFB_DEBUG_V2
+
+#define AFB_REQ_ERROR                  AFB_REQ_ERROR_V2
+#define AFB_REQ_WARNING                        AFB_REQ_WARNING_V2
+#define AFB_REQ_NOTICE                 AFB_REQ_NOTICE_V2
+#define AFB_REQ_INFO                   AFB_REQ_INFO_V2
+#define AFB_REQ_DEBUG                  AFB_REQ_DEBUG_V2
+
+#define AFB_REQ_VERBOSE                        AFB_REQ_VERBOSE_V2
+
+#endif
+
+/******************************************************************************/
+#if AFB_BINDING_VERSION == 2 || AFB_BINDING_VERSION == 3
+
+#define AFB_SESSION_NONE               AFB_SESSION_NONE_X2
+#define AFB_SESSION_CLOSE              AFB_SESSION_CLOSE_X2
+#define AFB_SESSION_RENEW              AFB_SESSION_REFRESH_X2
+#define AFB_SESSION_REFRESH            AFB_SESSION_REFRESH_X2
+#define AFB_SESSION_CHECK              AFB_SESSION_CHECK_X2
+
+#define AFB_SESSION_LOA_MASK           AFB_SESSION_LOA_MASK_X2
+
+#define AFB_SESSION_LOA_0              AFB_SESSION_LOA_0_X2
+#define AFB_SESSION_LOA_1              AFB_SESSION_LOA_1_X2
+#define AFB_SESSION_LOA_2              AFB_SESSION_LOA_2_X2
+#define AFB_SESSION_LOA_3              AFB_SESSION_LOA_3_X2
+
+#endif
+
+/******************************************************************************/
+#if AFB_BINDING_VERSION == 2
+
+#define AFB_SESSION_NONE_V2            AFB_SESSION_NONE_X2
+#define AFB_SESSION_CLOSE_V2           AFB_SESSION_CLOSE_X2
+#define AFB_SESSION_RENEW_V2           AFB_SESSION_REFRESH_X2
+#define AFB_SESSION_REFRESH_V2         AFB_SESSION_REFRESH_X2
+#define AFB_SESSION_CHECK_V2           AFB_SESSION_CHECK_X2
+
+#define AFB_SESSION_LOA_MASK_V2        AFB_SESSION_LOA_MASK_X2
+
+#define AFB_SESSION_LOA_0_V2           AFB_SESSION_LOA_0_X2
+#define AFB_SESSION_LOA_1_V2           AFB_SESSION_LOA_1_X2
+#define AFB_SESSION_LOA_2_V2           AFB_SESSION_LOA_2_X2
+#define AFB_SESSION_LOA_3_V2           AFB_SESSION_LOA_3_X2
+
+#endif
+
+/******************************************************************************/
+#if AFB_BINDING_VERSION == 3
+
+#define afb_req_x2                     afb_req
+
+#define afb_req_x2_is_valid            afb_req_is_valid
+#define afb_req_x2_get_api             afb_req_get_api
+#define afb_req_x2_get_vcbdata         afb_req_get_vcbdata
+#define afb_req_x2_get_called_api      afb_req_get_called_api
+#define afb_req_x2_get_called_verb     afb_req_get_called_verb
+#define afb_req_x2_wants_log_level     afb_req_wants_log_level
+
+#define afb_req_x2_get                 afb_req_get
+#define afb_req_x2_value               afb_req_value
+#define afb_req_x2_path                        afb_req_path
+#define afb_req_x2_json                        afb_req_json
+#define afb_req_x2_reply               afb_req_reply
+#define afb_req_x2_reply_f             afb_req_reply_f
+#define afb_req_x2_reply_v             afb_req_reply_v
+#define afb_req_success(r,o,i)         afb_req_reply(r,o,0,i)
+#define afb_req_success_f(r,o,...)     afb_req_reply_f(r,o,0,__VA_ARGS__)
+#define afb_req_success_v(r,o,f,v)     afb_req_reply_v(r,o,0,f,v)
+#define afb_req_fail(r,e,i)            afb_req_reply(r,0,e,i)
+#define afb_req_fail_f(r,e,...)                afb_req_reply_f(r,0,e,__VA_ARGS__)
+#define afb_req_fail_v(r,e,f,v)                afb_req_reply_v(r,0,e,f,v)
+#define afb_req_x2_context_get         afb_req_context_get
+#define afb_req_x2_context_set         afb_req_context_set
+#define afb_req_x2_context             afb_req_context
+#define afb_req_x2_context_make                afb_req_context_make
+#define afb_req_x2_context_clear       afb_req_context_clear
+#define afb_req_x2_addref              afb_req_addref
+#define afb_req_x2_unref               afb_req_unref
+#define afb_req_x2_session_close       afb_req_session_close
+#define afb_req_x2_session_set_LOA     afb_req_session_set_LOA
+#define afb_req_x2_subscribe           afb_req_subscribe
+#define afb_req_x2_unsubscribe         afb_req_unsubscribe
+#define afb_req_x2_subcall             afb_req_subcall
+#define afb_req_x2_subcall_legacy      afb_req_subcall_legacy
+#define afb_req_x2_subcall_req         afb_req_subcall_req
+#define afb_req_x2_subcall_sync_legacy afb_req_subcall_sync_legacy
+#define afb_req_x2_subcall_sync                afb_req_subcall_sync
+#define afb_req_x2_verbose             afb_req_verbose
+#define afb_req_x2_has_permission      afb_req_has_permission
+#define afb_req_x2_get_application_id  afb_req_get_application_id
+#define afb_req_x2_get_uid             afb_req_get_uid
+#define afb_req_x2_get_client_info     afb_req_get_client_info
+
+#define afb_req_x2_subcall_catch_events        afb_req_subcall_catch_events
+#define afb_req_x2_subcall_pass_events afb_req_subcall_pass_events
+#define afb_req_x2_subcall_on_behalf   afb_req_subcall_on_behalf
+
+#define afb_event_x2                   afb_event
+#define afb_event_x2_is_valid          afb_event_is_valid
+#define afb_event_x2_broadcast         afb_event_broadcast
+#define afb_event_x2_push              afb_event_push
+#define afb_event_x2_name              afb_event_name
+#define afb_event_x2_unref             afb_event_unref
+#define afb_event_x2_addref            afb_event_addref
+
+#define afb_api_x3                     afb_api
+
+#define afb_api_x3_name                        afb_api_name
+#define afb_api_x3_get_userdata                afb_api_get_userdata
+#define afb_api_x3_set_userdata                afb_api_set_userdata
+#define afb_api_x3_wants_log_level     afb_api_wants_log_level
+
+#define afb_api_x3_verbose             afb_api_verbose
+#define afb_api_x3_get_event_loop      afb_api_get_event_loop
+#define afb_api_x3_get_user_bus                afb_api_get_user_bus
+#define afb_api_x3_get_system_bus      afb_api_get_system_bus
+#define afb_api_x3_rootdir_get_fd      afb_api_rootdir_get_fd
+#define afb_api_x3_rootdir_open_locale afb_api_rootdir_open_locale
+#define afb_api_x3_queue_job           afb_api_queue_job
+#define afb_api_x3_require_api         afb_api_require_api
+#define afb_api_x3_broadcast_event     afb_api_broadcast_event
+#define afb_api_x3_make_event_x2       afb_api_make_event
+#define afb_api_x3_call                        afb_api_call
+#define afb_api_x3_call_sync           afb_api_call_sync
+#define afb_api_x3_call_legacy         afb_api_call_legacy
+#define afb_api_x3_call_sync_legacy    afb_api_call_sync_legacy
+#define afb_api_x3_new_api             afb_api_new_api
+#define afb_api_x3_set_verbs_v2                afb_api_set_verbs_v2
+#define afb_api_x3_add_verb            afb_api_add_verb
+#define afb_api_x3_del_verb            afb_api_del_verb
+#define afb_api_x3_on_event            afb_api_on_event
+#define afb_api_x3_on_init             afb_api_on_init
+#define afb_api_x3_seal                        afb_api_seal
+#define afb_api_x3_add_alias           afb_api_add_alias
+
+#define AFB_API_ERROR                  AFB_API_ERROR_V3
+#define AFB_API_WARNING                        AFB_API_WARNING_V3
+#define AFB_API_NOTICE                 AFB_API_NOTICE_V3
+#define AFB_API_INFO                   AFB_API_INFO_V3
+#define AFB_API_DEBUG                  AFB_API_DEBUG_V3
+
+#define AFB_REQ_ERROR                  AFB_REQ_ERROR_V3
+#define AFB_REQ_WARNING                        AFB_REQ_WARNING_V3
+#define AFB_REQ_NOTICE                 AFB_REQ_NOTICE_V3
+#define AFB_REQ_INFO                   AFB_REQ_INFO_V3
+#define AFB_REQ_DEBUG                  AFB_REQ_DEBUG_V3
+
+#define AFB_REQ_VERBOSE                        AFB_REQ_VERBOSE_V3
+
+#define afb_stored_req                         afb_req_x2
+#define afb_req_store(x)               afb_req_x2_addref(x)
+#define afb_req_unstore(x)             (x)
+
+#define afb_get_verbosity              afb_get_verbosity_v3
+#define afb_get_logmask                        afb_get_logmask_v3
+#define afb_get_daemon                 afb_get_root_api_v3
+#define afb_get_service                        afb_get_root_api_v3
+
+#define afb_daemon_get_event_loop      afb_daemon_get_event_loop_v3
+#define afb_daemon_get_user_bus                afb_daemon_get_user_bus_v3
+#define afb_daemon_get_system_bus      afb_daemon_get_system_bus_v3
+#define afb_daemon_broadcast_event     afb_daemon_broadcast_event_v3
+#define afb_daemon_make_event          afb_daemon_make_event_v3
+#define afb_daemon_verbose             afb_daemon_verbose_v3
+#define afb_daemon_rootdir_get_fd      afb_daemon_rootdir_get_fd_v3
+#define afb_daemon_rootdir_open_locale afb_daemon_rootdir_open_locale_v3
+#define afb_daemon_queue_job           afb_daemon_queue_job_v3
+#define afb_daemon_require_api         afb_daemon_require_api_v3
+#define afb_daemon_add_alias           afb_daemon_add_alias_v3
+
+# define afb_service_call              afb_service_call_v3
+# define afb_service_call_sync         afb_service_call_sync_v3
+
+# define AFB_ERROR                     AFB_ERROR_V3
+# define AFB_WARNING                   AFB_WARNING_V3
+# define AFB_NOTICE                    AFB_NOTICE_V3
+# define AFB_INFO                      AFB_INFO_V3
+# define AFB_DEBUG                     AFB_DEBUG_V3
+
+#endif
+