X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=include%2Fafb%2Fafb-binding.h;h=f70475968d4d1c1601def3285c75a5409a05f6a0;hb=f30be1ca9ce04cfab55b9e6ce25cec6952f7e21d;hp=b1830184eb004569759f21d14a5d3f9a69c1fa2d;hpb=acf0c66981ef55bf212352442e2673fdfe4a5505;p=src%2Fapp-framework-binder.git diff --git a/include/afb/afb-binding.h b/include/afb/afb-binding.h index b1830184..f7047596 100644 --- a/include/afb/afb-binding.h +++ b/include/afb/afb-binding.h @@ -26,18 +26,33 @@ * * Functions of bindings of afb-daemon are accessible by authorized clients * through the apis module of afb-daemon. - * - * A binding is a shared library. This shared library must have at least one - * exported symbol for being registered in afb-daemon. - * */ #define AFB_BINDING_LOWER_VERSION 1 #define AFB_BINDING_UPPER_VERSION 2 -#define AFB_BINDING_DEFAULT_VERSION 1 #ifndef AFB_BINDING_VERSION -#define AFB_BINDING_VERSION AFB_BINDING_DEFAULT_VERSION +#define AFB_BINDING_VERSION 1 +#pragma GCC warning "\ +\n\ +\n\ + AFB_BINDING_VERSION should be defined before including \n\ + AFB_BINDING_VERSION defines the version of binding that you use.\n\ + Currently, known versions are 1 or 2.\n\ + Setting now AFB_BINDING_VERSION to 1 (version 1 by default)\n\ + NOTE THAT VERSION 2 IS NOW RECOMMENDED!\n\ + Consider to add one of the following define before including :\n\ +\n\ + #define AFB_BINDING_VERSION 1\n\ + #define AFB_BINDING_VERSION 2\n\ +\n\ + Note that in some case it will enforce you to include \n\ +" +#include /* old version side effect */ +#else +# if AFB_BINDING_VERSION == 1 +# pragma GCC warning "Using binding version 1, consider to switch to version 2" +# endif #endif #if AFB_BINDING_VERSION != 0 @@ -52,6 +67,7 @@ #include "afb-binding-v1.h" #include "afb-binding-v2.h" +#include "afb-binding-vdyn.h" typedef struct afb_verb_desc_v1 afb_verb_desc_v1; typedef struct afb_binding_desc_v1 afb_binding_desc_v1; @@ -67,8 +83,13 @@ typedef struct afb_daemon afb_daemon; typedef struct afb_event afb_event; typedef struct afb_arg afb_arg; typedef struct afb_req afb_req; +typedef struct afb_stored_req afb_stored_req; typedef struct afb_service afb_service; +typedef struct afb_dynapi afb_dynapi; +typedef struct afb_request afb_request; +typedef struct afb_eventid afb_eventid; + #if 0 /* these typedef's shouldn't be needed */ typedef enum afb_binding_type_v1 afb_binding_type_v1; @@ -123,21 +144,17 @@ typedef struct afb_service_itf afb_service_itf; # define AFB_SESSION_LOA_GE_2 AFB_SESSION_LOA_GE_2_V1 # define AFB_SESSION_LOA_GE_3 AFB_SESSION_LOA_GE_3_V1 -# if !defined(AFB_BINDING_PRAGMA_NO_VERBOSE_MACRO) +# 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 ERROR AFB_ERROR_V1 -# define WARNING AFB_WARNING_V1 -# define NOTICE AFB_NOTICE_V1 -# define INFO AFB_INFO_V1 -# define DEBUG AFB_DEBUG_V1 - -# define REQ_ERROR AFB_REQ_ERROR_V1 -# define REQ_WARNING AFB_REQ_WARNING_V1 -# define REQ_NOTICE AFB_REQ_NOTICE_V1 -# define REQ_INFO AFB_REQ_INFO_V1 -# define REQ_DEBUG AFB_REQ_DEBUG_V1 - -# endif +# 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_daemon_get_event_loop afb_daemon_get_event_loop_v1 #define afb_daemon_get_user_bus afb_daemon_get_user_bus_v1 @@ -148,10 +165,15 @@ typedef struct afb_service_itf afb_service_itf; #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_rename_api_v1 #define afb_service_call afb_service_call_v1 #define afb_service_call_sync afb_service_call_sync_v1 +#define afb_req_store afb_req_store_v1 +#define afb_req_unstore afb_req_unstore_v1 + #endif /***************************************************************************************************/ @@ -159,6 +181,10 @@ typedef struct afb_service_itf afb_service_itf; #if AFB_BINDING_VERSION == 2 # 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_SESSION_NONE AFB_SESSION_NONE_V2 # define AFB_SESSION_CLOSE AFB_SESSION_CLOSE_V2 @@ -173,21 +199,17 @@ typedef struct afb_service_itf afb_service_itf; # define AFB_SESSION_LOA_2 AFB_SESSION_LOA_2_V2 # define AFB_SESSION_LOA_3 AFB_SESSION_LOA_3_V2 -# if !defined(AFB_BINDING_PRAGMA_NO_VERBOSE_MACRO) - -# define ERROR AFB_ERROR_V2 -# define WARNING AFB_WARNING_V2 -# define NOTICE AFB_NOTICE_V2 -# define INFO AFB_INFO_V2 -# define DEBUG AFB_DEBUG_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 REQ_ERROR AFB_REQ_ERROR_V2 -# define REQ_WARNING AFB_REQ_WARNING_V2 -# define REQ_NOTICE AFB_REQ_NOTICE_V2 -# define REQ_INFO AFB_REQ_INFO_V2 -# define REQ_DEBUG AFB_REQ_DEBUG_V2 - -# endif +# 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_daemon_get_event_loop afb_daemon_get_event_loop_v2 #define afb_daemon_get_user_bus afb_daemon_get_user_bus_v2 @@ -198,9 +220,43 @@ typedef struct afb_service_itf afb_service_itf; #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 afb_daemon_rename_api_v2 #define afb_service_call afb_service_call_v2 #define afb_service_call_sync afb_service_call_sync_v2 +#define afb_req_store afb_req_store_v2 +#define afb_req_unstore afb_daemon_unstore_req_v2 + +#endif + +/***************************************************************************************************/ + +#if AFB_BINDING_VERSION >= 2 + +# define afb_verbose_error() (afb_get_verbosity() >= AFB_VERBOSITY_LEVEL_ERROR) +# define afb_verbose_warning() (afb_get_verbosity() >= AFB_VERBOSITY_LEVEL_WARNING) +# define afb_verbose_notice() (afb_get_verbosity() >= AFB_VERBOSITY_LEVEL_NOTICE) +# define afb_verbose_info() (afb_get_verbosity() >= AFB_VERBOSITY_LEVEL_INFO) +# define afb_verbose_debug() (afb_get_verbosity() >= AFB_VERBOSITY_LEVEL_DEBUG) + +#endif + +/***************************************************************************************************/ + +#if defined(AFB_BINDING_PRAGMA_KEEP_VERBOSE_UNPREFIX) +# define ERROR AFB_ERROR +# define WARNING AFB_WARNING +# define NOTICE AFB_NOTICE +# define INFO AFB_INFO +# define DEBUG AFB_DEBUG + +# define REQ_ERROR AFB_REQ_ERROR +# define REQ_WARNING AFB_REQ_WARNING +# define REQ_NOTICE AFB_REQ_NOTICE +# define REQ_INFO AFB_REQ_INFO +# define REQ_DEBUG AFB_REQ_DEBUG #endif