Alexey Rybalchenko
c34d1f0946
Cleanup includes
2019-10-29 20:06:31 +01:00
Alexey Rybalchenko
4487b81de8
Extract States & Transitions to own header, use in plugins
2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
8bb6a9518a
Use TransitionTo in Plugins
2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
2150257c1d
Extend configuration docs
2019-07-11 18:58:46 +02:00
Alexey Rybalchenko
26fe5e2bd8
Move PropertyNotFound handling to ProgOptions
2019-07-11 18:58:46 +02:00
Alexey Rybalchenko
7bea2bc0e6
Add PluginServices::DeleteProperty, test for property accessors
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
7c9744760e
Add UpdateProperty/ies()
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
cba6d19781
Add config plugin class.
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
7b16c33ccd
Allow PluginServices::SetProperty in Ready state
2019-05-07 15:51:59 +02:00
Alexey Rybalchenko
fc94342db8
Update state machine
...
- Split INITIALIZING state into Init+Bind+Connect
- Remove PAUSE state
- Convert state/transitions to enum classes (CamelCase)
- Transition to a state only once previous handler is complete
- Add CompleteInit transition to notify Initializing state
that config updates are complete
- Deprecate WaitForEndOfState(transition) in favor of
WaitForState(state)/WaitForNextState()
- Update tests/plugins to new APIs
- Deprecate CheckCurrentState() in favor of NewStatePending()
2019-02-25 12:19:50 +01:00
Dennis Klein
5e4876c947
Allow plugins to create channels
...
This also fixes a bug, that prevented the usage of custom types with the
plugin config API.
2018-10-31 15:42:04 +01:00
Dennis Klein
1aab354a5d
Resolve hanging process in case of uncaught exception
2018-10-10 19:35:18 +02:00
Alexey Rybalchenko
ef3eb5f83e
Simplify structure in DeviceRunner and plugin classes
2018-08-08 16:13:41 +02:00
Alexey Rybalchenko
ee8afd7d2b
Fix race in plugin manager/services
2018-08-08 16:13:41 +02:00
Alexey Rybalchenko
a53ef79552
Run state handlers on the main thread (breaking change for control).
2018-08-08 16:13:41 +02:00
Alexey Rybalchenko
436f79bee5
Control plugin: add ability to switch log levels interactively
2018-05-17 10:30:18 +02:00
Alexey Rybalchenko
95112dac02
add CountProperty() to plugin APIs, throw is GetProperty doesn't find key
2018-03-22 14:10:48 +01:00
Dennis Klein
378c47c5e5
FairMQ: Implement config API for string subscriptions
...
This API auto converts property values to strings and allows a more
convenient one catches all subscription.
2017-11-17 16:24:29 +01:00
Dennis Klein
7f23a70670
FairMQ: Implement property change event config API
...
Replaced the old event manager implementation, which changed the
subscription semantics to bulk event subscriptions.
2017-10-05 15:32:12 +02:00
Dennis Klein
8c8ee45914
FairMQ: Implement GetPropertyKeys config API
2017-10-05 15:32:12 +02:00
Dennis Klein
6ecd0e9085
FairMQ: Rewrite event manager to support multiple subscribers
2017-10-05 15:32:12 +02:00
Dennis Klein
44a59f25a7
FairMQ: Move --catch-signals logic to control plugin
...
* Add StealDeviceControl() API to plugin services
2017-10-05 15:32:12 +02:00
Alexey Rybalchenko
01327426c3
Port DDS plugin to the new plugin system.
2017-10-05 15:32:12 +02:00
Alexey Rybalchenko
2db114bc5c
Eliminate warnings in FairLink and FairMQ Plugins.
2017-10-05 15:32:12 +02:00
Alexey Rybalchenko
334b91785b
FairMQ: Move static and interactive control modes to plugin (2)
2017-10-05 15:32:12 +02:00
Dennis Klein
2af3ae99eb
FairMQ: Implement Take/ReleaseDeviceControl plugin API
...
The main function of this API is to make sure only one plugin is
controlling the device state transitions at a time. The
ReleaseDeviceControl() signal is used to implement a function
WaitForPluginsToReleaseDeviceControl() which is used to block the main
thread if a control plugin is used.
2017-10-05 15:32:12 +02:00
Dennis Klein
052ac8487d
FairMQ: Add static plugin mechanism
...
* Add skeleton for Take/ReleaseControl API
* Add skeleton for control_static builtin plugin
2017-10-05 15:32:12 +02:00
Dennis Klein
a26925cbf5
FairMQ: Fix various errors from CI
...
* move Plugins::Version to fair::mq::tools
* fix Parser interface
* make device a shared pointer in main
* provide std::hash template specialization
* fix FairMQ.Plugins/FairMQ.PluginsStatic when run with ctest
* fix MQ/serialization example
* add --no-as-needed flag
* GCC 4 does not support member refs, move to pointer types
2017-07-04 07:05:11 +02:00
Dennis Klein
ad0f050c99
FairMQ: Implement PluginServices - Config
2017-07-04 07:05:11 +02:00
Dennis Klein
739460b2fe
FairMQ: Implement PluginServices - Control
2017-07-04 07:05:11 +02:00
Dennis Klein
9b61b924b2
FairMQ: Integration of Plugins through PluginServices
2017-07-04 07:05:11 +02:00