- 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()).
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.
Use same executable for bin/boost/protobuf/root data format,
configured now via `--data-format <binary/boost/protobuf/tmessage>`
command line parameter.
- FairMQ: add possibility to poll on multiple channels.
- FairMQ: include command channel when polling on blocking calls (for unblocking without termination).
- FairMQ: move signal handler inside of FairMQDevice class (call FairMQDevice::CatchSignals() in the main function).
- FairMQ: add 'bool CheckCurrentState(statename)' (instead of 'GetCurrentState() == statename' that cannot be thread safe).
- FairMQDevice: add 'InteractiveStateLoop()' method that can be used to change states from the command line.
- FairMQDevice: add automatic transition to IDLE state if Run() exits without an external event.
- FairMQDevice: implement device reset.
- FairMQDevice: use unordered_map for device channels.
- FairMQChannel: improve address validation for channels.
- FairMQChannel: add ExpectsAnotherPart() method to check if another msg part is expected (old approach still works).
- FairMQ: remove invalid transition from the run files.
- FairMQFileSink: disable ROOT termination signal handler.
- Tutorial3: spawn xterm windows from start scripts without overlapping for better visibility.
- FairMQ Examples: update protobuf test and move its files to a common directory.
- FairMQStateMachine: improve feedback on invalid transitions (more readable).
a) move the XML parser into the FairMQ/options/FairMQParser.h
b) add a routine in FairMQProgOption to check whether the necessary XML or JSON input files are there, and send an error message if not there
- Policy based devices:
a) rename GenericSampler to base_GenericSampler and use an alias template named GenericSampler
b) in base_GenericSampler, rename template parameter to simple variables <T,U,… > and use typedef for clarity
c) introduce an anonymous function container in the base_GenericSampler host class with a register task template member function and an Executetasks()
d) add two new template parameters in base_GenericSampler for the anonymous function container map. parameter is K for the key type (default=int) and L for the value type (default=std::function<void()>)
- Tutorial7:
a) use FairMQProgOption to configure devices in tutorial7
b) introduce several template functions helper in tutorial7 to reduce code redundancy
c) show examples in tutorial7 of task registration with callback and lambda expression for the sampler devices
d) separate the executable build of the tutorial7 data generator to remove the Roofit banner when executing the MQdevices
Organize sockets as a map of vectors of FairMQChannels.
Update FairMQStateMachine by removing SETTINGINPUT, SETTINGOUTPUT,
BIND and CONNECT states and by adding INITIALIZING_TASK, RESETTING_TASK
and RESETTING_DEVICE states. Run states functions in their own thread.
Use correct dependencies for ROOT5 and ROOT6
Changes to create rootmap files also for ROOT6.
Add the std namespace to all occurrences of any stream class.
Probably some using directive in the header files of ROOT6 is not present any longer.
Create the pcm files correctly and copy them into the lib directory.
Install the pcm files correctly in CMAKE_INSTALL_PREFIX.
Add default parameters for Run function.
Otherwise macros will crash with ROOT6 when no parameters are defined when calling Run function.
Cling is here more strict then Cint.
Replace the occurrence of '//' by '/' in pathes which are defined via environment variables.
Otherwise macros will crash when used with ROOT6. Cling is more strict then Cint.
Correctly cast variables. This is needed when macros are executed with ROOT6. Cling is more strict then Cint.
Correctly initialize the TObjString in macros.
Define include directories which don't belong to our project as SYSTEM include directories.
For these directories no warnings will be created.
Automatic loading of the libraries with ROOT6 on Apple search for libraries with extension dylib.
Older versions of ROOT expect the extension so. Depending on the ROOT version the correct extension is choosen.
Install also rootmap files to final library destination.