summaryrefslogtreecommitdiffstats
path: root/signal-composer-binding/source.cpp
AgeCommit message (Collapse)AuthorFilesLines
2019-04-11Git submodule migration to separated librariesRomain Forlot1-3/+3
Replace controller binder functions definition with the binder ones and remove the submodules in favor of the separated libraries. Bug-AGL: SPEC-2139 Change-Id: I06e5e7a03a918bf0ce139636104e1a73d2442a09 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2019-04-11Initializing the source structure.Romain Forlot1-0/+5
Make sure that all member's structure are initialized to zero to avoid unexpected behavior. Bug-AGL: SPEC-2312 Change-Id: I0e5c3f7c0d5382de92693660d9812daa6735039d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-11-23Use specific binder's event handlersguppy_6.99.2guppy/6.99.26.99.2Romain Forlot1-2/+81
Use specific binder's event handlers which allows you to bind a callback with an incoming event based on a pattern matching. This replace the global event listener and internal callback search algorythm which is now delegated to the binder. Clean unused constructor Bug-AGL: SPEC-1968 Change-Id: I4b22c003661189fb71498efc4d9021c1a54ae866 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-11-23Binding migration to v3guppy_6.99.1guppy/6.99.16.99.1Romain Forlot1-6/+3
Change-Id: I8a5bc18a0bf8ad05ce83b6ff64d4329d42bff2b0 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-09-27Handle errors on signal initializationRomain Forlot1-4/+26
This reports errors at signals getSignals action call and removed incorrect signals from the source. This allows the binding to correctly respond to the user if there was an error in its signal definitions. Change-Id: I7779ab9339a979fcb2b7b41f8ebf4aa27b8af3a1 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-25Improved performanceRomain Forlot1-1/+1
Before value was translated to a C type variable two times, at the reception then at the emission. Now it just receives and sends the signal value without translation nor interpretation except if you ask for an average, minimum or maximum value. Then in those cases it interprets the json to return you a value or an error if there is no numeric values to compute. Remove unneeded log message at event reception. Improved signal search engine, will search in source's signals map by the signal ID not the event name which lead to a more direct map match. Bugs-AGL: SPEC-1612 Depends-On: I43e79ed73a507ac2ca7ed4cdc3f16ec009392194 Change-Id: Ie253c3fe1e8cde42dabe8832da74e9f9bf442c14 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-23Adds a signal's metadata attributeflounder_5.99.2flounder/5.99.25.99.2Romain Forlot1-2/+2
This adds a signal's metadata attribute which lets you store any kind and number of metadata attributes to your signal. These metadata are just reissued at the event emission without alteration. Special case of "unit" attribute which is kept as a signal attribute and not as a metadata because it is an intrinsic signal attribute that all signals should have. Bug-AGL: SPEC-1419 Change-Id: I531b4012ac9b22f312a4ccebc1a07a8d93129403 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Update submodulesRomain Forlot1-1/+1
Submodule conf.d/app-templates 6e1a3c3..aa68dbd: > Don't overwrite the autobuild script if it exists > Disable the in-tree build method. > Detect Yocto as OS distribution > Fix: wrong compile options added > Fallback using zip format if no wgtpkg-pack found > 02-variables.cmake: Avoid checking CXX version if not required > config.cmake.sample: Remove dependency to libsystemd > config.cmake.sample: Remove dependency to libmicrohttpd > Added -D_FORTIFY_SOURCE=2 to CFLAGS > start-on-target: uses RSYNC_PREFIX path for config > Fixed spelling. > Improve OS detection > Fix: OS detection > Launch from workdir > Change closing that could fix native debugging Submodule ctl-utilities 0129510...1ff524b: > Change LUA package path at LUA interpreter load > Don't load two times a plugin even for LUA > Fixed hidden bound variable (apiHandle) > Fixed null value when push Lua arguments > Adjust to compile with incoming bindings v3 > Remove declaration to not existing functions > Add 2 lua utilities function > Update README.md for new metadata keys. > Fix a compilation issue due to modif of AFB_ReqSuccess > README:md: update README accordingly to new json scheme. > Fixed crash due to call to json_object_put > Fix segfault when printing long message from lua > Fixed spelling of AFB_ReqSuccess > Remove an unnecessary variable > Make parsing of action loading non blocking > Use an external file for app fw functions link > Use macro to test request validity > Fixed build warnings with gcc >= 7.3 > Increase lua script max message size > Prevent lost of config file path when searching > Correct way that api actions are handled in controller > Handle more metadata in the controller. > Add possibility to set prefix to NULL in CtlConfigScan > Fixed compilation warnings with gcc-7.2.0 > Add an external field to CtlConfigT > Make action item from a LUA action mandatory > Handle no prefix given > Good usage of strncat and strncpy > Update to the new JSON syntax > Detect failure at OnLoad action calls > Improve reliability and function calls > Correctly release request JSON object > Add AFB macros > Don't use assert in controller. > Change lua2c JSON syntax. > Search for Event section > Fix: changes key name. > Fix: arguments pointer NULL check > Fix wrong error message. > Simplify action definition > Fix: Dyn API Action loading procedure > Use new version of function GetBindingDirPath > Format > Merge changes from topic 'sandbox/claneys/wip' > Upgrade config schema > Fix: callback execution condition < Format < Fix: callback execution condition < New action loading function. < Upgrade config schema Adapt json config file to new syntax Fix: prefix now add the "-" so it'isn't needed to add it in the prefix at search (signal-composer.cpp) Fix: calling a api verb without json_object fails because of config arguments not retrieved. (sources.cpp) Change-Id: I48c1bca9fbac485e6a34b4645e683d9bdb1cbf2b Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2018-07-05Use signal subscription args if presentRomain Forlot1-3/+7
By default subscription argument request from signal are passed if present, else the one from the signal's source if present. If nothing is specified for sources then argument is set as a NULL pointer. Change-Id: I18db0a9922039f41d475cd08758a2afd4acaa9d4 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Avoid create duplicate source entries.Romain Forlot1-4/+18
Change-Id: If50a439634382fa6d1c856b5c3fb29db4eb93a31 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Load additionnals object at runtimeRomain Forlot1-18/+53
Later integrated in controller submodule Change-Id: I7d5c7431e60fc16cc2053747674fe4f14efd6a14 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Hold all contexts (plugin & source) in signalCtx_Romain Forlot1-2/+4
Keeping persistence between call data are kept in that member also subscription Action now use getSignals_ context and no more the signal one, this is more accurate and simples Change-Id: Idd7c56ba30f1daa9eaf9b99a7261d58189ef0bb2 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Avoid warning about deleting void* variableRomain Forlot1-1/+1
And replace free calls by delete because operator new was used. Change-Id: Ifb0d301b0a09dd83e3ad574c97e02bd8af072ae6 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Avoid mem leack, overwriting, initializing variable.Romain Forlot1-1/+3
Fix a memory squashing bug that segfault binder when loading directory searching for binding. Change-Id: Iedc6747d8ce49e7ff5fc2013bb7d03b5b553b89c Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Update and use latest ctl-utilities.Romain Forlot1-1/+1
Controller will now handle loading additional files from section. Context retrieving change a bit, now we have source context and plugin context. Update json unpacking and packing. Cleaning, format. Change-Id: Ie7a4721f6b703796a0dac1a236922427f4755dc5 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Migrate to ctl-utilities libraryRomain Forlot1-30/+21
New version of controller as a library. Loading additionnals files from each sections. Change-Id: I4f5e78d0baf9650cb8d1cc1da26f8e1fd73b792c Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14LUA lib and bin embedded in projectRomain Forlot1-0/+14
Change-Id: I1a61b49f55e4daa305800e754a14b6041aa81b34 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Inheritance of some signals parameters from sourceRomain Forlot1-2/+10
Stores sourceAPI as shared_ptr too. Change-Id: I2dcd919b3053f29812a9bece14feb4f620f23ce3 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Introduce retention setting in place of classRomain Forlot1-2/+2
Be able to tweak retention value for each signal in seconds Change-Id: I1cabe48a2660cdeb2e9b32b277e7c819c6b49bd9 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Enhance pointer manage and container browsingRomain Forlot1-18/+30
- SourceAPI now holds share_ptr of Signal - Signal are stored in a map<string,signal> that change way to browse the signals - subscribed property included in SourceAPI. - Clean old code - renaming struct SignalValue->signalValue Change-Id: Ic5c28296ddd7197c6562e12fbc91c504c1cc0b4d Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Finalize subscription to be a simple relay for nowRomain Forlot1-5/+5
Adding new object holding signals subscribed and afb event that observes Signals using Reactive response observer design pattern Change-Id: I96647d36e0d27c25a399c1b3789621a803a845b6 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Batch low-can subscriptionRomain Forlot1-0/+1
Change-Id: Ic1561e34d01be2b15618536fe6ef01066c184520 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Rename bindingApp to ComposerRomain Forlot1-1/+1
Change-Id: Ib3256f5c89197a91d2bbfca7a92774e91de6f664 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Find all signals that matches the searched patternRomain Forlot1-3/+5
Change-Id: Ia562fbd90aaeaa57c1c731d0f66dd31865db7e71 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Make LUA worksRomain Forlot1-1/+15
- Added LUA library at link - Make app-template crash build if a checked file fails - Fix old defined variable CONTROL_LUA_PATH to a default one in the binding data directory - Add an example with unit conversion made in LUA Change-Id: I1b4712bde32a38044ad6b14ebd38b6782fd01fe9 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Modification about conf definitionRomain Forlot1-16/+26
- Argument for each signal subscription. (getSignalsArgs) - differentiation between Signal as raw signal from another API and virtual signal depending upon other signals - changing way to specify function with uri that specify everythings that could be needed to invoke a function. Change-Id: I8917c5ae3c2c1e3fa48ddfdda41fc75eaba32bb7 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Subscription by plugin to signalsRomain Forlot1-3/+23
Change-Id: Icb923f87df2be8eb664106bc9077b3a8221dd3ce Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Attach and recursion check workingRomain Forlot1-5/+14
Change-Id: I2f9509d4b6aa63a16df8db2187810337fd802ef4 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
2017-12-14Progression on config parsing.Romain Forlot1-0/+42
Change-Id: Idd8d8987ccabef381f6d79c1d508930a2d4bae3c Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>