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
Alexey Rybalchenko
3b5b2b501f
Use exceptions for fatal errors in device/channel
...
- These will be caught by StateMachine::ProcessWork
and lead to error state.
- Solve issue where device goes into ready state if
it encounters misconfigured channel in the Run.
- deprecate WaitForInitialValidation().
2018-10-31 15:26:43 +01:00
Alexey Rybalchenko
3561255cf9
Add missing channel update handlers
2018-10-31 15:26:43 +01:00
mkrzewic
cbab7649be
Return unique_ptr by value to allow RVO
2018-10-31 13:12:38 +01:00
mkrzewic
6ac94b7bc7
Fix ctor
2018-10-31 13:12:38 +01:00
mkrzewic
f9658f69a4
Alias boost::container::pmr -> fair::mq::pmr
...
so the eventual switch to std::pmr becomes easier
2018-10-31 13:12:38 +01:00
mkrzewic
34286ef75e
Remove container adoption code
2018-10-31 13:12:38 +01:00
mkrzewic
1a07137dda
Rename adoptVector into getVector
2018-10-31 13:12:38 +01:00
mkrzewic
1f42f49ae5
Update some comments
2018-10-31 13:12:38 +01:00
mkrzewic
d40bbfe208
Equip FairMQMessage with pointer to factory (at creation)
...
the patch seems big but most of it is just propagating the new notion of
constness of the factory - since it keeps track of created messages with
the internal allocator it no longer is const
2018-10-31 13:12:38 +01:00
mkrzewic
310b9647b5
Adopt FairMQMessage backed memory resource collection from AliceO2
...
Add a pmr interface to FairMQTransportFactory
refactor
Port the unit tests for MemoryResources
clang format
2018-10-31 13:12:38 +01:00
Alexey Rybalchenko
0cfa9192d7
Deprecate Send-/ReceiveAsync, use timeout variant instead
2018-10-30 10:39:35 +01:00
Alexey Rybalchenko
c40bd7d6a9
Apply clang-tidy suggestions [performance-faster-string-find]
2018-10-29 13:45:36 +01:00
Alexey Rybalchenko
4951433330
Apply clang-tidy suggestions [modernize-loop-convert]
2018-10-29 13:45:36 +01:00
Alexey Rybalchenko
d4a4ea14d2
Add example/test for built-in devices
2018-10-18 21:33:47 +02:00
Alexey Rybalchenko
ce4062f3a0
Remove GetSocket interface that exposes transport details
2018-10-17 13:28:50 +02:00
Alexey Rybalchenko
f8824335a5
Add setters/getters for socket options
2018-10-17 13:28:50 +02:00
Alexey Rybalchenko
dfa1b68867
Make factory classes final (optimization potential)
2018-10-17 13:28:50 +02:00
Alexey Rybalchenko
00800f16f1
Remove support for nanomsg <= 0.6
2018-10-17 13:28:50 +02:00
Alexey Rybalchenko
44acd4997d
Implement nanomsg linger in our transport
2018-10-17 13:28:50 +02:00
Alexey Rybalchenko
cfb727181f
Remove set/get timeout from general socket interface
2018-10-12 20:29:50 +02:00
Alexey Rybalchenko
e090967645
Shmem: Build shmem names out of session id + user id
2018-10-11 17:06:39 +02:00
Dennis Klein
3a1b769937
Support feeding the child process data on stdin
2018-10-10 19:35:18 +02:00
Dennis Klein
9f325451e5
Make sure we reset terminal config also on exception
2018-10-10 19:35:18 +02:00
Dennis Klein
a78d35d90d
Remove obsolete declaration
2018-10-10 19:35:18 +02:00
Alexey Rybalchenko
cb199e7283
Fix throw after quit signal case
2018-10-10 19:35:18 +02:00
Dennis Klein
e39316c866
Test exceptions thrown in user code
2018-10-10 19:35:18 +02:00
Alexey Rybalchenko
bde12f58b2
Handle errors in static and interactive controllers
2018-10-10 19:35:18 +02:00
Alexey Rybalchenko
45354f268b
Use future instead of thread for device rateLogger
2018-10-10 19:35:18 +02:00
Dennis Klein
1aab354a5d
Resolve hanging process in case of uncaught exception
2018-10-10 19:35:18 +02:00
Alexey Rybalchenko
e1f555bc05
Fix issues found by Codacy
2018-10-08 17:20:02 +02:00
Alexey Rybalchenko
985150437a
Remove shmem prototype code - unused
2018-10-08 17:20:02 +02:00
Dennis Klein
cf9a2944c2
Introduce and export hotfix version component
...
The cmake variable PROJECT_VERSION_HOTFIX contains the hotfix version
component. 0 means no hotfix, 1 means the first hotfix, 2 the second,
and so on.
2018-09-20 18:09:07 +02:00
Dennis Klein
94297f9833
Tie builtin plugin version to the project version
2018-09-20 18:09:07 +02:00
Alexey Rybalchenko
f6c1f5dc0f
Fix theoretical race in signal handler
2018-09-20 14:05:44 +02:00
Alexey Rybalchenko
4123ebc9d4
Add interruptable FairMQDevice::WaitFor(duration) method
2018-09-20 14:05:44 +02:00
Dennis Klein
60f27b94b2
Support BUILD_SHARED_LIBS flag
...
https://cmake.org/cmake/help/v3.0/variable/BUILD_SHARED_LIBS.html
2018-09-19 19:09:10 +02:00
Dennis Klein
adfa0e2c95
Fix ODR violation
...
fairmq/shmem/Monitor.cxx:39:27: error: redefinition of ‘volatile sig_atomic_t {anonymous}::gSignalStatus’
volatile sig_atomic_t gSignalStatus = 0;
^~~~~~~~~~~~~
In file included from fairmq/cotire/FairMQ__CXX_unity_20_29.cxx:4:
fairmq/plugins/Control.cxx:20:27: note: ‘volatile sig_atomic_t {anonymous}::gSignalStatus’ previously defined here
volatile sig_atomic_t gSignalStatus = 0;
^~~~~~~~~~~~~
2018-09-19 19:09:10 +02:00
Dennis Klein
c2bea85b90
Bump coolness factor
...
Log ascii logo with some metadata.
Metadata added to header <fairmq/Version.h>.
2018-09-13 22:25:05 +02:00
Alexey Rybalchenko
2c6b2e7f04
Fix race condition in the control plugin
2018-09-12 16:03:18 +02:00
Alexey Rybalchenko
4aae1ad8d4
Allow DDS command UI to target parts of the topology
2018-09-05 15:15:18 +02:00
Alexey Rybalchenko
b89c309768
Fix missing header install
2018-08-30 22:54:03 +02:00
Dennis Klein
c02fbed331
Require msgpack 3.1.0
...
Since 3.1.0 msgpack ships a proper CMake package exporting a target
for the header-only C++ library. Allows us to get rid of our custom
find module.
2018-08-30 17:39:56 +02:00
Alexey Rybalchenko
b814e40c87
Fix multipart transfer timeout and enable its tests
2018-08-27 18:12:02 +02:00
Alexey Rybalchenko
7d5e76dece
Add more tests for custom main()
2018-08-27 17:37:22 +02:00
Alexey Rybalchenko
2498837b8e
Use new RateLimiter for ConditionalRun
2018-08-27 17:37:22 +02:00
Alexey Rybalchenko
6545daeda7
Use new RateLimiter in BenchmarkSampler
2018-08-27 17:37:22 +02:00
Matthias Kretz
e95096eb37
Add RateLimiter class to tools
2018-08-27 17:37:22 +02:00
Alexey Rybalchenko
1bb558a457
Refactor initialization
...
- add device constructor that accepts FairMQProgOptions object.
- Initialize config values in INIT state (to allow their update).
- Simplify FairMQProgOptions handling in FairMQDevice.
- Simplify SetTransport/SetConfig - refactor duplicated code.
- Add FairMQDevice methods to add channels.
2018-08-27 17:37:22 +02:00
Dennis Klein
8b3e3bbe28
Fix coverage reporting for FAST_BUILD
2018-08-09 16:15:15 +02:00
Dennis Klein
fc0adba26b
Support unity build
2018-08-09 16:15:15 +02:00
Dennis Klein
70ffc0d8c6
Guard list operation for the case the list is empty
2018-08-09 16:15:15 +02:00
Dennis Klein
ff701006fd
Reflect dev version in the installed artifacts
2018-08-09 16:15:15 +02:00
Dennis Klein
c8bd19b7a1
Add experimental FAST_BUILD option
...
Significantly reduces compile time for the FairMQ target with
precompiled headers and unity build. For maximum improvement, use
a multi-core-aware build tool, e.g. Ninja.
Leave it undocumented for now, let's first test it internally for a while.
2018-08-09 16:15:15 +02:00
Dennis Klein
9184d5bdae
clean
2018-08-09 16:15:15 +02:00
Dennis Klein
6f22ccf4c1
Fix -Wsign-compare
2018-08-09 16:15:15 +02:00
Dennis Klein
b2034c20cf
Fix -Wshadow
2018-08-09 16:15:15 +02:00
Dennis Klein
ab6fd35a86
Add header-only target for msgpack
2018-08-09 16:15:15 +02:00
Dennis Klein
4a8e46c65c
Fix -Wunused-parameter
2018-08-09 16:15:15 +02:00
Dennis Klein
90e00730b1
Update clang-format
2018-08-09 16:15:15 +02:00
Dennis Klein
1e0159b775
Link against system threads library
2018-08-08 16:13:41 +02:00
Alexey Rybalchenko
ef3eb5f83e
Simplify structure in DeviceRunner and plugin classes
2018-08-08 16:13:41 +02:00
Alexey Rybalchenko
ee8afd7d2b
Fix race in plugin manager/services
2018-08-08 16:13:41 +02:00
Alexey Rybalchenko
a53ef79552
Run state handlers on the main thread (breaking change for control).
2018-08-08 16:13:41 +02:00
Dennis Klein
e403d18cb9
Add codecov reports to PRs
2018-07-20 17:21:23 +02:00
mkrzewic
f05118f4eb
Make ";" the separateor in multi-point channel config
...
This is to avoid parsing problems using "," in e.g. multi-point configuration using Suboptparser
2018-06-18 15:26:31 +02:00
Alexey Rybalchenko
21419adb40
Change unregistered options warning to debug
2018-06-16 17:40:05 +02:00
Alexey Rybalchenko
1554c1c273
Change missing options in transport from warning to debug
...
Transport has meaningful defaults if FairMQProgOptions is missing
2018-06-13 18:03:16 +02:00
Alexey Rybalchenko
59b04a1a64
Handle Receive differently when switching transports
...
No need for buffer+size message on Receive.
2018-06-12 13:55:18 +02:00
Alexey Rybalchenko
653e82cab4
Avoid copy (where possible) when switching transports
2018-06-08 13:10:06 +02:00
Dennis Klein
96e2076300
Only install public header files
...
Resolves #15
2018-06-08 11:25:03 +02:00
Alexey Rybalchenko
2894af803b
Add getter for cmd line args & align channel names in log
2018-06-06 16:04:08 +02:00
Alexey Rybalchenko
8b88e67360
Refactor FairMQProgOptions
2018-06-06 16:04:08 +02:00
Dennis Klein
72f5cdef58
Fix various warnings
...
-Wunused-parameter
-Wreorder
-Wsign-compare
-Wunused-private-field
2018-05-24 13:03:06 +02:00
Dennis Klein
811e716731
Add missing header
2018-05-23 08:26:23 +02:00
Alexey Rybalchenko
e4c349888d
Improve compilation speed
2018-05-17 16:32:49 +02:00
Alexey Rybalchenko
436f79bee5
Control plugin: add ability to switch log levels interactively
2018-05-17 10:30:18 +02:00
Alexey Rybalchenko
e295978b3e
further shorten shm names
2018-05-15 19:18:37 +02:00
Alexey Rybalchenko
d93dc2f7f7
Use enum transport types instead of strings in Channel/Device
2018-05-15 19:18:11 +02:00
Alexey Rybalchenko
7a4fd96b27
Fix namespaces in Transports.h and add conversion map
2018-05-15 19:18:11 +02:00
Alexey Rybalchenko
155618af57
Used cached default transport in FairMQDevice::Transport()
2018-05-15 19:18:11 +02:00
Alexey Rybalchenko
de7ddc0ddd
Fix type conflict for some environments
2018-05-04 16:59:50 +02:00
Alexey Rybalchenko
a5ff7d5a1e
Add resolver for hostname -> ip, use it before bind/connect
2018-05-03 18:33:13 +02:00
Alexey Rybalchenko
166e537d9f
Fix incomplete initialization in CreateOwnConfig()
2018-05-02 22:09:42 +02:00
Alexey Rybalchenko
bf5983d8f6
provide location for general fairmq devices/tools
2018-05-02 16:12:57 +02:00
Alexey Rybalchenko
f68b5425a6
prefix general executables with 'fairmq-'
2018-05-02 16:12:57 +02:00
Alexey Rybalchenko
bab7e13737
Refactor the examples after move from FairRoot
2018-05-02 16:12:57 +02:00
Dennis Klein
7bb4b0625e
Depend on ZeroMQ via CMake package
2018-04-23 17:38:47 +02:00
Dennis Klein
ff9618765f
Always build multipart support in nanomsg transport
2018-04-22 19:53:39 +02:00
Dennis Klein
a01aac4467
Add library versioning
2018-04-18 02:25:44 +02:00
Dennis Klein
d98207b475
Install uuidGen
2018-04-18 01:42:04 +02:00
Dennis Klein
f2a753e1bd
Support package components and drop transitive dependency discovery
2018-04-17 20:24:15 +02:00
Dennis Klein
c6ea5a5631
Fix build of protobuf sources
2018-04-17 20:22:53 +02:00
Dennis Klein
b9651437c3
Improve summary and implement find_package2
2018-04-16 20:32:44 +02:00
Dennis Klein
5e39011a5b
Fix build
2018-04-15 18:04:52 +02:00
Dennis Klein
2327fd2115
Move test directory one up
2018-04-12 17:46:18 +02:00
Dennis Klein
c98cef8270
Add CMake project
2018-04-10 19:47:30 +02:00
Dennis Klein
c0ebd58ee3
Update README
2018-04-10 18:52:57 +02:00
Dennis Klein
ff16a28686
FairMQ: Fix regression bug introduced with PR#728
2018-03-28 09:04:30 +02:00
Dennis Klein
548ef4e617
FairMQ: For some reason the definition does not work, drop it
2018-03-26 13:58:20 +02:00
Dennis Klein
2a606ee8de
FairMQ: Fix issues from rebase
2018-03-26 13:58:20 +02:00
Dennis Klein
08581e49e1
Add BUILD_OFI_TRANSPORT build switch, default OFF
2018-03-26 13:58:20 +02:00
Dennis Klein
727b76bb1d
FairMQ: Fix unit test on GCC 4.9
2018-03-26 13:58:20 +02:00
Dennis Klein
697c440aa0
FairMQ: Switch to verbs:ofi_rxm provider
...
RDM endpoints seem buggy on pure verbs provider. Switch on RDM emulator
for now.
2018-03-26 13:58:20 +02:00
Dennis Klein
811fe50a48
FairMQ: Enable ofi/verbs provider
2018-03-26 13:58:20 +02:00
Dennis Klein
c113e4c951
FairMQ: Disable control socket timeouts for now
2018-03-26 13:58:20 +02:00
Dennis Klein
de8f32e9f9
FairMQ: Fix ofi::Message allocation
2018-03-26 13:58:20 +02:00
Dennis Klein
e8994dfa0f
FairMQ: Disable post buffer ack on control band
...
Seems to be unnecessary.
2018-03-26 13:58:20 +02:00
Dennis Klein
cb447bde38
FairMQ: Implement ofi::Socket data/message metrics
2018-03-26 13:58:20 +02:00
Dennis Klein
c5072ea425
FairMQ: Fix missing ofi completion events
2018-03-26 13:58:20 +02:00
Dennis Klein
144aa912d7
FairMQ: Implement blocking ofi::Socket Send/Receive with FI_MSG
...
Completion events are not yet working.
2018-03-26 13:58:20 +02:00
Dennis Klein
8f5b888314
FairMQ: Fix Operation not permitted error
2018-03-26 13:58:20 +02:00
Dennis Klein
5b3a5b9709
FairMQ: Implement ofi address exchange
...
Control messages are encoded with protobuf.
2018-03-26 13:58:20 +02:00
Dennis Klein
df5d5d4086
FairMQ: Monitor Meta socket connection and insert address vector
2018-03-26 13:58:20 +02:00
Dennis Klein
92320604a9
FairMQ: Add ofi address vector
...
Translates between native and ofi addresses. Needed for unconnected
endpoints.
2018-03-26 13:58:20 +02:00
Dennis Klein
630a1dbbce
FairMQ: Setup ofi objects
...
FI_MSG API
FI_EP_RDM, reliable datagram message (unconnected)
2018-03-26 13:58:20 +02:00
Dennis Klein
4250e3d45b
FairMQ: Implement simple ofi Send/Receive with meta com only
2018-03-26 13:58:20 +02:00
Dennis Klein
eaebfc6933
FairMQ: Partially implement ofi::Message
2018-03-26 13:58:20 +02:00
Alexey Rybalchenko
fed7601be4
replace cmd socket with transport specific unblock mechanism
2018-03-26 13:58:20 +02:00
Dennis Klein
209e521046
FairMQ: Implement ofi::Poller
2018-03-26 13:58:20 +02:00
Dennis Klein
e73fcbd595
FairMQ: Parameterize the command interface initializing with sub socket
...
! THIS PATCH BREAKS NANOMSG TRANSPORT !
The subscriber command socket was created using the transport factory of
the channel which might not implement sub sockets. This patch creates
the subscriber command sockets in the device initialization and passes
them down (move) to the command interface initialization.
This patch puts more focus on the GetSocket interface of FairMQSocket,
because all command sockets are now implemented with the default
transport - the channels use an internal poller which polls over sockets
of potentially different transports now (e.g. zeromq command socket and
nanomsg data socket). Basically, all transports need to return file
descriptors compatible to be used in a single poll set. THIS IS NOT THE CASE!
! THIS PATCH BREAKS NANOMSG TRANSPORT !
2018-03-26 13:58:20 +02:00
Dennis Klein
43a06e3cc7
FairMQ: Explicitely mark dtor throwing to get rid of warning
2018-03-26 13:58:20 +02:00
Dennis Klein
d9595adf45
FairMQ: Implement ofi::Socket
2018-03-26 13:58:20 +02:00
Dennis Klein
3670dd8835
FairMQ: Remove unused Attach method and unused socket flags
2018-03-26 13:58:20 +02:00
Dennis Klein
3785c0e369
FairMQ: Implement ofi::TransportFactory ctor/dtor
2018-03-26 13:58:20 +02:00
Dennis Klein
72bc86f006
FairMQ: Add unit tests for PAIR channel type
2018-03-26 13:58:20 +02:00
Dennis Klein
9b7841e89e
FairMQ: Remove deprecated TransportFactory factory method
2018-03-26 13:58:20 +02:00
Dennis Klein
7cfd93c998
FairMQ: Add ofi transport factory skeleton
2018-03-26 13:58:20 +02:00
Alexey Rybalchenko
7b4976898a
include FairMQProgOptions.h in FairMQDevice.h
2018-03-22 14:11:34 +01:00
Alexey Rybalchenko
5af82f80c1
DDS command UI: update to 2.0 (include session arg)
2018-03-22 14:11:14 +01:00
Alexey Rybalchenko
010520dac7
Logger: handle nullptr.
2018-03-22 14:11:00 +01:00
Alexey Rybalchenko
95112dac02
add CountProperty() to plugin APIs, throw is GetProperty doesn't find key
2018-03-22 14:10:48 +01:00
Alexey Rybalchenko
243352d717
dds plugin: handling for same channel names from multiplied collections
2018-03-22 14:10:48 +01:00
Dennis Klein
665ab104bb
FairMQ: Add new contributor
2018-03-21 19:06:50 +01:00
Gvozden Neskovic
850ec92b5a
SHM: coalesce multipart messages
...
Transmit meta info of an shm multipart message in a single zmq message.
2018-03-19 10:53:33 +01:00
Alexey Rybalchenko
83f81a0d9f
fix regression in DDS plugin
2018-03-02 05:45:07 +01:00
Alexey Rybalchenko
6e40011a18
DDS plugin: handle n to m on single channel name case
2018-02-28 11:22:19 +01:00
Alexey Rybalchenko
13678f9f6d
monitor update
2018-02-19 14:03:42 +01:00
Alexey Rybalchenko
abcc5083f2
FairMQ DDS plugin: fix incomplete shutdown when dds server is terminated
2018-02-15 10:31:47 +01:00
Alexey Rybalchenko
f8d4fe01d0
FairMQProgOptions fixes and cleanup
...
- Remove singular key names from JSON schema.
- Align the property tree created by `FairMQSuboptParser` with the format required by the main parser (plural names).
- Fix `--print-options` to print all options (not only those that have their value set).
- remove XML parser (outdated and unused).
- various code cleanup.
2018-02-07 16:34:21 +01:00
Alexey Rybalchenko
4e2a195289
Fix warnings
2018-02-01 09:59:11 +01:00
Alexey Rybalchenko
e5c4ad31c7
Fix typos and ommissions in logger docs
2018-02-01 09:59:11 +01:00
Alexey Rybalchenko
b228788cc0
Logger: Allow adding custom sinks
...
(example in logger/loggerTest.cxx, docs in fairmq/docs/Logging.md)
2018-01-26 16:06:19 +01:00
Alexey Rybalchenko
7e6bd91467
Fix reorder warnings
2018-01-24 14:36:52 +01:00
Alexey Rybalchenko
2c2770204f
Fix missing session name resize if running without FairMQProgOptions
2018-01-24 14:36:52 +01:00
Alexey Rybalchenko
efdec0f6ba
FairMQProgOptions: initialize defaults in the constructor, not in ParseAll
2018-01-24 14:36:52 +01:00
Alexey Rybalchenko
778c8e16bb
Replace pstreams with Boost.Process
2018-01-23 18:35:09 +01:00
Alexey Rybalchenko
e462d6f597
Fix wrong argument order in file sink initialization
2018-01-17 14:41:35 +01:00
Alexey Rybalchenko
a91c481abf
remove custom timestamp stuff from logger wrapper
2018-01-16 22:53:26 +01:00
Alexey Rybalchenko
a3393e600e
convert log severities use to lowercase and remove use of MQLOG
2018-01-16 22:53:26 +01:00
Alexey Rybalchenko
4e942e489b
Single Logger implementation for FairLogger & FairMQLogger
2018-01-16 22:53:26 +01:00
Alexey Rybalchenko
d3e0b9fc97
Give ipc tests better address name
2018-01-13 07:49:08 +01:00
Alexey Rybalchenko
b59f1b950d
FairMQ: Add hint argument to the region callback, settable per message.
2017-12-18 12:53:58 +01:00
Alexey Rybalchenko
ba78964e29
FairMQ: add FairMQMessage::Copy(const FairMQMessage& msg), deprecate the old one.
2017-12-10 17:37:53 +01:00
Alexey Rybalchenko
e340a52bf2
Use FairMQ tools for string creation.
2017-12-10 17:37:53 +01:00
Alexey Rybalchenko
848ebf2ff3
FairMQ: Add test for setting used message size functionality
2017-12-10 17:37:53 +01:00
Alexey Rybalchenko
ea7ae3ded9
remove Get/SetMessage from interface (internal transport detail)
2017-12-10 17:37:53 +01:00
Alexey Rybalchenko
e5aa85b61d
FairMQ: Add functionality to set used message size
2017-12-10 17:37:53 +01:00
laphecet
ac4695b215
Missing explicit reference to lib boost_signals
2017-12-06 13:04:58 +01:00
Alexey Rybalchenko
fd19480a2e
FairMQ: Fix missing region acks if receiver doesn't call OnData & clean includes.
2017-11-30 13:56:06 +01:00
Dennis Klein
5c0178e882
FairMQ: Remove deprecated header <tools/FairMQTools.h>
2017-11-29 16:40:25 +01:00
Mohammad Al-Turany
b5e32403ea
correct typo in copyright section
2017-11-29 13:11:35 +01:00
Alexey Rybalchenko
b967de4a57
FairMQ: Fix session name modification shm transport.
2017-11-29 11:00:31 +01:00
Alexey Rybalchenko
0dc4000187
FairMQ: Add uuid generator to tools & let tests use it for session names.
2017-11-29 09:06:17 +01:00
Alexey Rybalchenko
85aab51bd4
FairMQ: Add test for example/advanced/Region.
...
Also fix a regression in nanomsg transport.
2017-11-29 09:06:17 +01:00
Alexey Rybalchenko
eddfd0d1bd
FairMQ: Introduce configurable session name per device.
...
Session name is given to each device via `--session`,
which must be synchronized from a higher level,
e.g. from start script or command & control entity.
2017-11-29 09:06:17 +01:00
Alexey Rybalchenko
58a312b730
FairMQ: Introduce callbacks for the FairMQUnmanagedRegion.
...
Callbacks are called when the data buffer of the message assiciated
with the corresponding region is no longer needed by the transport.
Example in examples/advanced/Region/
2017-11-29 09:06:17 +01:00
Dennis Klein
378c47c5e5
FairMQ: Implement config API for string subscriptions
...
This API auto converts property values to strings and allows a more
convenient one catches all subscription.
2017-11-17 16:24:29 +01:00
Dennis Klein
80332583ee
FairMQ: Add state subscription to DDS plugin
2017-11-17 16:24:29 +01:00
Dennis Klein
56c0b2fd2b
FairMQ: Add heartbeats to DDS plugin
2017-11-17 16:24:29 +01:00
Matthias Richter
72cdd1e3d7
using steady_clock instead of system_clock
2017-11-17 16:23:38 +01:00
Matthias Richter
4351f3df0d
adding missing variable initialisation in second constructor
2017-11-17 16:23:38 +01:00
Matthias Richter
2a134b9206
Changing '--rate' option to type float, remove stringstream from argument scan
...
This correction to the previous commit leaves the <sstream> header in, because
std::stringstream has been using already before and the header was missing.
2017-11-17 16:23:38 +01:00
Matthias Richter
9b2b1cf9f1
Adding rate control for ConditionalRun function
...
Devices implementing the conditional run method are typically source
devices and a rate control can be desireable. New option '--rate' with
a float number argument in Hz can be used to configure rate control.
By default it is switched off.
2017-11-17 16:23:38 +01:00
Dennis Klein
7429f7a326
FairMQ: Add dump-config functionality to DDS plugin
2017-11-01 15:32:35 +01:00
Dennis Klein
511141c851
FairMQ: Install DDS plugin
2017-11-01 15:32:17 +01:00
Dennis Klein
ba5d40fd71
FairMQ: Fix visibility of include dirs of DDS plugin targets
2017-11-01 15:32:17 +01:00
Dennis Klein
864a41502f
FairMQ: Support the case with multiple default routes
2017-11-01 15:32:17 +01:00
Alexey Rybalchenko
0bb866ff36
FairMQ: shared memory unmanaged region updates:
...
- use same mapping for sender/receiver (created/remote) region.
- rename FairMQRegion -> FairMQUnmanagedRegion.
2017-10-20 14:17:15 +02:00
Alexey Rybalchenko
f7d3a5e8ae
FairMQ: fix shm transport placement new alignment issue
2017-10-18 21:15:14 +02:00
Alexey Rybalchenko
f277db2354
FairMQ: shm region & monitor bugfixes
2017-10-17 21:31:12 +02:00
Alexey Rybalchenko
aa8d16ff9a
Move shmem prototype out of MQ examples
2017-10-16 09:49:38 +02:00
Dennis Klein
b7d97f6306
FairMQ: Support Apple Compiler 8.0
...
In fact, this commit will workaround a bug with template alias compilation
from Clang 3.4 to Clang 3.8.
2017-10-12 12:16:50 +02:00
Dennis Klein
b63e2ee153
Remove outdated build flag -Weffc++
2017-10-10 17:17:05 +02:00
Alexey Rybalchenko
fb0996268a
Fix coverity issues - unchecked return val, uncaught excepts
2017-10-10 17:15:14 +02:00
Dennis Klein
896a8d6b7f
FairMQ: Revert regression introduced by f1513f5169d335c17ccdfdb27f0f0c4edbeb8b65
2017-10-05 15:32:12 +02:00
Alexey Rybalchenko
e3cb1dd9e5
FairMQ: remove runSimpleMQStateMachine (now via control plugin).
2017-10-05 15:32:12 +02:00
Alexey Rybalchenko
d175a732a6
FairMQ: fix const qualifier for DeviceRunner
2017-10-05 15:32:12 +02:00
Dennis Klein
1bc5771bf3
Fix compilation for GCC 4.9.2
2017-10-05 15:32:12 +02:00
Dennis Klein
4ae2e025c9
FairMQ: Implement DeviceRunner
2017-10-05 15:32:12 +02:00
Dennis Klein
7f23a70670
FairMQ: Implement property change event config API
...
Replaced the old event manager implementation, which changed the
subscription semantics to bulk event subscriptions.
2017-10-05 15:32:12 +02:00
Dennis Klein
8c8ee45914
FairMQ: Implement GetPropertyKeys config API
2017-10-05 15:32:12 +02:00
Dennis Klein
2589ca5ced
FairMQ: Rewrite the state machine
...
* Simplify the code
* Drop Boost.MSM dependency
* Drop threaded execution
* Support deferred state changes
* Monitor state changes/queues via callbacks
2017-10-05 15:32:12 +02:00
Alexey Rybalchenko
179968db1e
Remove FairMQConfigurable
2017-10-05 15:32:12 +02:00