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
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
Dennis Klein
cc8fd73025
Fix recv logic
2019-03-21 18:03:32 +01:00
Dennis Klein
b45e4da2a9
Implement linger for ofi
...
This reduces test runtime significantly for most transports
2019-03-21 18:03:32 +01:00
Dennis Klein
a1b7efa2f4
Unify implementation of multi part and single part message interfaces
2019-03-21 18:03:32 +01:00
Dennis Klein
6ee7e5fbf0
Improve error handling
2019-03-21 18:03:32 +01:00
Alexey Rybalchenko
99ffb732f4
Use process tools for WaitFor test
2019-03-19 18:09:01 +01:00
Alexey Rybalchenko
6809d60fad
Fix mismatch of docs/API, wrong return value
2019-03-19 18:09:01 +01:00
Alexey Rybalchenko
ef4d6a3310
Process tools: add print helper, support signals
2019-03-19 18:09:01 +01:00
Matthias Richter
696257fd4f
Extending FairMQParts by a constructor taking list of FairMQMessagePtr
...
This introduces a little helper to create a FairMQParts object in place from a
variable list of arguments. As a side effect also AddParts is extended to support
more than one FairMQMessagePtr.
2019-03-19 12:48:02 +01:00
Alexey Rybalchenko
cdc1ba084c
Fix broken pipe errors in tools::execute
2019-03-15 15:51:50 +01:00
Alexey Rybalchenko
922f7e9a92
Use Asio to launch processes in fair::mq::tools::execute
2019-03-14 18:15:17 +01:00
Dennis Klein
a8f1a4dfdb
Try to reconnect on refused connection
2019-03-13 18:04:49 +01:00
Dennis Klein
fb42b1e2f0
Adapt to new asiofi release
2019-03-13 18:04:49 +01:00
Alexey Rybalchenko
74881d27e3
Remove obsolete state machine code
2019-03-12 12:10:47 +01:00
Alexey Rybalchenko
dd02c01c36
Extend tests of error cases
...
- test raising SIGINT in every state
- test going to Error state from every state
- add new states (bind/connect) to exception tests
2019-03-12 12:10:47 +01:00
Alexey Rybalchenko
44a9946ea6
Allow creating region with a callback with default transport
2019-03-11 20:20:22 +01:00
Dennis Klein
3bf5f3bf45
Reformat
2019-03-06 14:23:08 +01:00
Dennis Klein
11a3a41a0f
Add missing memory registration case
2019-03-06 14:23:08 +01:00
Dennis Klein
53a5456d8c
Fix lifetime of memory_region
2019-03-06 14:23:08 +01:00
Dennis Klein
2eb09df1f7
Match consistent style
2019-03-06 14:23:08 +01:00
Dennis Klein
1752e116e3
Fix initialization of inproc queues
2019-03-06 14:23:08 +01:00
Dennis Klein
5eae5ccd31
Fix connection logic
2019-03-06 14:23:08 +01:00
Alexey Rybalchenko
7df278818c
Enhance region example with Builder device
2019-03-06 14:23:08 +01:00
Dennis Klein
f85663bfe8
Fix link errors with Boost
2019-03-06 14:23:08 +01:00
Dennis Klein
ad198edd59
Remove asio strand
2019-03-06 14:23:08 +01:00
Dennis Klein
9ffaa55181
Decrease severity of config dump
2019-03-06 14:23:08 +01:00
Dennis Klein
b3005ecbdc
Fix object lifetime bug
2019-03-06 14:23:08 +01:00
Dennis Klein
ee890a7a46
Implement Reset signal
2019-03-06 14:23:08 +01:00
Dennis Klein
241bf08337
Retry ofi connection
2019-03-06 14:23:08 +01:00
Dennis Klein
02e1511667
Fix issues after rebase
2019-03-06 14:23:08 +01:00
Dennis Klein
a08a34acd5
Do not share ofi context across sockets
2019-03-06 14:23:08 +01:00
Dennis Klein
b31ab1cc48
Implement control band with asiofi
2019-03-06 14:23:08 +01:00
Dennis Klein
672e12f45b
Add semaphore
2019-03-06 14:23:08 +01:00
Dennis Klein
8e7cfacd78
Implement parallel ofi::Socket::Receive
2019-03-06 14:23:08 +01:00
Dennis Klein
46e2420547
Implement parallel ofi::Socket::Send
2019-03-06 14:23:08 +01:00
Dennis Klein
da070a407e
Depend on AZMQ
2019-03-06 14:23:08 +01:00
Dennis Klein
60f1f1000f
Fix after rebase
2019-03-06 14:23:08 +01:00
Dennis Klein
b394feca18
Implement ofi Send/Receive
2019-03-06 14:23:08 +01:00
Dennis Klein
91025cbc88
Deactivate control band monitor socket
2019-03-06 14:23:08 +01:00
Dennis Klein
ba4e6f72c9
Implement connection mgmt
2019-03-06 14:23:08 +01:00
Dennis Klein
1c5d7ca46a
Reach compilable state with asiofi again
2019-03-06 14:23:08 +01:00
Dennis Klein
0ff8eaf84d
Fix package dependencies
2019-03-06 14:23:08 +01:00
Dennis Klein
03912e86f8
Drop protobuf dependencies
2019-03-06 14:23:08 +01:00
Dennis Klein
4d7a1c81c6
Depend on asiofi
2019-03-06 14:23:08 +01:00
Alexey Rybalchenko
d9edcad845
Add backwards compatibility for removed ChangeState(int)
2019-02-26 16:13:09 +01:00
Alexey Rybalchenko
7dcd84dd93
Delete old unused code
2019-02-25 12:19:50 +01:00
Alexey Rybalchenko
8375faf835
Add --max-run-time option and fix bug in LogSocketRates
2019-02-25 12:19:50 +01:00
Alexey Rybalchenko
b7125b746e
Update deprecated methods
2019-02-25 12:19:50 +01: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
Alexey Rybalchenko
5e71d09e4d
Remove unused file
2019-02-25 12:19:50 +01:00
Alexey Rybalchenko
36f409dc72
Formatting
2019-02-25 12:19:50 +01:00
Dennis Klein
62781389d4
Add pmix::lookup binding and cleanup
2019-02-11 11:12:30 +01:00
Dennis Klein
dfc6b5c4a3
Add pmix::fence() C++ binding
2019-02-11 11:12:30 +01:00
Dennis Klein
2047dbef59
Fix pmix::info copy ctor
2019-02-11 11:12:30 +01:00
Dennis Klein
61a3da8697
Implement pmix::value copy ctor
2019-02-11 11:12:30 +01:00
Dennis Klein
0a98fa4bac
Fix codacy issues
2019-02-11 11:12:30 +01:00
Dennis Klein
2358d7b03a
Implement some PMIx C++ bindings
...
pmix::init()
pmix::finalize()
pmix::publish()
pmix::initialized()
pmix::get_version()
and supporting data structures.
2019-02-11 11:12:30 +01:00
Dennis Klein
0c54aab19d
Load dynamic plugins with RTLD_GLOBAL flag
...
The MPI MCA framework is another DSO-based plugin system which is
loading further plugins within our plugins. It does not work with
RTLD_LOCAL at the moment.
Enabling RTLD_GLOBAL for all dynamic plugins for now. If this leads
to problems, we can refactor and offer this load flag as an option.
2019-02-11 11:12:30 +01:00
Dennis Klein
1191c3cda5
Add PMIx plugin
...
Proof of concept for now.
2019-02-11 11:12:30 +01:00
Dennis Klein
c0771c81d6
Search plugins in system directories and LD_LIBRARY_PATH
...
Fixes #133
2019-02-11 11:12:30 +01:00
Dennis Klein
e2e476ba19
Remove obsolete dependency to boost signals v1
2019-01-29 16:01:12 +01:00
Alexey Rybalchenko
291d00c73f
Fix regression with ignored rateLogging channel argument
2019-01-07 11:28:15 +01:00
mkrzewic
4dc37efc12
Allow implicit conversion factory->resource
...
reduces boilerplate
2018-12-18 18:02:02 +01:00
mkrzewic
0cb8f6166a
Let getMessage deal with SSO
...
containers are not required to allocate, e.g. small string optimization
for now this is hypothetical since we cannot use std::basic_string with
at least gcc 7 since the basic_string there still uses the deprecated
rebind allocator interface (which pmr does not implement)
2018-12-10 15:10:53 +01:00
Alexey Rybalchenko
ee24144d61
Remove previously deprecated Copy method (since 1yr)
2018-11-28 21:16:29 +01:00
Alexey Rybalchenko
a9619a06d0
Add test for FairMQMessage::Rebuild
2018-11-28 21:16:29 +01:00
Alexey Rybalchenko
c605cbc3f6
Fix bug in shmem CloseMessage
2018-11-28 21:16:29 +01:00
Alexey Rybalchenko
ffbe90b638
Update to new DDS 2.2 API
...
- require DDS 2.2
- fix regressions in automatic port binding
- fix regression in channel API
- update DDS example readme
2018-11-28 16:55:34 +01:00
Alexey Rybalchenko
33f5590626
Fix -Wsign-compare warning
2018-11-28 11:49:17 +01:00
mkrzewic
cc0c525e0d
Set pointer to factory also when receiving multi-part
2018-11-27 14:36:35 +01:00
Alexey Rybalchenko
25fcf13985
Move Bind/Connect/Attach to FairMQChannel
2018-11-13 11:08:48 +01:00
Alexey Rybalchenko
3ca0d7236a
Add safety checks for process tools
2018-11-06 11:14:01 +01:00
Teo Mrnjavac
227a302903
Avoid boost::uuids::entropy_error on some systems
2018-11-05 13:18:08 +01:00
Alexey Rybalchenko
bd899a2806
Add test for channel validation
2018-11-01 15:43:40 +01:00
Alexey Rybalchenko
0b199e779a
Add test for interface IP detection tools
2018-11-01 15:43:40 +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