Alexey Rybalchenko
f42945b3a3
SDK: Allow passing path to DDSSession::SendCommand
2020-01-27 20:50:11 +01:00
Dennis Klein
9544de0647
SDK: Do not require r-value refs
...
I mistakenly thought they were forwarding refs.
2020-01-27 20:50:11 +01:00
Dennis Klein
f195eeac66
Silence warning: unused variable 'a' [-Wunused-variable]
2019-12-13 14:52:36 +01:00
Dennis Klein
50be386191
Support and require DDS 3.0
2019-12-13 14:52:36 +01:00
Alexey Rybalchenko
f31be6d7a1
Update to new DDS API, bump required version
2019-12-04 15:30:45 +01:00
Dennis Klein
f6e3183f45
SDK commands: Link shared flatbuffers if no static avail
2019-11-17 11:16:31 +01:00
Alexey Rybalchenko
c34d1f0946
Cleanup includes
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
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
Dennis Klein
47d9e282d4
SDK: Replace for loop with count_if
2019-09-17 11:34:46 +02:00
Alexey Rybalchenko
44bfbe02ed
SDK: optimize TryChangeStateCompletion
2019-09-16 16:02:47 +02:00
Alexey Rybalchenko
4b78c472b1
Add sdk:GroupByTaskId(TopologyState)
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
1c49dde668
SDK: Fix data races on the local semaphores
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
246e99a577
SDK: Fix exception specification
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
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
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
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
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
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
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