summaryrefslogtreecommitdiffstats
path: root/include/afb
AgeCommit message (Collapse)AuthorFilesLines
2017-10-09Add wrappers for accesses to internalsJosé Bollo2-1/+36
Change-Id: I6144b0ab21418dc98792f0eeef695f3df0fc11d3 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Cleanup of header filesJosé Bollo11-113/+35
Change-Id: Icf6cffdf303e125feec2661f5ce736a398c07932 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Provide API and VERB name of requestsJosé Bollo1-1/+7
Change-Id: I9a86c6314f871334231e50f9cea60b54aed434b9 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Provide the name of the APIJosé Bollo1-0/+3
Change-Id: I5b4e4b40385830d1b8921d079f5e7e732ec4247f Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Add a closure argument to dynamic verbsJosé Bollo3-1/+7
Also demonstrate the mix of api v2 with dynapi. Change-Id: I95e8d32ac836590ce3f7b3f0b5f29e5574808976 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Allow pure dynamic bindingsJosé Bollo1-0/+8
Activates the new internal interfaces Change-Id: I8f51cd271f66a0216ffdf03626300bb5964a70f9 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Allow dynamic creation of APIsJosé Bollo9-2/+566
Change-Id: I825bfa7969c98dd214457d9ff94e2948362286a9 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Make single afb_request_subcallJosé Bollo2-2/+11
Change-Id: I8cc96ef9c05781069f07b807bc6632d13668ac69 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Provide conversions for afb_event and afb_reqJosé Bollo2-0/+16
Provision is made here to convert, trivially: afb_event -> afb_eventid* afb_req -> afb_request* The opposite conversions aren't provided to favor new interfaces. Change-Id: Ib67c2317f782e2edfd1ba0e49e10b321a3b770a3 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Prepare subscription to eventidJosé Bollo2-6/+12
Change-Id: Ie3f75377009be36f7f5bd52bdb31d0611cd49778 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Make addref for request return the pointerJosé Bollo2-3/+3
Change-Id: I4286cbd9d02b406570185d265e7b925c43bbc42c Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Introduce afb_requestJosé Bollo7-67/+536
This prepares the new api with pointers. Change-Id: I4eb299551145226e428934b6835a1a7810ae6439 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Introduce afb_eventidJosé Bollo7-100/+230
This new name is better suited because it is not an event but the id of an event. This also prepares the new api with pointers. Change-Id: I7be88bb36cf72bf7df70793a77452e405130b951 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Make afb_event_drop obsoleteJosé Bollo2-11/+26
The function is now replaced by the function afb_event_unref. In the same time, the function afb_event_addref is made available. Change-Id: I9aa30e80e64e82f3b16ab359982337771b287185 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Atomic context initialisation for bindingsJosé Bollo1-6/+18
Change-Id: I3e81b64d57c917da1fba9b3a9387d0f4d7f3e6b7 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09afb-xreq: prepare futur afb_requestJosé Bollo1-1/+1
Change-Id: I0986113475f354bccdbc711e74a63c9ca809c5ed Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Add C++ interfaceJosé Bollo2-0/+615
Change-Id: I05e104e4733d071949723073d32b21c22089ecdf Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Add function 'afb_req_get_application_id'José Bollo1-0/+15
This function is intended to return an identifier of the calling application. At this time, the identifier is just derived from the application id but it can be changed in the future. Change-Id: Idacde8979ac5bb525352de9cab19e3fc1ed48627 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-09Remove tailing spaces and TODO fileJosé Bollo1-2/+2
Change-Id: Id7cdad4e24c6ab62bf9c325b542e1605b17223f4 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-09-07Allow renaming of APIJosé Bollo4-0/+25
The function afb_daemon_rename_api allows to rename an API during the preinit phase. Change-Id: I35477ba99d35b1dc51a7cacf8e55c3f02d86d7b4 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-09-07Improve handling of verbosity in bindingsJosé Bollo3-87/+114
The macro AFB_BINDING_PRAGMA_NO_VERBOSE_MACRO is removed. The macro AFB_BINDING_PRAGMA_NO_VERBOSE_UNPREFIX is removed. The macro AFB_BINDING_PRAGMA_KEEP_VERBOSE_UNPREFIX is now used to activate the weakly named verbose macros DEBUG, INFO, NOTICE, WARNING, ERROR. The macros AFB_BINDING_PRAGMA_NO_VERBOSE_DATA and AFB_BINDING_PRAGMA_NO_VERBOSE_DETAILS can be used to tune what verbose parts are to be emitted: If AFB_BINDING_PRAGMA_NO_VERBOSE_DATA is defined then the macro will only report the file and the line that emitted the message. This mode is intended to reduce the count of static data plugin the binary. If AFB_BINDING_PRAGMA_NO_VERBOSE_DATA is not defined and AFB_BINDING_PRAGMA_NO_VERBOSE_DETAILS is defined, this is the opposite: the messages are emitted but not the file, line and function. When none of these 2 are difened, everything is emitted: the message and the details. Change-Id: Ibb83cd435797fadf90626cb06bbda77f0f8b3cde Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-09-07afb-ditf: track daemon stateJosé Bollo2-0/+14
Change-Id: Ic21c79dcd9908919a1a8d13e8747ef0bd2490477 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-09-07Implement afb_req_has_permissionJosé Bollo1-0/+14
This new verb is available in bindings to check whether the client identified by a request has a given permission or not. Change-Id: I5eaa0892d8260d26bd76f37123251c103c981e10 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-08-29verbosity: split verbosity level 1 in 2 levelsJosé Bollo1-3/+3
Change-Id: I32a96f1863caffa6a17c25f52d06538f8eb60555 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-08-03subcall_req: introduce afb_req_subcall_reqJosé Bollo1-0/+33
The function 'afb_req_subcall_req' can be used to make asynchronous subcalls. It improves the function 'afb_req_subcall' by automatically keeping the request opened for the callback and by passing it, the request, as an extra argument of the callback. Change-Id: I2dc79c01fc25c7a65b9c8cc9e001a5b85fba99df Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-07-13Fix const issue in afb-auth.hJosé Bollo1-2/+2
The fields type and loa were declared as const. This worked well for C compilers that are allowing to initialize constant fixed structures. But when compiling with C++, it is no more easy to create initialized structure explicitely. In C++, the solution is to use C++14 constexpr functions. But for using these function, const must be removed. Bug-AGL: SPEC-741 Change-Id: I8096db6e4eba020f96fbf25789b2990d2a8cbabf Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-07-03Make status commonJosé Bollo3-8/+8
Make all error status for bindings use a common convention: a negative value means an error. Change-Id: Id09610051295810f04f00477d7ec1d9771bf7975 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-30Bindings V2: enforce prefix AFB_ to logging macrosJosé Bollo1-0/+3
This might break many codes but it is better in the long term. Change-Id: I346d13f0a6ef6b211edf25844489405351548299
2017-06-28Bindings V2: reintroduce field 'info' for verbsJosé Bollo1-3/+5
CAUTION, this breaks binary compatibility Change-Id: I67acfffe1f04cdddee0ad1230b227b080da1ab06 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-28Use constants for verbosity and syslog levelsJosé Bollo3-21/+53
Change-Id: I98a765f7c40d77fbc565ed13aa6e9bba48cf3244 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-28Add new macro for handling verbosityJosé Bollo1-0/+18
It might be interesting to test the verbosity level before making resource consuming stuff. Se example below: if (afb_verbose_notice()) { char *s = compute(); NOTICE("I got %s", s); free(s); } Change-Id: I7be4248a86fc2a2a23820ec822b36d9fccafb203 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-12Add comment for bindings v2José Bollo1-3/+3
Change-Id: Ic9c1e89f6f4f5a124ffb2dbb88a26dc5e8e1e543 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-12Removes reference to NULL in includesJosé Bollo3-5/+5
Change-Id: I94b2d57b8234f607167488afd24364920f9624f0 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-05Allows to enforce prefixed verbose messagesJosé Bollo1-21/+37
Change-Id: I41aa310f6898d5578b8de296d3b637c0d3595b1b Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-02Fix typedef for afb_stored_reqJosé Bollo1-0/+1
Change-Id: I3c1cbb4a8a5473af5ac520441fecd1e5f3f253b3 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-02Add 'afb_daemon_require_api'José Bollo4-0/+22
This solution is at this time the best one to allow asynchronous calls within initialisation of bindings. Change-Id: I21ba3a74b4e93eec238a11dd51bc6b58c483308d Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-02Provide efficient store/unstore for afb_reqJosé Bollo9-410/+516
Change-Id: I231e2506f58227fb8d192df042539b1551a765c5 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-01fix include of afb-service-v1.hJosé Bollo5-1/+9
Change-Id: I4e756949635854694711590c81fee0b7d99d33b3 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-06-01Add backward compatibility and remarksJosé Bollo2-6/+47
Change-Id: Ia261e2d9efce399b210f834c1acb679215021edd Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-05-31Introduce typedef for clientsJosé Bollo1-1/+30
Change-Id: Idb71c3ae869046f568166d239cf5addd31d42c6f Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-05-31code formatting improvementJosé Bollo6-12/+16
Change-Id: I07e0201c4dc9996e47ca70819123b351c7fb2ad7 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-05-31Add logging by requestJosé Bollo6-19/+151
Change-Id: I6dda714bcb8c36392c14a1981cfb8960f3db45b8 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-05-29Add vfail and vsuccess interfacesJosé Bollo3-27/+30
This now factorizes code needed to asprintf the arguments in an allocated string. But the most interesting effect is the ability to handle va_list of arguments. It can be used for library of tools. Change-Id: I4ba74c9984786f07abe0c7e53d7ef79dca863735 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-05-29Cleanup legacy internal functionsJosé Bollo1-14/+2
The functions afb_req_raw and afb_req_send are internal. They are now no more visible from bindings. Change-Id: I1f250a1800168a9c3772375477bf37a501f134a0 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-05-29Add 'afb_service_call_sync' functionJosé Bollo7-117/+189
This new function allows to call features for the services synchronously. Also refactoring how are handled arguments to calls. The call to 'json_object_put' is now always done by the binder. Change-Id: I910517da75b179aeafc824da4ce29bc299711990 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-05-22Bindings V2: Remove explicit references to daemon/serviceJosé Bollo9-102/+373
Usage shown that managing daemon interface and service interface wasn't obvious. This evolution hides the complexity by setting up an internal hidden variable. Change-Id: I667b1ee4e3a7b5ad29d712ee20ad5dd1878b97f3 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-05-19Bindings V2: rename init functionsJosé Bollo1-2/+2
The new naming is closer to the functionnal design and closer to V1 names. Change-Id: I8970338056a30564b84eaa1a7da6df3a9e6aa579 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-05-19bindings v2: Enforce to explicitely ask for concurrencyJosé Bollo1-0/+1
Change-Id: Ic20d1eb1c8515cd86444ad62b0daacbcd75e9b7e Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-05-19Bindings V2: Refactor session flagsJosé Bollo6-88/+190
Change-Id: Idb104b3db69d785b11446fe9b66084839290362f Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-05-11implement authorisation checkJosé Bollo2-9/+14
Change-Id: I2ef74b715a115acd11fa13744ba921e875f0bc65 Signed-off-by: José Bollo <jose.bollo@iot.bzh>