From 36ad7752cc5d7d6a02841e28b1fd04c8711e05cb Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Tue, 17 Nov 2020 04:59:27 +0100 Subject: [PATCH] Use flags for apptransport_client_send() --- src/appclient.c | 23 +++++++++++++++++------ src/apptransport.c | 4 ++-- src/apptransport.h | 6 +++++- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/appclient.c b/src/appclient.c index 1636666..44ae55e 100644 --- a/src/appclient.c +++ b/src/appclient.c @@ -44,6 +44,9 @@ struct _AppClient /* prototypes */ +static int _appclient_call_message(AppClient * appclient, + AppMessage * appmessage); + /* helpers */ static int _appclient_helper_message(void * data, AppTransport * transport, AppTransportClient * client, AppMessage * message); @@ -151,8 +154,7 @@ int appclient_callv(AppClient * appclient, if((message = appinterface_messagev(appclient->interface, method, ap)) == NULL) return -1; - /* FIXME obtain the answer (AICD_{,IN}OUT) */ - ret = apptransport_client_send(appclient->transport, message, 1); + ret = _appclient_call_message(appclient, message); appmessage_delete(message); return ret; } @@ -182,8 +184,7 @@ int appclient_call_variables(AppClient * appclient, if((message = appinterface_message_variables(appclient->interface, method, args)) == NULL) return -1; - /* FIXME obtain the answer (AICD_{,IN}OUT) */ - ret = apptransport_client_send(appclient->transport, message, 1); + ret = _appclient_call_message(appclient, message); appmessage_delete(message); return ret; } @@ -199,14 +200,24 @@ int appclient_call_variablev(AppClient * appclient, if((message = appinterface_message_variablev(appclient->interface, method, args)) == NULL) return -1; - /* FIXME obtain the answer (AICD_{,IN}OUT) */ - ret = apptransport_client_send(appclient->transport, message, 1); + ret = _appclient_call_message(appclient, message); appmessage_delete(message); return ret; } /* private */ +/* appclient_call_message */ +static int _appclient_call_message(AppClient * appclient, + AppMessage * appmessage) +{ + /* FIXME obtain the answer (AICD_{,IN}OUT) */ + return apptransport_client_send(appclient->transport, appmessage, + ATF_ACKNOWLEDGE); +} + + +/* helpers */ /* appclient_helper_message */ static int _helper_message_call(AppClient * appclient, AppTransport * transport, AppMessage * message); diff --git a/src/apptransport.c b/src/apptransport.c index aab1930..e5f6fa1 100644 --- a/src/apptransport.c +++ b/src/apptransport.c @@ -335,11 +335,11 @@ String * apptransport_lookup(char const * app) /* apptransport_client_send */ int apptransport_client_send(AppTransport * transport, AppMessage * message, - int acknowledge) + AppTransportFlags flags) { if(transport->mode == ATM_CLIENT && appmessage_get_type(message) == AMT_CALL - && acknowledge != 0) + && (flags & ATF_ACKNOWLEDGE) != 0) /* FIXME will wrap around after 2^32-1 acknowledgements */ appmessage_set_id(message, ++transport->id); return transport->definition->client_send(transport->tplugin, message); diff --git a/src/apptransport.h b/src/apptransport.h index 8632cf0..72d0b22 100644 --- a/src/apptransport.h +++ b/src/apptransport.h @@ -26,6 +26,10 @@ /* AppTransport */ /* protected */ /* types */ +typedef unsigned int AppTransportFlags; +# define ATF_ACKNOWLEDGE 0x1 +# define ATF_SYNC 0x2 + typedef struct _AppTransportHelper { void * data; @@ -57,7 +61,7 @@ String * apptransport_lookup(char const * app); /* ATM_CLIENT */ int apptransport_client_send(AppTransport * transport, AppMessage * message, - int acknowledge); + AppTransportFlags flags); /* ATM_SERVER */ int apptransport_server_register(AppTransport * transport, char const * app,