FairRoot release November 2015
MohammadAlTurany
released this
27 Nov 10:42
·
2240 commits
to master
since this release
Release info:
New Features
- Redesign the FairRoot IO manager
- Introduce FairSource as base class for different sources
- Extend the FairRunOnline functionality to support THttpServer
- New FairMonitor to monitor the task execution time
- New MQ front end of the parameter manager (ParameterMQServer)
Improvements
FairMQ
- Add possibility to poll on multiple channels.
- Include command channel when polling on blocking calls (for unblocking without termination).
- Add new Send/Receive methods with smart pointers and no flag checks.
- Add methods to FairMQChannel to set timeout on blocking Send/Receive
- Add ExpectsAnotherPart() method to check if another msg part is expected (old approach still works).
- Add orthogonal OK/ERROR states. Entering ERROR state will leave the executable running to allow easier debugging.
- Move signal handler from run-files to the FairMQDevice class (call FairMQDevice::CatchSignals() in the main function).
- Add thread-safe 'bool CheckCurrentState(statename)' (instead of 'GetCurrentState() == statename' that cannot be thread safe).
- Add 'InteractiveStateLoop()' method that can be used to change states from the command line.
- Add automatic transition to IDLE state if Run() exits without an external event.
- Implement reset of FairMQDevice.
- Add FairMQ tests (PUB-SUB, PUSH-PULL, REQ-REP).
- Use same executable for bin/boost/protobuf/root data format, configured now via
--data-format <binary/boost/protobuf/tmessage>
command line parameter. - FairMQStateMachine: improve feedback on invalid transitions (more readable).
- Add a logger for FairMQ based on Boost.Log v2
- Refactor the generic MQ devices
- Add CRTP base class for (de)serialization, source, task, and file sink policies, which can be used as guideline for the policies of the generic MQ devices
- Add template functions to use simple interactive or non-interactive state machine sequence.
- Add helper functions for the FairProgramOptions
Base/MQ :
- Add a serializeMsg function member in boost serializer policy that take a pointer to the data type
- Add FairRoot-like directory structure in root files produced by the RootOutputManager storage policy
- Add FairMQFileSource, an interface to the FairFileSource, which can be used as policy for the generic sampler device
- Add FairMQLmdSampler device to read Lmd file and send binary to another device (most likely an unpacker)
- Add FairMQUnpacker device which take an Unpacker as template parameter
Examples
- Simplify the Tutorial7 and add an example of using FairMQFileSource policy. Use FairProgramOptions to configure the data generator.
- Add an usage example of FairMQLmdSampler and FairMQUnpacker using the data of tutorial8
- Restructure the examples directory and add new documentation
- New: MBS data unpacking from LMD file and corresponding test.
- New: Dynamic configuration of devices with DDS.
- New: Multiplicating data with zero copy and push pattern.
- New: Working with multiple channels in FairDevices
- New: Sending multipart messages.
- New: Using ParameterMQServer