summaryrefslogtreecommitdiffstats
path: root/include/afb
AgeCommit message (Collapse)AuthorFilesLines
2021-07-12gcc 11.x fixesneedlefish_13.93.0needlefish/13.93.0marlin_12.93.0marlin_12.92.0marlin_12.91.0marlin_12.90.1marlin/12.93.0marlin/12.92.0marlin/12.91.0marlin/12.90.113.93.012.93.012.92.012.91.012.90.1Scott Murray1-1/+2
Changes for compiling with gcc 11.x: - g++ now seems to instantiate duplicate entries for the set member function in the contextclass template class in binding-wrap.hpp. The use of a closure as a default argument value seems to be the culprit, as it seems there are longstanding issues with respect to using closures like that and resulting symbol names (i.e. the use of a closure isn't necessarily recognized as generating unique instantiations). In theory, C++17 should explicitly allow this when the closure has no captures, but bumping up to -std=gnu++17 did not fix the issue. To avoid it, replace the closure usage with a private static member function. - In afb-hook.c, tweaked the ignoring of the writev return code to make the stricter checking in gcc 11 happy. - In decode_base64 in wrap-json.c, initialize u16 as gcc now seems to miss that it will be initialized on the first loop iteration. Bug-AGL: SPEC-3819 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I8876db196b46cc35ecd2798e20d5ec3425df865e
2020-05-06Fix includes of C++ headerjellyfish_9.99.1jellyfish/9.99.19.99.1José Bollo1-0/+1
The include of <string> was missing in the C++ header. This produced errors on some builds. Bug-AGL: SPEC-3358 Signed-off-by: José Bollo <jose.bollo@iot.bzh> Change-Id: I928e8ab267d27710177a7a314ea8b8cdfa83e2f3
2020-03-03Fix bug in C++ wrapperJose Bollo1-1/+1
Address of the function is much better than adress of the pointer in the stack. BUG-AGL: SPEC-3220 Change-Id: I860b66ac7b8581af5229201556333edcde1f089f Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
2020-02-12Improves compatibility with AddressSanitizersJosé Bollo1-0/+2
Address sanitizers is expecting shared objects loaded without the flag RTLD_DEEPBIND. This can be achieved by setting the environment variable AFB_NO_RTLD_DEEPBIND to the value 1 (exactly). This implies that the binder takes care of not clashing the namespaces by defining the symbol afbBindingV3root in both environment: the binder and the bindings. Bug-AGL: SPEC-3040 Bug-AGL: SPEC-3162 Signed-off-by: José Bollo <jose.bollo@iot.bzh> Change-Id: Ic064590178d4cf8b34b939e4c9ecd587668f71b8
2020-01-08Update copyright datesJosé Bollo34-34/+34
Signed-off-by: José Bollo <jose.bollo@iot.bzh> Change-Id: I01a566a693b8ec6239209c9323ae4ff15a07f737
2019-07-23afb-binding.h: Ensure json-c/json.h is sourcedJose Bollo1-1/+1
This is needed if we want to replace json-c with jsonfast. Bug-AGL: SPEC-2659 Signed-off-by: Jose Bollo <jose.bollo@iot.bzh> Change-Id: I32da71bd05bfe3538596cbf751d55ff45b4fe7f9
2019-07-12afb-xreq: Forbids (un)subscribes after replyJose Bollo2-0/+6
Allowing to subscribe to a request that was replied was possible and lead to problem revealed by issues SPEC-2542 and SPEC-2599 (these issues are more related to processing unordered incoming messages). The choice was - fix the bug and authorize (un)subscribe after reply - forbids to (un)subscribe after reply Second solution was chosen for its simplicity and its networking efficiency. Bug-AGL: SPEC-2542 Bug-AGL: SPEC-2599 Change-Id: I09f48b760b1fd6f70d42b80df3c8053696c45966 Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
2019-07-12afb-evt: send events in separate jobJose Bollo3-4/+7
Sending events in the context of the calling process had the consequence that the ordering of the messages had to be removed (see SPEC-2215 & SPEC-2219). This was not good by nature and lead to issues SPEC-2542 and SPEC-2599. Sending events in the context of the calling process also implies to delay the calling process. For this reasons, sending events is now done in an other jobs. For that reason, the count of allowed pending jobs is increased to 100 (was 50). Bug-AGL: SPEC-2215 Bug-AGL: SPEC-2219 Bug-AGL: SPEC-2542 Bug-AGL: SPEC-2599 Change-Id: I5b56d952cc187b65ad6eb9344ad74e5e8d3b7540 Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
2019-07-09Fix syntax error in a constexpr functionLoïc Collignon1-25/+7
The function declaration contains a syntax error that was somehow ignored but raise an error about an illegal cast in a constexpr function. Fixed this error and clean up a bit surrounding code to be more concise. Bug-AGL: SPEC-2615 Change-Id: I931b086c96b093b3de4465c51dfc3e865f7ece3b Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
2019-04-25doc: Improve comment on asynchronous callsJose Bollo2-1/+6
Following the remarks of fellow developers, the status of the object received by the callback function needs to be explained better. Change-Id: I0e6bcd51849bbc5af92af08675949a901bfd683e Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
2019-04-23binding-wrap: Rework of context handlingJose Bollo1-12/+48
The C++ wrapper for handling contexts has to be improved. This is a proposition of improvement. Change-Id: I7df36383f427d109356bdf4df573cba4b6e6ec05 Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
2019-04-17change style initialization of struct afb_authPhong Tran1-9/+9
This is for fixing warning: suggest braces around initialization of subobject [-Wmissing-braces] Change-Id: Id24d9bb09e46d59df7d043ed931e00bb5ec9469a Signed-off-by: Phong Tran <tranmanphong@gmail.com>
2019-03-11c++: Inherit of class afb::apiLoïc Collignon1-12/+9
Base the class afb::base_api_t on the raw wrapper class afb::api Change-Id: Idbc4786d548ffcb0062a85b686c196758e49823c Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
2019-03-11c++: Add the wrapper class 'afb::api'Loïc Collignon1-1/+155
New 'api' wrapper for 'afb_api_t' related functions. Change-Id: I695b65ff3d27b0ecc0f95f660a13b7a98fd92223 Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
2019-03-11c++: Reworked the event classLoïc Collignon1-8/+11
Added move semantic and remove invalidation method as it's not used anymore since we drop the support of APIv2. Change-Id: If53840010d6f24d410712915051386190f55b504 Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
2019-03-11c++: Fix multiple definition and castLoïc Collignon1-6/+3
The function was defined as many time as the header was included. Making it a weak function fix the issue. Also, a plain old C cast is required to make this constexpr valid. Change-Id: I278f376e00ec6728272df4fde8ca8984195dd533 Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
2019-03-11c++: Add verb initialisation for C++Jose Bollo1-0/+34
This new constexpr initialisation method accepts a callback receiving a afb::req instead of a afb_req_t. Change-Id: I752e670b5545a9d7956987984e725b468196a6e9 Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
2019-03-11c++: Fix a wrong callback versionLoïc Collignon1-1/+1
It used the legacy callback definition of apiv2 instead of the apiv3 one. Change-Id: Iab281131a923ae59cfbbb50cf72fd4a5c3f11d65 Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
2019-03-11c++: Drop support of binding APIv2Loïc Collignon1-87/+3
The C++ interface is currently used only in APIv3. Change-Id: Id1a3bca5dc8e69c1af229871e7f33192395230e7 Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
2019-03-11c++: Avoid relative path when including headersLoïc Collignon4-7/+8
Prefer the system path to include headers. Change-Id: I08a64e8d27808084ea4592988f36b7e5099a7fc6 Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
2019-03-11c++: New C++ API for bindingsLoïc Collignon4-1/+344
You can implement a C++ binding API by inheriting the templated base class 'base_api_t' and overriding the methods you want. At the same time, the c++ files are now located in in their own subdirectory: afb/c++ Change-Id: Ie02535961ec6b4b5ae21390cb520acb1fdc44c9e Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
2019-02-06Update copyright datehalibut_7.90.0halibut/7.90.07.90.0José Bollo32-32/+32
Change-Id: I3aaa92b2bfb01699ee8ae609272e93032b6f1a9d Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2019-01-04afb-binding-v3: Fix issues in includesJosé Bollo2-5/+6
Fix 1: afb_api_v3_verbose doesn't exist Fix 2: afb_api_vverbose isn't declared Fix 3: Ensure implicit cast of "api" and "req" Using presupposed knowledge of internals of afb_api_t and afb_req_t is bad when dealing with implicit conversion in C++ and is generally not the way to go. Change-Id: I2630faa5ea0ae315ca95e4fd6ed6ae1a0beb01a5 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2018-11-28Fix deprecation warnings for older GCC versionsguppy_6.99.2guppy/6.99.26.99.2Johann CAHIER1-2/+2
For some reason, SDK doesn't display warning when AFB_BINDING_VERSION is defined as 2. Using #warning instead of #pragma GCC warning fixes the display. Change-Id: I3c96b3630e0d1eac63b2fde72bdec3c7f3d1714a Signed-off-by: Johann CAHIER <johann.cahier@iot.bzh>
2018-08-20Provide functions afb_service_call[_sync]_legacyJose Bollo2-0/+4
These functions was missing and the documentation was erronous. This fixes that issue by providing the missing functions and updating the documentation. Bug-AGL: SPEC-1669 Change-Id: I543b0fbe29370be6f35f15ca3bfa48fef9ab4055 Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
2018-08-02Add ability to provide binding settingsJosé Bollo3-2/+25
Change-Id: Iab93a26340fa9743a58ca43cd903bbf31c783e5b Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
2018-07-27coverage: Improve coverage testJosé Bollo1-5/+5
The test now raise an overall coverage rate: lines......: 75.4% (8356 of 11080 lines) functions..: 80.4% (1094 of 1360 functions) Also Improve the documentation and improve parts of code. Change-Id: Ic2b8bc2f85d4181aa0b358a953f95cb105a0eed9 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2018-07-25Fix tiny documentation bugJose Bollo1-2/+2
Change-Id: Ib11160a8137480af92c450b65039b1272084f2d6 Signed-off-by: Jose Bollo <jose.bollo@iot.bzh>
2018-07-19Fix errors in migration to V3José Bollo2-3/+5
Fix a tiny error in the migration script and improve it. Fix declaration of afb_daemon_get... without args for binding V3 compatibility. Fix declaration of afb_api_event_handler_... Fix the correct URL to the sed script: valid: https://git.automotivelinux.org/src/app-framework-binder/plain/docs/migration-to-binding-v3.sed invalid: https://git.automotivelinux.org/src/app-framework-binder/tree/docs/migration-to-binding-v3.sed Bug-AGL: SPEC-1595 Change-Id: I245b20a9c14634a94c69420312afbd97628bc750 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2018-07-16afb-binding: Add missing declarationsJosé Bollo1-0/+2
The functions afb_api_set_verbs_v3 and afb_api_delete_api were missing. Change-Id: Icab928984dd6620b8b3920d0406aeb3cb35c9428 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2018-07-13afb-binding: Fix export of "class" handlingJosé Bollo1-0/+2
The functions afb_api_require_class and afb_api_provide_class weren't exported. This commit fix that oversight. Change-Id: Ica6532bd9e06aa9003a24ae7a54b05c64be7093b Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2018-07-04afb-req: Fix a bug in afb_req_verboseJosé Bollo1-1/+1
The newer version of afb_req_verbose was self recursive leading the crashes. Bug-AGL: SPEC-1561 Change-Id: I40959e5b72ca850712c27a505e77efea43aadabd Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2018-06-22Improve documentation of api v3José Bollo25-74/+287
The documentation is improved to reflect the new version. Tune the options Change-Id: I894c3db3bc0c10e89db66a9a51a9ad049bb8c0c4 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2018-06-15api-v3: First draftJosé Bollo40-2157/+4441
This commit introduces the bindings v3 API for bindings. The documentation has still to be improved and will come very soon. Change-Id: I8f9007370e29f671fdfd1da87fff7372a17db7af Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2018-06-13afb-eventid: Fix commentsJosé Bollo2-10/+16
Change-Id: I4ba49719a4776511d7f5448cd7fbf84caf7474e8 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2018-02-27Update date of copyright noticesJosé Bollo27-27/+27
Change-Id: If9d7e7728df086fbb7214f1de5cbec35cd2f1d9b Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2018-02-22xreq: export a function to get reqJosé Bollo2-11/+31
Change-Id: Ie7eac225f514349926341b7db61ea0eb9029c5d8 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2018-01-02afb-binding.hpp: Fix constexpr of 'binding'José Bollo1-1/+1
Change-Id: Icdee4029f11dcb6c0f75e945e0b411ea63654afe Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-11-03Add 'noconcurrency' when creating dynamic APIeel_4.99.2eel/4.99.24.99.2José Bollo5-4/+8
Change-Id: Ia108b23b9480bb32f27127ef00c18086fcf86752 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-11Update C++ interface for afb_req_get_uidJosé Bollo1-0/+7
Change-Id: I8c281417bd08b49ac708a7992cb46a074e74c979 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2017-10-10Add the function afb_req_get_uidJosé Bollo3-0/+25
Change-Id: I9caf38ee3811cf10b546489094f0bb5b3d844c40 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
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>