Alexey Rybalchenko
bb1ce794b6
Let single message methods also return int64_t
2020-11-17 14:04:20 +01:00
Dennis Klein
9e2373b55d
extern/asio: Bump to 1.18.0
2020-11-13 15:55:52 +01:00
Alexey Rybalchenko
e39d17d09e
Apply suggestions from -Wrange-loop-analysis
2020-11-13 02:58:09 +01:00
Alexey Rybalchenko
a14502242f
DDS command UI: return EXIT_FAILURE on errors
2020-11-13 02:58:09 +01:00
Alexey Rybalchenko
d3697ec97b
SDK: add WaitForPublisherCount() and related ctor arg
2020-11-13 02:58:09 +01:00
Alexey Rybalchenko
49d8a1b4dd
DeviceRunner: Set log severity only if one was provided
2020-10-19 10:23:08 +02:00
Alexey Rybalchenko
f14f507584
SDK: Remove instance limit from DDSSession
2020-10-09 13:35:55 +02:00
Alexey Rybalchenko
8dd0b25c06
Make BasicTopology actually movable
2020-10-09 13:35:55 +02:00
Alexey Rybalchenko
0e5978b160
Properties: add output support for shorts
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
71b1866d7b
small includes cleanup
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
6699711e17
FairMQChannel: Refactor, moving short methods to header
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
120760da0a
FairMQChannel: avoid copy when iterating over endpoints
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
d03a504ccd
shmem: fail earlier if given an unsupported socket type
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
cf004f69b2
FairMQChannel: replace ResetChannel() with Invalidate()
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
cfa18ccfce
FairMQChannel: remove artifacts from no longer used optimizations
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
e332e20dbd
Remove thread-safety from channel methods
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
3ab10ced7a
FairMQChannel: remove deprecated methods
2020-10-06 16:17:37 +02:00
Alexey Rybalchenko
1b30f3ac14
Update return types in ofi::Socket
2020-09-23 09:29:57 +02:00
Alexey Rybalchenko
35c7959c53
Workaround Cpp17MoveInsertable issue on xcode 12
2020-09-22 05:33:29 +02:00
Alexey Rybalchenko
5ea8ffeb34
Update command format in PMIx plugin
2020-09-17 14:22:03 +02:00
Dennis Klein
0f5e1b6815
Tests.SDK: Reduce timeout by factor 1000 because new machines can be fast enough to complete within 1ms
2020-09-16 15:43:58 +02:00
Alexey Rybalchenko
6932f88c84
Adjust transfer methods behaviour when interrupted
...
A transer is attempted even if the transport has been interrupted
(with a timeout). When the timeout is reached, transfer methods will
return TransferResult::interrupted (-3).
2020-09-16 15:43:58 +02:00
Alexey Rybalchenko
5e97d85956
Cleanup includes
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
fdbf289364
Update monitor & debug tools for multiple segments
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
266843cda5
Shm: initial multiple segments support
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
b126ede45a
Shm: Verbosity switch for Cleanup methods
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
12e6a874db
Remove built-in devices from the main lib
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
73109fe6d3
Shm: configurable allocation strategy
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
3b2d2a0ac8
Shm: Refactor to localize segment access
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
72a45f78b3
Shm: Add Monitor::GetDebugInfo()
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
b63f31d0e0
Shm: Provide debug infos only in debug mode
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
70a583d08d
Shm: Provide segment/msg debug infos
2020-09-08 16:56:35 +02:00
Alexey Rybalchenko
fe9b87e4e2
Improve error reporting in SDK/fairmq-dds-command-ui
2020-09-07 12:52:43 +02:00
Alexey Rybalchenko
2ac27905e7
Move fairmq-dds-command-ui to SDK
2020-09-03 17:34:05 +02:00
Alexey Rybalchenko
690e8a0370
Retry on EINTR in blocking zmq calls
2020-08-28 18:22:03 +02:00
Alexey Rybalchenko
62ed4e5f80
Avoid unconditional call to now() when allocating message
2020-08-13 14:16:12 +02:00
neskovic@gmail.com
f1d6b18668
Message counter: use relaxed/acquire memory ordering
2020-08-13 11:49:55 +02:00
Alexey Rybalchenko
c0153a6b55
shmMonitor: Adjust output slightly
2020-08-07 14:27:14 +02:00
Alexey Rybalchenko
86a1dd38a2
ShmMonitor: Use FairLogger for timestamp calculation
2020-08-07 14:27:14 +02:00
Alexey Rybalchenko
b0f73017e2
shmmonitor: add output with -v (non-interactive)
2020-08-06 12:24:01 +02:00
Alexey Rybalchenko
b83655d5da
MessageBadAlloc: report amount of available memory
2020-08-06 12:24:01 +02:00
Alexey Rybalchenko
9c27051cdc
BenchmarkSampler: add alignment parameter
2020-08-06 12:24:01 +02:00
Alexey Rybalchenko
65f9519917
Add error handling for mlock
2020-08-06 12:24:01 +02:00
Alexey Rybalchenko
b5545c1575
Add helpers for AggregatedTopologyState
2020-07-17 12:41:53 +02:00
Alexey Rybalchenko
3eca8e9def
Add test for shm transport options
2020-07-15 13:59:53 +02:00
Alexey Rybalchenko
beb7766fca
Shm: add options to zero and/or mlock the segment
2020-07-15 13:59:53 +02:00
Giulio Eulisse
bf909f94dc
ofi: adapt to the new API for FairMQSocket::Events
2020-07-15 13:58:47 +02:00
Dennis Klein
1140c4c6ab
SDK: Provide comparison operator for device and topo states
2020-07-15 13:01:23 +02:00
Alexey Rybalchenko
a6da208e79
Add Undefined and Mixed state for use in SDK
2020-07-15 13:01:23 +02:00
Giulio Eulisse
ba3a82b1df
Update FairMQSocket.h
2020-07-15 12:09:54 +02:00
Giulio Eulisse
e8cc104344
Add API to extract ZMQ_EVENTS from socket backend
2020-07-15 12:09:54 +02:00
Alexey Rybalchenko
5a7dcd9fc1
SDK: warn if given path translates to no selected tasks
2020-07-09 23:34:28 +02:00
Alexey Rybalchenko
78b1c188bf
Shm: report correct size when opening segment
2020-06-30 20:58:53 +02:00
Alexey Rybalchenko
66bc7ba762
Remove useless variable
2020-06-30 20:58:53 +02:00
Alexey Rybalchenko
88bc1f7a06
Shm: throw if requested message size exceeds total segment size
2020-06-30 20:58:53 +02:00
Alexey Rybalchenko
f70201610b
Do not attemp to find random port for non-TCP protocols
2020-06-30 20:58:53 +02:00
Alexey Rybalchenko
8125489776
Handle out_of_range when locating RegionInfo
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
6dd0a44308
Make shmid an 8-digit hex number
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
afe2dcaa02
BenchmarkSampler: add memset option
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
aeab9e5407
Socket.h: refactor to reduce duplicate code
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
539e5602a6
Expose fair::mq::shmem::Monitor::Cleanup() API
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
f885b4618e
Optimize unmanaged region ReceiveAcks
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
3364da9541
Add linger setting for unmanaged region
2020-06-29 14:44:49 +02:00
Alexey Rybalchenko
79489bb501
Add missing includes
2020-06-10 13:55:15 +02:00
Alexey Rybalchenko
79ca436b74
Zmq: let GetData of an empty message return nullptr
2020-06-05 18:16:13 +02:00
Alexey Rybalchenko
36d4f3c937
Use SHA2 instead of boost::hash to generate shmem id
2020-06-05 18:16:13 +02:00
Alexey Rybalchenko
bdf895ae9e
Add PicoSHA2 dependency
2020-06-05 18:16:13 +02:00
Giulio Eulisse
dd47b34e06
Add ability to retrieve ZMQ_FD
2020-06-03 19:44:00 +02:00
Alexey Rybalchenko
a59c902c74
MemoryResource: propagate alignment
2020-06-03 19:41:40 +02:00
Alexey Rybalchenko
dabc48c21a
Shm: fix incorrect ptr range check
2020-05-29 23:34:27 +02:00
Alexey Rybalchenko
236d5a8608
Let default shm segm size be multiple of page size
...
To allow potential optimizations (e.g. huge pages)
2020-05-28 17:23:18 +02:00
Alexey Rybalchenko
5008fa4732
Fix regression in handling unregistered options
2020-05-28 17:23:18 +02:00
Alexey Rybalchenko
b5bb476b0d
Adjust program options style to disallow guessing
2020-05-25 14:03:12 +02:00
Giulio Eulisse
ea7ae04025
Adapt to requests by @rbx
2020-05-25 08:36:57 +02:00
Giulio Eulisse
02692e7002
Initiate termination process on SIGTERM as well
2020-05-25 08:36:57 +02:00
Alexey Rybalchenko
53a4d17f8b
Alignment part I - Interface and shmem send
2020-05-20 19:34:27 +02:00
Giulio Eulisse
20544e1f18
Do not handle double SIGTERM as abort
...
A double SIGTERM, or even worse a SIGINT + SIGTERM combination should
not result in an abort, given such a signal really means "die whenever
you want" and can only be generated programmatically. If one wants the
child to die programmatically, they should use SIGKILL.
On the other hand that bashing ctrl-c (i.e. SIGINT) multiple times
on the keyboard really means abort.
2020-05-20 12:14:18 +02:00
Alexey Rybalchenko
0d03c76a75
Shm: throw on bad_alloc, option to disable
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
2916a491b9
Format
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
b56e32eb11
Replace exit()s with exceptions
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
4b516de81a
Minor formatting
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
361fb0cba5
Zmq: refactor to use namespaces
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
df574c6466
Zmq: header only
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
dbdabd23a4
Zmq: remove global (static) state, refactor
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
ccbf0be572
Shmem: refactor, clean includes, make header only
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
7a67719a3c
Remove useless members
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
f4a54ff550
Minor refactoring
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
d22023bcb5
Implement bulk callbacks for unmanaged regions
2020-05-18 14:32:19 +02:00
Alexey Rybalchenko
a15d59c725
Remove nanomsg transport
2020-05-11 17:38:16 +02:00
Alexey Rybalchenko
e9318dd234
Add FairMQTransportFactory::GetId()
2020-05-11 12:02:19 +02:00
Alexey Rybalchenko
c8fc5ad33f
Add bool FairMQTransportFactory::SubscribedToRegionEvents()
2020-05-11 12:02:19 +02:00
Alexey Rybalchenko
59e32437a2
shmem region subscriptions: fix race condition
2020-05-11 12:02:19 +02:00
Alexey Rybalchenko
a3afadb824
Call region event callback with local_only event for zmq
2020-05-11 12:02:19 +02:00
Alexey Rybalchenko
9992811822
Implement region events for zmq
2020-05-11 12:02:19 +02:00
Alexey Rybalchenko
4218c185a4
Shmem: Send acks also for local regions
2020-05-04 10:01:29 +02:00
Alexey Rybalchenko
5a49c5b9b1
Truncate the file used for the region mapping
2020-05-04 10:01:29 +02:00
Alexey Rybalchenko
960b612d80
Update docs
2020-04-28 14:47:26 +02:00
Alexey Rybalchenko
e1a113aabe
Add region events subscriptions
2020-04-28 14:09:04 +02:00
Alexey Rybalchenko
5721ea9510
SDK: send heartbeats when subscribed to state changes
2020-04-10 18:40:14 +02:00
Alexey Rybalchenko
330687772f
Add SubscriptionHeartbeat command
2020-04-10 18:40:14 +02:00
Alexey Rybalchenko
7cbd154344
PMIx plugin: Fix Commands API usage
2020-04-07 14:44:51 +02:00
Alexey Rybalchenko
036561ab38
SDK: track state change (un-)subscriptions
2020-04-07 14:44:51 +02:00
Alexey Rybalchenko
274ba5ec00
Commands: Add task id to subscription status cmds
2020-04-07 14:44:51 +02:00
Alexey Rybalchenko
c5efd3e4a6
SDK: minor refactoring of the command handling
2020-04-07 14:44:51 +02:00
Dennis Klein
5788daa410
Plugin manager: extent lifetime of DLLs
2020-04-06 18:42:34 +02:00
Alexey Rybalchenko
adc4688f9b
DDSCommandUI: include path argument in ChangeState
2020-03-30 13:14:12 +02:00
Alexey Rybalchenko
c3127f22e5
SDK: refactor subscription to allow reuse
2020-03-30 13:14:12 +02:00
Alexey Rybalchenko
926ee743ed
DDS plugin: refactor for better readability
2020-03-25 09:53:22 +01:00
Alexey Rybalchenko
c7b1304a2c
DDS plugin: Update property instead of set to avoid errors
2020-03-25 09:53:22 +01:00
Alexey Rybalchenko
32764e1b12
DDS plugin: refactor for better readability
2020-03-25 09:53:22 +01:00
Alexey Rybalchenko
96348b8462
DDS plugin: improve error message on unexpected update
2020-03-25 09:53:22 +01:00
Alexey Rybalchenko
cd83efadea
DDS plugin: refactor to load DDS task id only once
2020-03-25 09:53:22 +01:00
Alexey Rybalchenko
38eb9d22e4
Shmem: more detailed errors on meta data mismatch
2020-03-24 04:07:58 +01:00
Alexey Rybalchenko
a20ac7af08
SDK: Refactor StateChangeOp and add path parameter
2020-03-24 04:07:58 +01:00
Alexey Rybalchenko
539b088ade
DDS Plugin: Simplify subchannel bookkeeping
2020-03-11 14:51:19 +01:00
Dennis Klein
3d4cd02812
Allow undefining LOG macro with FairLogger v1.6.2+
...
Resolves #244
2020-03-10 14:30:23 +01:00
Alexey Rybalchenko
0ae53fd7d9
Throw an error if shmem receives invalid meta data
2020-03-09 14:09:29 +01:00
Alexey Rybalchenko
a545bee3b1
Do not report interruption by system call as error
2020-03-02 13:42:37 +01:00
Alexey Rybalchenko
f00519b99b
PMIx plugin: adapt to updated commands format
2020-02-24 14:41:47 +01:00
Alexey Rybalchenko
41fc27d504
SDK: Update docs
2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
ced67d8952
DDS Command UI: remove direct DDS dependency
2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
8123a6ecab
QC example: add setting of the property, test if its successful
2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
beff0af51b
DDS plugin: fix exiting timeout
2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
21835cc104
Revert the session renaming
2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
334d81a1ab
SDK: Unsubscribe in the Topology destructor
2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
c1719eb285
SDK Commands: remove heartbeat commands
2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
fcd1022997
Add session id to DDS commands in dds/qc examples
2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
e221242f9a
Use SDK in dds-command-ui
2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
e853d121bf
SDK: Add garbage collection for completed ops
2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
14d6d717a3
Add qc example
2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
119cbe37f1
SDK: Add WaitForState()
2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
0e72a9bf54
SDK::DDSSession: remove channel id to task id association
2020-02-21 18:37:33 +01:00
Dennis Klein
3785fd9ff9
SDK: Support DYLD_LIBRARY_PATH from parent env in sdk::DDSEnv
...
Fixes #235
2020-02-17 19:18:00 +01:00
Dennis Klein
6c63b01cfe
Commands: Add [so]version to and rename installed lib
2020-02-06 15:51:22 +01:00
Dennis Klein
be524d838a
SDK: Add inline docs
2020-01-27 20:50:11 +01:00
Alexey Rybalchenko
92af823135
SDK: Allow passing path to Set/GetProperties
2020-01-27 20:50:11 +01:00
Alexey Rybalchenko
50dacbcdde
SDK: update DDSTopology::GetTasks()
2020-01-27 20:50:11 +01:00
Alexey Rybalchenko
264a178424
SDK: Add Topology::AsyncGetProperties
...
Co-Author: Dennis Klein <d.klein@gsi.de>
2020-01-27 20:50:11 +01:00
Dennis Klein
1c8ad03f3c
SDK: Add Topology::AsyncSetProperties
...
Co-Author: Alexey Rybalchenko <alexryba@gmail.com>
2020-01-27 20:50:11 +01:00
Alexey Rybalchenko
25658370fa
SDK: Add DDSTopology::GetTasksMatchingPath
2020-01-27 20:50:11 +01:00
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
d608abf31c
Fix -Wpedantic
2020-01-27 20:50:11 +01:00
Alexey Rybalchenko
15de80cfd3
Detect network interface of the default route without use of ip
2020-01-17 16:48:31 +01:00
Dennis Klein
f2da29a650
Update copyright
2020-01-16 20:26:53 +01:00
Alexey Rybalchenko
9f8a3553ba
Avoid deadlock in FairMQChannel operator=, handle self-assignment
2020-01-16 17:17:52 +01:00
Alexey Rybalchenko
692ec4e997
Fix CIDs 350447, 321250 (uncaught exception)
2020-01-16 17:17:52 +01:00
Alexey Rybalchenko
b6d9c949ae
Fix CID 350448 (uncaught exception)
2020-01-16 17:17:52 +01:00
Alexey Rybalchenko
b6791856f9
Fix CID 350451 (uncaught exception)
2020-01-16 17:17:52 +01:00
Alexey Rybalchenko
a1e0814a92
Fix CIDs 350452, 323467 (missing_lock)
2020-01-16 17:17:52 +01:00
Alexey Rybalchenko
38bb14e556
Fix CID 350453 (uninit_member)
2020-01-16 17:17:52 +01:00
Alexey Rybalchenko
7187953604
Fix CID 350455 (uncaught exception)
2020-01-16 17:17:52 +01:00
Alexey Rybalchenko
c290c16896
PMIx: Add commands to plugin and command ui
2020-01-06 20:20:18 +01:00
Dennis Klein
fd2bac3e22
Modernize ctor
...
https://clang.llvm.org/extra/clang-tidy/checks/modernize-pass-by-value.html#pass-by-value-in-constructors
2020-01-06 20:20:18 +01:00
Alexey Rybalchenko
8e3f25851c
Pass by const ref
2020-01-06 20:20:18 +01:00
Alexey Rybalchenko
684e711b8b
Shmem: track number of message objects, throw if non-zero at reset
2019-12-20 14:04:58 +01:00
Alexey Rybalchenko
462a93b58b
Add multipart arguments to the benchmark script
2019-12-20 14:04:58 +01:00
Alexey Rybalchenko
a2cff5b7bb
Shmem: simplify message/socket and refactor to use namespaces
2019-12-20 14:04:58 +01:00
Alexey Rybalchenko
b2e027478e
shmem: properly initialize received multipart messages
2019-12-16 21:17:06 +01:00
Dennis Klein
f195eeac66
Silence warning: unused variable 'a' [-Wunused-variable]
2019-12-13 14:52:36 +01:00
Dennis Klein
4d1e7b9cdb
Fix AppleClang 10.0.1 support with Boost.Asio <= 1.68
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
Alexey Rybalchenko
5607d47664
DDSCommandUI: add support for more commands
2019-12-03 15:44:25 +01:00
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