Commit Graph

506 Commits

Author SHA1 Message Date
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