Alexey Rybalchenko
0f4595b8c1
Remove TransitionTo from plugin APIs
2019-12-03 15:44:25 +01:00
Alexey Rybalchenko
b0b271d1f4
DDS plugin: remove static mode
2019-12-03 15:44:25 +01:00
Alexey Rybalchenko
073f5e5c0e
Fix regression in the DDS plugin shutdown handling
2019-11-20 14:07:44 +01:00
Dennis Klein
f6e3183f45
SDK commands: Link shared flatbuffers if no static avail
2019-11-17 11:16:31 +01:00
Alexey Rybalchenko
9d30ff25c2
Remove deprecated methods
2019-11-15 14:36:27 +01:00
Alexey Rybalchenko
2ac8f98178
Shm monitor: fix startup race and enable view-only mode
2019-11-13 16:16:16 +01:00
Alexey Rybalchenko
2c6f436858
Fix shmmonitor daemonization
2019-10-29 20:06:31 +01:00
Alexey Rybalchenko
88dbcbe4fd
Formatting, some refactoring
2019-10-29 20:06:31 +01:00
Alexey Rybalchenko
85a3a254d4
Shmem: Fix handling of empty message parts
2019-10-29 20:06:31 +01:00
Alexey Rybalchenko
c34d1f0946
Cleanup includes
2019-10-29 20:06:31 +01:00
Alexey Rybalchenko
160ee9d064
Add safety check in shmem region location
2019-10-29 20:06:31 +01:00
Alexey Rybalchenko
72a8e9b33c
Commands: support JSON in addition to binary
2019-10-10 10:55:20 +02:00
Dennis Klein
caeee626a3
PMIx plugin: Add barriers and fix lookup of multiple keys
2019-10-07 14:07:27 +02:00
Dennis Klein
e1134321dd
PMIx: Support integer values
2019-10-07 14:07:27 +02:00
Alexey Rybalchenko
1c1509af3e
Use new commands format in dds command UI
2019-09-30 12:18:49 +02:00
Alexey Rybalchenko
a53e95b5f6
Add flatbuffers-based command format to SDK/plugin
2019-09-30 12:18:49 +02:00
Alexey Rybalchenko
b9720e5269
Update Topology.h
2019-09-19 15:45:28 +02:00
Alexey Rybalchenko
d64169a163
SDK: optimize container access
2019-09-18 18:06:46 +02:00
Alexey Rybalchenko
37c8041997
Add missing include
2019-09-18 18:06:46 +02:00
Alexey Rybalchenko
d8d293302d
Remove unused includes
2019-09-18 18:06:46 +02:00
Alexey Rybalchenko
9544d9665b
DDS plugin: Prefix channel properties
2019-09-18 18:06:46 +02:00
Dennis Klein
47d9e282d4
SDK: Replace for loop with count_if
2019-09-17 11:34:46 +02:00
Alexey Rybalchenko
dc72262af1
DDS Plugin: reset channel containers before filling
2019-09-16 16:02:47 +02:00
Alexey Rybalchenko
44bfbe02ed
SDK: optimize TryChangeStateCompletion
2019-09-16 16:02:47 +02:00
Dennis Klein
924320a0ac
DDS plugin: Move Boost dependency to intended target
2019-09-13 15:00:14 +02:00
Dennis Klein
e3890a4033
DDS plugin: Do not block the DDS KeyValue callback
2019-09-13 14:53:42 +02:00
Alexey Rybalchenko
4b78c472b1
Add sdk:GroupByTaskId(TopologyState)
2019-09-05 21:59:37 +02:00
Alexey Rybalchenko
92112c812f
Handle InitializingDevice in the ShutdownSequence
2019-09-05 21:59:37 +02:00
Alexey Rybalchenko
acbf57d6f3
Add sdk::GroupByCollectionId(TopologyState)
2019-09-05 21:59:37 +02:00
Alexey Rybalchenko
e1b6b804bd
sdk: Add DDSTopology::GetCollections() and extend DDSTask
2019-09-05 21:59:37 +02:00
Alexey Rybalchenko
456b65871a
sdk: Add DDSCollection class
2019-09-05 21:59:37 +02:00
Dennis Klein
8a2c7fb601
DDS plugin: Wait for IDLE->EXITING state-change to be acknowledged
...
Sometimes devices shut down too fast when entering the EXITING state so
that the publication of that state-change will never be sent. The plugin
now waits for an acknowledgement by the external controller with a
configurable timeout.
2019-09-04 21:17:35 +02:00
Dennis Klein
c1a17c97b8
SDK: Add getter for agent path
2019-09-04 21:17:35 +02:00
Dennis Klein
ac8825c8de
SDK: Update convenience header
2019-09-04 21:17:35 +02:00
Dennis Klein
1c49dde668
SDK: Fix data races on the local semaphores
2019-09-04 21:17:35 +02:00
Dennis Klein
5d6184cd1a
Tools: Add a copyable SharedSemaphore
2019-09-04 21:17:35 +02:00
Dennis Klein
5b47df3014
SDK: Fix race condition which lead to frequent segfaults on destruction
2019-09-04 21:17:35 +02:00
Dennis Klein
fd77f2b729
SDK: Add usage examples (and tests)
2019-09-04 21:17:35 +02:00
Dennis Klein
6275f4d267
fairmq: Remove obsolete functions
2019-09-04 21:17:35 +02:00
Dennis Klein
246e99a577
SDK: Fix exception specification
2019-09-04 21:17:35 +02:00
Dennis Klein
0d182dc18f
fairmq: Fix -Wdefaulted-function-deleted
2019-09-04 21:17:35 +02:00
Dennis Klein
7a0d348bd4
SDK: Implement Topology with asio-compliant async interface
2019-09-04 21:17:35 +02:00
Dennis Klein
3cd6d8cfca
SDK: Refactor out DDSTask
2019-09-04 21:17:35 +02:00
Dennis Klein
0f50abf3d9
SDK: Fix completion signature and catch completion exceptions
2019-09-04 21:17:35 +02:00
Dennis Klein
25539e99f2
SDK: Introduce fairmq error category
2019-09-04 21:17:35 +02:00
Dennis Klein
f73a6d71ed
CMake: Do not use git version in install tree
2019-09-04 21:17:35 +02:00
Dennis Klein
73af0ed78b
SDK: Implement asio-compliant asynchronous operation helpers
2019-09-04 21:17:35 +02:00
Dennis Klein
1dec059104
SDK: Require C++14, CMake 3.11 and bundle asio 1.13.0
...
Decouple from Boost distro to be able to use
newest releases and rely on std::error_code only.
2019-09-04 21:17:35 +02:00
Dennis Klein
8d12b908b6
SDK: Implement helper to find most recent running DDS session
2019-09-04 21:17:35 +02:00
Alexey Rybalchenko
eaa8f5cbdd
SDK: Require DDS 2.5.36 and support new Tools API
2019-08-13 20:04:05 +02:00
Alexey Rybalchenko
8feffe70ba
Topology: Use DDSTask type, remove unused member
2019-08-12 16:22:39 +02:00
Dennis Klein
1bb77bf47b
DDS plugin: Automatically set session and device id if not provided
...
Resolves #187
2019-07-29 09:22:02 +02:00
Dennis Klein
9cbccface7
DDS plugin: Synchronize FillChannelContainers and DDSKeyValue updates
...
This was a regression after introducing external control mode in f7cdf5e
.
2019-07-29 09:22:02 +02:00
Dennis Klein
7b773cde51
SDK: Improve error handling in case state-change fails on a device
...
Replace the log message with
1. Nothing, if the device is already in the target state
2. Abort and call the completion callback with error otherwise
2019-07-29 09:22:02 +02:00
Dennis Klein
fd282fa950
SDK: Track channel to task id association
2019-07-29 09:22:02 +02:00
Dennis Klein
008be36125
PluginServices: Do not throw if device control cannot be released
2019-07-29 09:22:02 +02:00
Dennis Klein
98aeb16dc7
SDK: Adapt to new DDS plugin external mode
2019-07-26 14:55:32 +02:00
Dennis Klein
6c07920fc6
DDS plugin: Adapt command ui to changes in DDS plugin
...
* Add COMPLETE INIT support
* Add -n option, shall be replaced with inspecting DDS topo spec in the
future
* Update DDS example to work again
2019-07-26 14:55:32 +02:00
Dennis Klein
b54df715ea
DDS plugin: Do not auto-transition after Initializing
2019-07-26 14:55:32 +02:00
Dennis Klein
f7cdf5ee23
DDS plugin: Implement --control external
2019-07-26 14:55:32 +02:00
Dennis Klein
6208cbb508
SDK: Initialize members
2019-07-25 14:43:39 +02:00
Dennis Klein
377eaf2bb8
SDK: Implement error handling for RequestCommanderInfo
2019-07-25 14:42:57 +02:00
Dennis Klein
363576496d
SDK: Pass CSession as shared ptr
...
Even though it is copyable the copy does not work.
2019-07-25 14:42:44 +02:00
Dennis Klein
5ab328b01f
SDK: Add ctors to adopt existing DDS API objects
2019-07-25 10:40:31 +02:00
Alexey Rybalchenko
ac8cd19915
SDK: wait for devices to be in running
2019-07-24 16:42:36 +02:00
Alexey Rybalchenko
5d535163f1
SDK: Add test for timeout, concurrent call. Implement TODOs
2019-07-24 15:47:20 +02:00
Dennis Klein
dc55272317
SDK: Implement WaitForExecutingAgents
...
* Require DDS 2.5.22
* Apply in meaningful places
* Adapt test fixture
2019-07-24 14:54:21 +02:00
Dennis Klein
388b1be056
SDK: Make GetDeviceList implementation more readable
2019-07-24 10:48:19 +02:00
Dennis Klein
d70a203449
SDK: Add sync ChangeState and add msg to its result
2019-07-24 10:41:08 +02:00
Dennis Klein
a93840b240
SDK: Implement WaitForIdleAgents and CommanderInfoRequest
2019-07-24 10:37:58 +02:00
Dennis Klein
bc98ab1eed
SDK: Fix CTopology member init and remove separate init step again
2019-07-24 10:34:10 +02:00
Dennis Klein
de4fca177e
SDK: Require DDS 2.5.20
...
* Use the new interface: CTopology::getName
* Enhance Example.DDS
2019-07-24 10:28:32 +02:00
Alexey Rybalchenko
7d1ee82c6b
Add timeout test, disable for now
2019-07-23 16:08:15 +02:00
Alexey Rybalchenko
be022cfab8
Fix SDK topology shutdown to include unsubscribe
2019-07-23 16:08:15 +02:00
Alexey Rybalchenko
8789664cfd
First working version of SDK ChangeState
2019-07-23 16:08:15 +02:00
Alexey Rybalchenko
cf26dd6aa7
Testing the double subscription
2019-07-23 16:08:15 +02:00
Dennis Klein
18dc536f3d
(WIP) SDK: Implement Topology::ChangeState
2019-07-23 16:08:15 +02:00
Dennis Klein
499ffcd300
Fix various clang-tidy warnings
2019-07-23 16:08:15 +02:00
Dennis Klein
152c8431c6
SDK: Let DDSEnvironment manage $LD_LIBRARY_PATH
...
* Remove configurable install prefix
* Add singleton
2019-07-23 16:08:15 +02:00
Dennis Klein
5a7bf68c8c
SDK: Do not always stop the session on destruction
2019-07-23 16:08:15 +02:00
Dennis Klein
7aa95fcd93
SDK: Have DDSSession manage $DDS_SESSION_ID
2019-07-23 16:08:15 +02:00
Dennis Klein
a9b4788756
SDK: Forward declare types where possible
2019-07-23 16:08:15 +02:00
Dennis Klein
eb9dcdd1f9
SDK: Fix installation of <fairmq/sdk/DDSInfo.h>
2019-07-23 16:08:15 +02:00
Dennis Klein
3f655e330b
SDK: Add convenience header <fairmq/SDK.h>
2019-07-23 16:08:15 +02:00
Dennis Klein
b5da31498d
Tools: Add InstanceLimiter utility
2019-07-23 16:08:15 +02:00
Dennis Klein
44da054e78
SDK: Implement Topology ctor
2019-07-23 16:08:15 +02:00
Dennis Klein
cfcdd666bf
SDK: Implement DDS helpers
2019-07-23 16:08:15 +02:00
Dennis Klein
90496c89fe
Test: Add new testsuite SDK
2019-07-23 16:08:15 +02:00
Dennis Klein
1a93da5be0
SDK: Remove Session stub
2019-07-23 16:08:15 +02:00
Dennis Klein
99ed61a58b
Tools: Introduce semaphore
2019-07-23 16:08:15 +02:00
Alexey Rybalchenko
6e353d78b1
Remove -S from dds example topology file
2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
f515eb1100
Extract state queue into own class. Use in device, plugins
2019-07-19 14:45:27 +02: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
857ef0c9d3
Formatting
2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
63c02657c1
Fix SHUTDOWN & STARTUP listed as a transition in plugin
2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
5256e7c580
Add support and test for concurrent TransitionTo
2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
74d301a16f
Implement Device::TransitionTo() and test it
2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
07f7142ae2
Rebased, cleaned up
2019-07-19 14:45:27 +02:00
Dennis Klein
7c185ac4a5
Search plugins in system directories and LD_LIBRARY_PATH
...
Fixes #133
2019-07-19 14:45:27 +02:00
Dennis Klein
14980d7486
Implement old_state->new_state notifications
2019-07-19 14:45:27 +02:00
Dennis Klein
d966a0a991
Handle some edge cases
2019-07-19 14:45:27 +02:00
Dennis Klein
66c01f2cda
Introduce wait mode
...
Allows for fairmq-dds-command-ui to block until a certain device state
(-w) or a timeout (-t) is reached. If multiple devices are addressed (-p),
the command blocks until all of them reached the given state.
2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
2150257c1d
Extend configuration docs
2019-07-11 18:58:46 +02:00
Alexey Rybalchenko
8be2fd33f4
Refactor some device code for better readability
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
48e04b636b
Initialize initialization timeout in InitWrapper()
2019-07-11 18:58:46 +02:00
Alexey Rybalchenko
937c9e8921
Clear channels & transports containers in Reset()
2019-07-11 18:58:46 +02:00
Alexey Rybalchenko
5c943bbedb
Add debug output
2019-07-11 18:58:46 +02:00
Alexey Rybalchenko
418d42b060
Fix WaitForState(string stateName)
2019-07-11 11:07:16 +02:00
Dennis Klein
12f05355d3
ProgOptions: Fix minor things
2019-07-10 19:35:18 +02:00
Dennis Klein
69268eecfb
Tools: Fix various clang-tidy warnings
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
daed714146
Fix CMake after rebase
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
4cefb9fb5b
Add tests for property conversions and subscriptions
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
7486249c1e
Declare operator<< for boost::any in boost namespace
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
7c13503e22
Include definitions of constexpr members in cxx
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
3db32b03d4
only allow a-z A-Z 0-9 - _ [ ] # as channel name characters
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
7bea2bc0e6
Add PluginServices::DeleteProperty, test for property accessors
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
5271d4236e
Add additional test for running device with plugins without DeviceRunner
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
4281d7b27e
Subscribe DeviceRunner for config properties
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
7c9744760e
Add UpdateProperty/ies()
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
b905f517cc
Fix PropertyHelper::AddType() to include event emitter creation
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
c515cbb3bf
Update config documentation
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
bf8ec968e7
Remove FairMQChannel from parser, implement bulk operations
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
fbb003b50f
FairMQChannel: defaults values, copy-ability
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
4ce378b6b8
Add DeleteProperty
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
29313bbec3
Add SetProperties()
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
fe241fe9ee
Add *Property methods to replace *Value methods, simplify options helper
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
5646d531f3
Add GetProperties()
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
f46803a8b6
Remove unused methods from FairMQProgOptions
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
3538d9f410
Deprecate Channel::GetChannelX() in favor of Channel::GetX()
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
73ccefa4cb
Remove deprecated *Async() methods
2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
0e35f1cb22
Shmem region: support huge pages via path to hugetlbfs mount
2019-07-05 15:58:28 +02:00
Dennis Klein
a8c76accdc
Split StateMachine and Tools into separate targets
...
This change is needed to share the functionality between
the core library and the SDK library. We want to support building/installing
just the SDK without having a dependency on the core library which adds
additional dependencies.
2019-07-02 21:30:37 +02:00
Dennis Klein
3da5f4d5db
SDK: Add CMake skeleton
...
* New build flag BUILD_SDK
* New component "sdk"
2019-07-02 21:30:37 +02:00
Dennis Klein
3358a2ba12
Require DDS 2.4
...
* Remove obsolete FindDDS.cmake
* Adapt to new DDS version
2019-06-26 18:39:12 +02:00
Dennis Klein
56dc91ab87
Update year
2019-06-13 18:04:44 +02:00
Dennis Klein
99c8d33191
DDS plugin: Remove unused dependency
2019-06-13 17:47:47 +02:00
Gvozden Neskovic
40f6db430a
Print channel name in error log
2019-06-01 06:20:39 +02:00
Gvozden Neskovic
2ed2177555
Batch Region ack messages
...
Reduce CPU utilization by batching release ack messages on the IPC queue.
2019-05-14 14:56:08 +02:00
Gvozden Neskovic
9b326c7a71
add array variant of fair::mq::tools::make_unique()
2019-05-14 14:56:08 +02:00
Alexey Rybalchenko
9b4c5deb0b
Handle invalid transition to init in the control plugin
2019-05-07 16:28:55 +02:00
Alexey Rybalchenko
7b16c33ccd
Allow PluginServices::SetProperty in Ready state
2019-05-07 15:51:59 +02:00
Alexey Rybalchenko
7e6eb382d5
Extend Readout example
2019-04-29 20:32:38 +02:00
Alexey Rybalchenko
35399ee039
Update state machine picture
2019-04-29 20:32:37 +02:00
Alexey Rybalchenko
2cc1117637
Notify all listeners on state changes
2019-04-29 20:32:37 +02:00
Dennis Klein
3582091b1c
Add experimental static size mode for ofi transport
...
Whenever --ofi-size-hint > 0, the ofi transport does not use the control
band. Multipart is not supported.
2019-04-29 20:28:40 +02:00
Dennis Klein
54b7742d85
Drop obsolete dependency to AZMQ
2019-03-21 18:03:32 +01:00
Dennis Klein
195644f132
Add some debug output
2019-03-21 18:03:32 +01:00