Commit Graph

550 Commits

Author SHA1 Message Date
Alexey Rybalchenko
10f997f680 Fix return value of multipart send/receive methods 2016-03-03 15:35:39 +01:00
Alexey Rybalchenko
c42b6ca4ae Include device ID in the zeromq socket identity.
For request sockets in ZeroMQ the socket identity must be unique, otherwise multiple clients will be rejected.
Update the tests to test this use case.
2016-03-03 13:10:56 +01:00
Alexey Rybalchenko
e1fef82657 FairMQ: Extend Multipart and messaging API
- Extend the multipart API to allow sending vectors of messages or helper
   thin wrapper FairMQParts. See example in examples/MQ/8-multipart.
 - NewMessage() can be used in devices instead of
   fTransportFactory->CreateMessage().
   Possible arguments remain unchanged (no args, size or data+size).
 - Send()/Receive() methods can be used in devices instead of
   fChannels.at("chan").at(i).Send()/Receive():
   Send(msg, "chan", i = 0), Receive(msg, "chan", i = 0).
 - Use the new methods in MQ examples and tests.
 - No breaking changes, but FAIRMQ_INTERFACE_VERSION is incremented to 3
   to allow to check for new methods.
2016-02-29 16:25:39 +01:00
Alexey Rybalchenko
82ab7670a9 Add FlatBuffers & MessagePack examples
- Add FlatBuffers serialization example to Tutorial 3
 - Add MessagePack serialization example to Tutorial 3
 - Performance improvements in Boost serialization example
 - Use `GetEntriesFast()` for FairTestDetectorRecoTask
 - Use `Clear()` instead of `Delete()` in MQ parts of Tutorial 3
 - Fix CMake variables from preventing compilation without nanomsg.
 - create macro/data directories in install directory
 - Get rid of data duplication in fill_parameters.C
 - Various cleanups and fixes
2016-02-22 13:06:37 +01:00
Alexey Rybalchenko
f1abb9ecdd Remove compile time transport interface switch
- Remove the compile time check of the transport implementation.
  The transport (zeromq/nanomsg) can be chosen at run time with:
  `device.SetTransport("zeromq"); // possible values are "zeromq" and "nanomsg"`.

  For devices that use FairMQProgOptions, the transport can be configured via cmd option:
  `--transport zeromq` or `--transport nanomsg`. Default values is "zeromq".
  The device receives the configured value with:
  `device.SetTransport(config.GetValue<std::string>("transport"));`

  Old method of setting transport still works. But the NANOMSG constant is not defined.

- Remove old `fairmq/prototest` directory. It was only used as a test for protobuf.
  The protobuf part of Tutorial3 does the same (with different values).

- Fix a bug in FairMQPollerNN, where the `revents` value was not initialized.
  This caused the `poller->CheckOutput()` to trigger when it should not.
2016-01-14 15:19:30 +01:00
Alexey Rybalchenko
0e1a1ad552 Allow to limit number of messages for the Benchmark sampler and sink 2016-01-14 14:19:03 +01:00
Alexey Rybalchenko
c10a6abeef Fix memory leaks in Tutorial3
- Fix small memory leaks in Processor and Sink of Tutorial 3.
 - Use FairFileSource for FairMQSampler of Tutorial 3.
2016-01-14 14:19:03 +01:00
Alexey Rybalchenko
e4fed2fa1b Fix copy constructor & assignment operator warning in FairMQChannel
Fix Weffc++ warnings

  - Add missing copy constructors and assignment operators .
  - Hide the warning from FairMQStateMachine.h where it is produced by boost and/or is intended.
  - Some code cleanup.
2016-01-14 14:19:03 +01:00
Alexey Rybalchenko
9a0a8c7516 Add a acknowledgement channel to Tutorial 3...
- ...to measure performance of the serialization libraries.
  - Rename `--log-color-format` cmd option to `--log-color`.
2016-01-14 14:19:03 +01:00
Florian Uhlig
d254efb91f Fix compiler warnings. Mostly unused parameters have been removed. 2016-01-14 14:19:02 +01:00
NicolasWinckler
2060f0b1d7 FairMQLogger : remove pragma command and use CMake include SYSTEM command instead 2015-11-25 08:59:19 +01:00
Alexey Rybalchenko
2afa0652f4 Extend DDS Example to use command interface 2015-11-25 08:59:19 +01:00
NicolasWinckler
35c64c67a2 add a command line to enable/disable the color format in the fairmq log console output 2015-11-20 15:26:20 +01:00
NicolasWinckler
10d6482716 remove unfinished doc 2015-11-20 09:03:34 +01:00
NicolasWinckler
8f32579984 add a pointer data type serializer function in the boost serializer add the zmq and nanomsg directories in cmaklists that use the runSimpleMQStateMachine 2015-11-20 09:03:34 +01:00
Alexey Rybalchenko
afda64a83d Simplify the handling of send/receive timeouts 2015-11-20 09:00:22 +01:00
Florian Uhlig
0894900f52 Add missing link dependencies. 2015-11-19 15:51:44 +01:00
NicolasWinckler
89d57db5ea - create 3 test scripts for bin, boost, and root serialization format
- print message at the end of the data generator of GenericDevices tutorial
2015-11-12 11:25:14 +01:00
NicolasWinckler
76626b4f4b add test dir to examples/MQ/GenericDevices + change policy typedef in generic device from private to protected 2015-11-12 11:24:07 +01:00
NicolasWinckler
1467360f75 access channel map with at 2015-11-12 11:24:07 +01:00
Alexey Rybalchenko
383a220333 Update device configuration
- Move general config files out of example directory to fairmq/run.
 - Use FairMQProgOptions for MQ example 5.
 - Add SendPartAsync() for non-blocking send of a message part.
2015-11-11 11:09:42 +01:00
NicolasWinckler
837490cc38 add FairProgOptionsHelper.h in header list to be installed of fairmq/CMakeLists.txt 2015-11-09 14:17:44 +01:00
NicolasWinckler
819a8df952 add function helpers for FairProgOptions which simplify FairProgOptions.cxx 2015-11-09 14:08:27 +01:00
NicolasWinckler
13d3729fec enable/disable multipart functionnality for sending header if source policy has the proper signature
add comment to sendHeader
2015-11-09 14:08:27 +01:00
NicolasWinckler
6ce6887212 formatting, change and clean generic_sampler and SimpleTreeReader 2015-11-09 14:08:27 +01:00
Alexey Rybalchenko
d0c20d3729 Rename /example to /examples and move MQ examples in it 2015-11-09 10:36:24 +01:00
Alexey Rybalchenko
307d698736 Add example for sending multipart messages 2015-11-06 14:46:15 +01:00
Alexey Rybalchenko
2e789e4439 Add ParameterMQServer and example of its use 2015-11-06 14:46:15 +01:00
NicolasWinckler
19b3347ade - rename tutorial7 and move it to example/MQ/GenericDevices
- rename functions of MQ examples and change directory structures
- move FairMQUnpacker.h from example/MQ/LmdSampler to base/MQ/devices
- add runSimpleMQStateMachine.h helper function in fairmq/tools
2015-11-05 15:10:11 +01:00
NicolasWinckler
93b82767eb correct some coverity issues and add empty string to the logger if boost version = 1,59.0 2015-11-04 11:04:11 +01:00
NicolasWinckler
3a7175f8e8 add lmd sampler-unpacker-sink chain in example/MQ/lmdSampler 2015-11-04 11:03:11 +01:00
NicolasWinckler
323033c9eb Add CRTP base class for the policies of the generic device 2015-11-04 11:02:32 +01:00
NicolasWinckler
559c7babca add doc for the generic devices 2015-11-04 11:02:11 +01:00
NicolasWinckler
fe91aa1634 add typedef for policies in host class, and make the sampler task container optional. 2015-11-04 11:02:10 +01:00
NicolasWinckler
946f1c9d00 add doc for the tutorial7 and the generic device 2015-11-04 11:01:40 +01:00
Alexey Rybalchenko
daba1771fa Fix return values of nanomsg send/receive calls 2015-11-03 16:07:15 +01:00
Alexey Rybalchenko
4be6ba6e66 Check return values of Receive calls in the examples 2015-11-03 16:07:15 +01:00
Alexey Rybalchenko
6dc4dc84b3 Add proper return value in set timeout 2015-11-03 16:07:15 +01:00
Alexey Rybalchenko
ada23500be Return if an unknown exception has been cought in Channel 2015-11-03 16:07:15 +01:00
Mohammad Al-Turany
d52d7d4ebc Merge branch 'sink-io-threads' of https://github.com/rbx/FairRoot into rbx-sink-io-threads 2015-11-02 19:54:36 +01:00
Giulio Eulisse
7ee479084c Add missing return statement 2015-11-02 16:56:28 +01:00
Alexey Rybalchenko
6000e86e74 Remove redundant io-threads cmd option from Sink 2015-11-02 09:27:12 +01:00
Florian Uhlig
af70d03ab0 Add missing include directories for ZeroMQ and NanoMsg. They have been found by chance when the packages are in SIMPATH. They are not found if they are in another path. 2015-10-21 17:12:04 +02:00
Alexey Rybalchenko
8f59db1283 Add methods to set timeout on blocking Send/Receive 2015-10-19 09:52:53 +02:00
Alexey Rybalchenko
91d3f013c0 Fix setting of ZeroMQ I/O Threads (setting was not propagated before) 2015-10-12 13:51:09 +02:00
Alexey Rybalchenko
023d88d0ef Add FairMQ Example 6 - Working with multiple channels 2015-10-07 16:46:10 +02:00
Alexey Rybalchenko
0b11ad9274 Fix the type mismatch in the multi-channel poller 2015-10-07 16:46:09 +02:00
Alexey Rybalchenko
19afacb504 FairMQ Examples cleanup
- Rename Tutorial3 MQ files for uniform naming.
  - Add search for dylib in FindDDS.cmake (OSX).
  - Add more detail to the DDS example readme.
  - MQ Example 3 (DDS): choose network interface via command line option.
  - Give FairMQ examples their own CMakeLists.txt for clarity.
  - Remove C++11 checks in Tutorial3 from the code (they are now in CMake).
  - Add Serializer for device properties (FairMQDevice::ListProperties()).
2015-10-05 18:06:55 +02:00
winckler
a75486f3ec * split log console output sink into two sinks, one for cout and one for cerr.
* remove logger_oldboost_version files and add ifdef boost version in logger.cxx instead

* change default logger level in FairMqProgOptions
2015-09-29 17:51:14 +02:00
Alexey Rybalchenko
54e1777c00 Small adjustments for the new logger.
Both FairMQLogger and FairMQStateMachine use Boost Fusion internaly.
Because the state machine needs FUSION_MAX_VECTOR_SIZE 20 defined,
same value has to be defined in the logger, otherwise Fusion is not
properly compiled.
2015-09-28 12:17:24 +02:00