X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=include%2Fafb%2Fafb-binding.h;h=82f702ec2d0d2dd5b1e12b64ab93f13a7909c624;hb=d3c80685ed6067f4899635c0328bbd8b70a2ed90;hp=e2fd34d8974ed01f7e4af11aab542c7ce1d2845c;hpb=090379fdaf6ed1860dcff21424135ad71ead0cd2;p=src%2Fapp-framework-binder.git diff --git a/include/afb/afb-binding.h b/include/afb/afb-binding.h index e2fd34d8..82f702ec 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 @@ -53,6 +68,35 @@ #include "afb-binding-v1.h" #include "afb-binding-v2.h" +typedef struct afb_verb_desc_v1 afb_verb_desc_v1; +typedef struct afb_binding_desc_v1 afb_binding_desc_v1; +typedef struct afb_binding_v1 afb_binding_v1; +typedef struct afb_binding_interface_v1 afb_binding_interface_v1; + +typedef struct afb_verb_v2 afb_verb_v2; +typedef struct afb_binding_v2 afb_binding_v2; + +typedef enum afb_auth_type afb_auth_type; +typedef struct afb_auth afb_auth; +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_service afb_service; + +#if 0 +/* these typedef's shouldn't be needed */ +typedef enum afb_binding_type_v1 afb_binding_type_v1; +typedef enum afb_mode_v1 afb_mode_v1; +typedef enum afb_session_flags_v1 afb_session_flags_v1; +typedef enum afb_session_flags_v2 afb_session_flags_v2; +typedef struct afb_binding_data_v2 afb_binding_data_v2; +typedef struct afb_daemon_itf afb_daemon_itf; +typedef struct afb_event_itf afb_event_itf; +typedef struct afb_req_itf afb_req_itf; +typedef struct afb_service_itf afb_service_itf; +#endif + /***************************************************************************************************/ #if AFB_BINDING_VERSION == 1 @@ -102,6 +146,12 @@ # 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_daemon_get_event_loop afb_daemon_get_event_loop_v1 @@ -124,7 +174,6 @@ #if AFB_BINDING_VERSION == 2 # define afb_binding afb_binding_v2 -# define afb_binding_interface afb_binding_interface_v2 # define AFB_SESSION_NONE AFB_SESSION_NONE_V2 # define AFB_SESSION_CLOSE AFB_SESSION_CLOSE_V2 @@ -147,6 +196,12 @@ # define INFO AFB_INFO_V2 # define 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_daemon_get_event_loop afb_daemon_get_event_loop_v2 @@ -163,3 +218,4 @@ #define afb_service_call_sync afb_service_call_sync_v2 #endif +